Многие классификаторы, в том числе линейная машина опорных векторов (SVM) , могут решать только задачи, которые линейно отделимы, т. Е. Где точки, принадлежащие к классу 1, могут быть отделены от точек, принадлежащих к классу 2 по гиперплоскости.
Во многих случаях проблему, которая не является линейно разделимой, можно решить, применив преобразование phi () к точкам данных; говорят, что это преобразование преобразует точки в пространство признаков . Надежда состоит в том, что в пространстве признаков точки будут линейно разделены. (Примечание: это еще не трюк с ядром ... следите за обновлениями.)
Можно показать, что чем выше размерность пространства признаков, тем больше число задач, линейно разделимых в этом пространстве. Поэтому в идеале хотелось бы, чтобы пространство элементов было как можно более масштабным.
К сожалению, по мере того, как размер пространства пространственных объектов увеличивается, увеличивается и объем необходимых вычислений. Вот тут-то и кроется хитрость ядра. Многие алгоритмы машинного обучения (среди них SVM) могут быть сформулированы таким образом, что единственная операция, которую они выполняют над точками данных, - это скалярное произведение между двумя точками данных. (Я буду обозначать скалярное произведение между x1 и x2 как <x1, x2>
.)
Если мы преобразуем наши точки в пространство признаков, скалярное произведение теперь будет выглядеть так:
<phi(x1), phi(x2)>
Ключевое понимание заключается в том, что существует класс функций, называемый kernels , который можно использовать для оптимизации вычислений этого скалярного произведения. Ядро - это функция K(x1, x2)
, обладающая свойством
K(x1, x2) = <phi(x1), phi(x2)>
для некоторой функции phi (). Другими словами: мы можем оценить скалярное произведение в низкоразмерном пространстве данных (где x1 и x2 "живут") без необходимости преобразования в многомерное пространство признаков (где phi (x1) и phi (x2) "живут ") - но мы все же получаем преимущества от преобразования в пространство пространственных объектов. Это называется трюк с ядром .
Многие популярные ядра, такие как гауссово ядро , на самом деле соответствуют преобразованию phi (), которое преобразуется в бесконечномерное пространство функций . Уловка ядра позволяет нам вычислять скалярные произведения в этом пространстве без необходимости явно представлять точки в этом пространстве (что, очевидно, невозможно на компьютерах с конечным объемом памяти).