Як інтуїтивно пояснити, що таке ядро?


96

Багато класифікаторів машинного навчання (наприклад, машини, що підтримують вектор) дозволяють вказати ядро. Який би був інтуїтивний спосіб пояснення, що таке ядро?

Один із аспектів, про які я думав, - це відмінність між лінійними та нелінійними ядрами. Простіше кажучи, я міг би говорити про «функції лінійного рішення» та «функції нелінійного рішення». Однак я не впевнений, чи називати ядро ​​функцією прийняття рішення хорошою ідеєю.

Пропозиції?

Відповіді:


112

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

Припустимо, у нас є відображення яке приводить наші вектори в до деякого простору функцій . Тоді крапковий добуток і в цьому просторі . Ядро - це функція яка відповідає цьому крапковому добутку, тобто .R n R m x y φ( x ) T φ( y )kk( x , y )=φ( x ) T φ( y )φ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

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

Наприклад, розглянемо просте поліноміальне ядро з . Здається, це не відповідає жодній функції відображення , це лише функція, яка повертає дійсне число. Припускаючи, що та , цей вираз:xk(x,y)=(1+xTy)2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 )x,yR2φx=(x1,x2)y=(y1,y2)

k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x12y12+x22y22+2x1y1+2x2y2+2x1x2y1y2

Зауважте, що це не що інше, як крапковий добуток між двома векторами та і . Отже, ядро обчислює крапковий добуток у 6-мірний простір без явного відвідування цього простору.(1,x12,x22,2x1,2x2,2x1x2)φ(x)=φ((1,y12,y22,2y1,2y2,2y1y2)k(xφ(x)=φ(x1,x2)=(1,x12,x22,2x1,2x2,2x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)

Інший приклад - ядро ​​Гаусса . Якщо ми розширимо цю функцію Тейлора, ми побачимо, що вона відповідає нескінченномірній кодоміні .k(x,y)=exp(γxy2)φ

Нарешті, я б рекомендував онлайн-курс «Навчання на основі даних» професора Ясера Абу-Мостафи як хороший вступ до методів на основі ядра. Зокрема, лекції "Підтримка векторних машин" , "Методи ядра" та "Радіальні основні функції" стосуються ядер.


2
Поточне визначення тегів: "Інтуїтивно зрозумілий: запитання, які шукають концептуальне або нематематичне розуміння статистики". Немає чітких вказівок, чи трактується концептуальний синонім нематематичним.
rolando2

40

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

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

Ще один цікавий приклад ядра - ядро ​​Гаусса. За даними двох векторів подібність зменшиться з радіусом . Відстань між двома об'єктами "перезавантажується" цим параметром радіусу.σ

Успіх навчання з ядрами (знову ж, принаймні, для SVM) дуже сильно залежить від вибору ядра. Ви можете бачити ядро ​​як компактне представлення знань про вашу проблему класифікації. Це дуже часто проблема специфічна.

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


Точковий твір і проекція не зовсім однакові.
ttnphns

Що стосується SVM, я вважаю, що ядра є мірою відстані в різних просторах. Це відповідає ідеї, що SVM узагальнює класифікатор вектора підтримки. Загалом, ядра можуть бути складнішими.
агіненський

29

Наочний приклад, який допомагає інтуїції

Розглянемо наступний набір даних, де жовта та синя точки очевидно не лінійно розділяються у двох вимірах.

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

Якби ми могли знайти простір більш високого розміру, в якому ці точки були лінійно відокремлені , то ми могли б зробити наступне:

  • Позначення оригінальних функцій у вищому, трансформаторному просторі (відображення функції)
  • Виконайте лінійний SVM в цьому більш високому просторі
  • Отримайте набір ваг, відповідних граничній площині рішення
  • Зіставте цю гіперплану назад у вихідний 2D простір, щоб отримати нелінійну межу рішення

Існує багато просторів вищої міри, в яких ці точки лінійно відокремлюються. Ось один приклад

x1,x2:→z1,z2,z3
z1=2x1x2  z2=x12  z3=x22

Тут грає фокус Kernel. Цитуючи вищезазначені чудові відповіді

Припустимо, у нас є відображення яке приводить наші вектори в до деякого простору функцій . Тоді крапковий добуток і в цьому просторі . Ядро - це функція яка відповідає цьому крапковому добутку, тобтоφ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

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

Поліномне ядро

Виявляється, наведена вище карта особливостей відповідає добре відомому поліномальному ядру : . Нехай і отримаємоK(x,x)=(xTx)dd=2x=(x1,x2)T

k((x1x2),(x1x2))=(x1x2+x2x2)2=2x1x1x2x2+(x1x1)2+(x2x2)2=(2x1x2 x12 x22) (2x1x2x12x22)

k((x1x2),(x1x2))=ϕ(x)Tϕ(x)

ϕ((x1x2))=(2x1x2x12x22)

Візуалізація карти функції та отриманої межової лінії

  • Графік ліворуч показує точки, побудовані в трансформованому просторі разом з лінійною граничною граничною площиною SVM
  • Діаграма на правому боці показує результат у вихідному 2-D просторі

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


Джерело


4

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

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

Ще одним способом ядро - це спосіб зміни відносних розмірів (або одиниць виміру ) двох послідовностей даних, щоб впоратися з речами, згаданими вище.

Третім способом (пов’язаним з попередніми двома) ядро - це спосіб відображення або проектування однієї послідовності даних на іншу способом 1 на 1 з урахуванням заданої інформації або критеріїв (наприклад, вигнутий простір, відсутні дані, дані переупорядкування тощо). Так, наприклад, дане ядро ​​може розтягнути або зменшити або обрізати або зігнути одну послідовність даних для того, щоб підходити або відображати від 1 до 1 на інше.

Ядро може діяти як Procrustes , щоб " найкраще підходити "


Я думаю, ви можете говорити про ядра в сенсі оцінки щільності ядра, а не про позитивно-напівдефінітні ядра Mercer, що використовуються в SVM та пов'язаних з ними методах.
Дугал

@Dougal, в сенсі цієї відповіді ядро ​​- це функція зважування або міра, яка використовується для конкретного співвідношення даних або для використання певних особливостей даних, тому також охоплюються методи ядра SVM
Нікос М.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.