Ядро - це спосіб обчислення крапкового добутку двох векторів та в деякому (можливо, дуже високомірному) просторі функцій, саме тому функції ядра іноді називають "узагальненим точковим продуктом".xy
Припустимо, у нас є відображення яке приводить наші вектори в до деякого простору функцій . Тоді крапковий добуток і в цьому просторі . Ядро - це функція яка відповідає цьому крапковому добутку, тобто .R n R m x y φ( x ) T φ( y )kk( x , y )=φ( x ) T φ( y )φ:Rn→RmRnRmxyφ(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,y∈R2φx=(x1,x2)y=(y1,y2)
k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x21y21+x22y22+2x1y1+2x2y2+2x1x2y1y2
Зауважте, що це не що інше, як крапковий добуток між двома векторами та і . Отже, ядро обчислює крапковий добуток у 6-мірний простір без явного відвідування цього простору.(1,x21,x22,2–√x1,2–√x2,2–√x1x2)φ(x)=φ((1,y21,y22,2–√y1,2–√y2,2–√y1y2)k(xφ(x)=φ(x1,x2)=(1,x21,x22,2–√x1,2–√x2,2–√x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)
Інший приклад - ядро Гаусса . Якщо ми розширимо цю функцію Тейлора, ми побачимо, що вона відповідає нескінченномірній кодоміні .k(x,y)=exp(−γ∥x−y∥2)φ
Нарешті, я б рекомендував онлайн-курс «Навчання на основі даних» професора Ясера Абу-Мостафи як хороший вступ до методів на основі ядра. Зокрема, лекції "Підтримка векторних машин" , "Методи ядра" та "Радіальні основні функції" стосуються ядер.