Как интуитивно объяснить, что такое ядро?

98

Многие классификаторы машинного обучения (например, машины опорных векторов) позволяют указывать ядро. Что было бы интуитивно понятным способом объяснить, что такое ядро?

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

Предложения?

hashkey
источник

Ответы:

114

Ядро - это способ вычисления точечного произведения двух векторов и в некотором (возможно, очень многомерном) пространстве признаков, поэтому функции ядра иногда называют «обобщенным точечным произведением».у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)

Почему это полезно? Ядра позволяют вычислять точечные произведения в некотором пространстве признаков, даже не зная, что это за пространство и что такое .φ

Например, рассмотрим простое ядро ​​полинома с . Кажется, это не соответствует какой-либо функции отображения , это просто функция, которая возвращает действительное число. Предполагая, что и , давайте расширим это выражение:x , yR 2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 )k(x,y)=(1+xTy)2x,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,y 2 1 ,y 2 2 ,(1,x12,x22,2x1,2x2,2x1x2)φ(x)=φ(x1,x2)=(1,x 2 1 ,x 2 2 ,(1,y12,y22,2y1,2y2,2y1y2)k(x,y)=(1+ x Ty)2=φ(x)Tφ(y)φ(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 обобщает классификатор опорных векторов. В общем, ядра могут быть более сложными.
Агиненский
30

Наглядный пример, чтобы помочь интуиции

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

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

Если бы мы могли найти пространство более высокой размерности, в котором эти точки были бы линейно отделимыми , то мы могли бы сделать следующее:

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

Существует много пространств более высокого измерения, в которых эти точки линейно отделимы. Вот один пример

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

Это где трюк с ядром вступает в игру. Цитируя приведенные выше отличные ответы

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

Если бы мы могли найти функцию ядра, которая была бы эквивалентна приведенной выше карте возможностей, то мы могли бы вставить функцию ядра в линейный SVM и выполнять вычисления очень эффективно.

Полиномиальное ядро

Оказывается, что приведенное выше отображение признаков соответствует хорошо известному ядру полинома : . Пусть и получимK(x,x)=(xTx)dd=2Иксзнак равно(Икс1,Икс2)T

К((Икс1Икс2),(Икс1'Икс2'))знак равно(Икс1Икс2'+Икс2Икс2')2знак равно2Икс1Икс1'Икс2Икс2'+(Икс1Икс1')2+(Икс2Икс2')2знак равно(2Икс1Икс2 Икс12 Икс22) (2Икс1'Икс2'Икс1'2Икс2'2)

К((Икс1Икс2),(Икс1'Икс2'))знак равноφ(Икс)Tφ(Икс')

φ((Икс1Икс2))знак равно(2Икс1Икс2Икс12Икс22)

Визуализация карты объектов и результирующей границы

  • На левом графике показаны точки, нанесенные в преобразованном пространстве вместе с гиперплоскостью линейной границы SVM
  • Правый график показывает результат в оригинальном 2-D пространстве

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


Источник

Ксавье Бурре Сикотт
источник
4

Очень просто (но точно) ядро является весовым фактором между двумя последовательностями данных. Этот весовой коэффициент может назначать больший вес одной « точке данных » в одну « точку времени », чем другой « точке данных », или назначать равный вес или назначать больший вес другой « точке данных » и так далее.

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

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

Третий способ (связанный с двумя предыдущими) - это способ отображения или проецирования одной последовательности данных на другую способом 1: 1 с учетом заданной информации или критериев (например, искривленное пространство, пропущенные данные, данные). повторный заказ и тд). Так, например, данное ядро ​​может растягивать или сжимать или обрезать или сгибать одну последовательность данных, чтобы соответствовать или отображать 1-к-1 на другую.

Ядро может действовать как Прокруст , чтобы « лучше всего подходить »

Никос М.
источник
Я думаю, что вы можете говорить о ядрах в смысле оценки плотности ядра, а не о положительно-полуопределенных ядрах Mercer, используемых в SVM и связанных с ними методах.
Дугал
@Dougal, в смысле этого ответа ядро ​​является функцией взвешивания или мерой, используемой для корреляции данных особым образом или для использования определенных функций данных, поэтому также рассматриваются методы ядра SVM
Никос М.