Трюк кернелізації для нейронних мереж


9

Я дізнався про нейронні мережі та SVM. Підручники, які я читав, підкреслювали, наскільки важлива kernelization для SVM. Без функції ядра, SVM - це лише лінійний класифікатор. Завдяки kernelization, SVM також можуть включати нелінійні функції, що робить їх більш потужним класифікатором.

Мені здається, що можна також застосувати кернелізацію до нейронних мереж, але жоден підручник з нейронних мереж, про який я бачив, не згадував про це. Чи часто люди використовують хитрість ядра з нейронними мережами? Я припускаю, що хтось, мабуть, експериментував з цим, щоб побачити, чи має велике значення. Чи допомагає кернелізація нейронним мережам стільки, скільки допомагає SVM? Чому чи чому б ні?

(Я можу уявити собі декілька способів включити фокус ядра в нейронні мережі. Одним із способів було б використання відповідної функції ядра для попередньої обробки вводу, вектора в , у вхід більш високого розміру, вектор в для . Для багатошарових нейронних мереж ще однією альтернативою було б застосувати функцію ядра на кожному рівні нейронної мережі.)RnRmmn


2
Прийом ядра працює, коли ваш обчислювальний доступ до точок даних складається з обчислення внутрішніх продуктів. Я не впевнений, що це стосується нейронних мереж.
Yuval Filmus

Відповіді:


6

Я думаю, що ви можете заплутати термінологію таким чином, що робить проблему заплутаною. SVM працюють за допомогою визначення межі лінійного рішення, тобто гіперплана. Ми можемо визначити цю гіперплощину з точки зору внутрішніх продуктів між точками. Отже, якщо ми визначаємо, що цей внутрішній продукт знаходиться у якомусь великому або навіть нескінченному розмірному просторі, те, що схоже на гіперплан у цьому новому просторі, не є необхідним лінійним у вихідному просторі функцій. Отже, все ще лінійно, єдине, що ми зробили - це неявно (за допомогою нового внутрішнього продукту) вбудовувати точки у якийсь простір вищої міри. Можливо, ви вже все це знаєте.

Є два питання, які слід розглянути стосовно нейронних мереж. Перший підняв @Yuval Filmus, оскільки від прихованого шару нейронні мережі залежать від більш ніж просто внутрішніх продуктів між точками. Якщо ви видалите прихований шар, у вас просто є щось на кшталт логістичної регресії, з яких є кернелізовані версії . Можливо, є спосіб обійти це, але я цього не бачу.

По-друге, ви згадуєте про попередню обробку введення, проектуючи у вищий, але не нескінченний розмірний простір. Нейронні мережі визначають поверхню рішення, і ця поверхня не обмежується лінійною. Це означає, що виграш від проектування точок у простір більш високого розміру буде різним, тобто може полегшити пошук гарного набору ваг, але ми не обов'язково зробили нашу модель більш потужною. Це випливає з теореми універсального наближення, яка говорить нам, що, маючи достатньо велику кількість прихованих одиниць, ми можемо наблизити будь-яку функцію (за певних обмежень). Останнє твердження є доволі вакуумним, і я ненавиджу його згадувати. Якщо ви нічого не розповідаєте про те, як знайти правильні ваги, це не принесе багато для таблиці з точки зору програми.


Дякую. Так. Я знаю, що ми можемо розглядати SVM як відображення оригінальних входів у якийсь вищий (або навіть нескінченний) розмірний простір, а потім робити лінійну межу рішення у цьому вищому розмірному просторі. Отже, чи можемо ми це зробити і з нейронними мережами? Чи можемо ми віднести входи до простору більш високого розміру, а потім розглянути це як власне вхід в нейронну мережу? Я припускаю, що ми можемо (і я припускаю, що ми також могли це зробити на кожному шарі, якщо б хотіли). І, якщо ми можемо, моє справжнє запитання таке: чи може ця пропозиція настільки ж покращити нейронні мережі (на практиці), як це стосується SVM? Чому чи чому б ні?
DW

Я знаю про теорему універсального наближення, але це насправді не відповідає на питання (як ви вказали). Мене хвилює те, наскільки добре нейронні роботи прагнуть працювати на практиці. Мені цікаво, чи може попередня обробка входів через фокус кернелізації змусити нейронні мережі працювати краще на практиці. Звичайно, немає гарантій, і завжди будуть ситуації, коли все, що ви робите, може погіршити ситуацію, але я цікавлюсь типовою поведінкою на практиці (у тому ж сенсі, що ми говоримо, що кернелізація має тенденцію до того, щоб SVM були значно ефективнішими, практика).
DW

2
@DW Причина кернелізації робить SVM ефективнішими, оскільки вона дозволяє їм визначати нелінійні межі рішення. Нейронні мережі вже можуть визначати нелінійні межі рішення, тому єдиною перевагою проектування ваших даних у просторі більш високого розміру буде полегшення проблеми оптимізації.
альт

1

Трюк ядра можливий для SVM через особливу властивість процесу навчання для SVM. Можливо, нейронні мережі не мають такого властивості (наскільки я можу сказати).

Нехай - точки в навчальному наборі. Зазвичай ви очікували, що алгоритм машинного навчання вивчить значення значень . Однак процес навчання SVM має досить чудову властивість. Не потрібно знати значення значень . Достатньо мати можливість обчислити для будь-якої потрібної пари вхідних точок (тобто для обчислення крапки-добутку для будь-якої пари вхідних векторів на ваш вибір); це все, що потребує процесу навчання SVM.x1,,xnRdxixixixj

Ця особливість процесу навчання SVM дозволяє нам використовувати хитрість ядра. Ми можемо визначити функцію ядра так, що є точковим продуктом деякого нелінійного перетворення входів. Якщо ми перетворюємо вхідні вектори за допомогою нелінійного перетворення (для деяких ), то визначаємо . Наступне цікаве властивість полягає в тому, що для деяких нелінійних перетворень ви можете обчислити ефективніше, ніж чітко обчислити а потім обчислити їх точковий продукт; ви можете обчислитиKK(xi,xj)ϕ:RdRmm>dK(xi,xj)=ϕ(xi)ϕ(xj)ϕK(xi,xj)ϕ(xi),ϕ(xj)K(xi,xj)в час (скажімо), а не час.O(d)O(m)

На жаль, нейронні мережі, схоже, не мають жодного способу скористатися цим крутим трюком, тому що процес навчання нейронних мереж, схоже, залежить від більш ніж просто значень (або ); для цього потрібні повні значення всіх . Таким чином, хоча ми дійсно можемо попередньо перетворити входи в нелінійну мережу за допомогою якоїсь нелінійної функції, якщо ми хочемо, мабуть, не існує жодного способу використання трюку ядра, щоб зробити це більш ефективним, як ми це можемо зробити для SVM.xixjK(xi,xj)xi


1

Я хотів би поділитися деякими зробленими нами спостереженнями. Розмір введення: 144. Я тренував нейронну мережу, і під час тренінгу вихід прихованих шарів був заданий як вхід для логістичної регресії, і було побудовано середнє значення функції втрат після встановлення моделі.введіть тут опис зображення

введіть тут опис зображення

Ми можемо бачити, що зі збільшенням розміру шару, особливості або вихід прихованих шарів стають лінійно відокремленими. Хоча це і є метою вивчення вектора ознак ядра , нейронна мережа, здається, робить це всередині. введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.