Я пытаюсь понять интуицию ядра SVM. Теперь я понимаю, как работает линейный SVM, благодаря чему создается линия принятия решений, которая разбивает данные как можно лучше. Я также понимаю принцип, лежащий в основе переноса данных в многомерное пространство, и то, как это может облегчить нахождение линейной линии принятия решений в этом новом пространстве. Что я не понимаю, так это то, как ядро используется для проецирования точек данных в это новое пространство.
Что я знаю о ядре, так это то, что оно фактически представляет «сходство» между двумя точками данных. Но как это связано с проекцией?
machine-learning
svm
kernel-trick
Karnivaurus
источник
источник
Ответы:
Пустьh(x) проекция высокой размерности пространства F . В основном функция ядра K(x1,x2)=⟨h(x1),h(x2)⟩ , который является внутренним продуктом. Таким образом, он не используется для проецирования точек данных, а скорее является результатом проекции. Это можно считать мерой сходства, но в SVM это нечто большее.
Оптимизация для нахождения наилучшей разделяющей гиперплоскости вF включает h(x) только через форму внутреннего произведения. То есть, если вы знаете K(⋅,⋅) , вам не нужно знать точную форму h(x) , что облегчает оптимизацию.
Каждому ядруK(⋅,⋅) также соответствует h(x) . Так что, если вы используете SVM с этим ядром, то вы неявно находите линию линейного решения в пространстве, в которое отображается h(x) .
Глава 12 « Элементы статистического обучения» дает краткое введение в SVM. Это дает более подробную информацию о связи между ядром и отображением функций: http://statweb.stanford.edu/~tibs/ElemStatLearn/
источник
Полезные свойства ядра SVM не универсальны - они зависят от выбора ядра. Чтобы получить интуицию, полезно взглянуть на одно из наиболее часто используемых ядер - ядро Гаусса. Примечательно, что это ядро превращает SVM во что-то очень похожее на классификатор k-ближайших соседей.
Этот ответ объясняет следующее:
1. Достижение идеального разделения
Идеальное разделение всегда возможно с ядром Гаусса из-за свойств локальности ядра, которые приводят к произвольно гибкой границе решения. Для достаточно малой пропускной способности ядра граница принятия решения будет выглядеть так, как будто вы просто рисуете маленькие кружочки вокруг точек всякий раз, когда они необходимы для разделения положительных и отрицательных примеров:
(Фото: онлайн курс по машинному обучению Эндрю Нг ).
Итак, почему это происходит с математической точки зрения?
Рассмотрим стандартную настройку: у вас есть гауссово ядро и обучающие данные ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( n ) ,K(x,z)=exp(−||x−z||2/σ2) где значения y ( i ) равны ± 1 . Мы хотим узнать функцию классификатора(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n)) y(i) ±1
Теперь, как мы будем когда-либо назначать веса ? Нужны ли нам бесконечномерные пространства и алгоритм квадратичного программирования? Нет, потому что я просто хочу показать, что могу отлично разделять точки. Поэтому я делаю σ в миллиард раз меньше, чем наименьшее разделение | | x ( i ) - x ( j ) | | между любыми двумя примерами обучения, и я просто установил w i = 1 . Это означает , что все учебные пункты являются миллиард сигмы друг от друга, насколько это ядро касается, и каждая точка полностью контролирует знак уwi σ ||x(i)−x(j)|| wi=1 y^ в его окрестностях. Формально у нас есть
whereϵ is some arbitrarily tiny value. We know ϵ is tiny because x(k) is a billion sigmas away from any other point, so for all i≠k we have
Sinceϵ is so small, y^(x(k)) definitely has the same sign as y(k) , and the classifier achieves perfect accuracy on the training data. In practice this would be terribly overfitting but it shows the tremendous flexibility of the Gaussian kernel SVM, and how it can act very similar to a nearest neighbor classifier.
2. Kernel SVM learning as linear separation
The fact that this can be interpreted as "perfect linear separation in an infinite dimensional feature space" comes from the kernel trick, which allows you to interpret the kernel as an abstract inner product some new feature space:
whereΦ(x) is the mapping from the data space into the feature space. It follows immediately that the y^(x) function as a linear function in the feature space:
where the linear functionL(v) is defined on feature space vectors v as
This function is linear inv because it's just a linear combination of inner products with fixed vectors. In the feature space, the decision boundary y^(x)=0 is just L(v)=0 , the level set of a linear function. This is the very definition of a hyperplane in the feature space.
3. How the kernel is used to construct the feature space
Kernel methods never actually "find" or "compute" the feature space or the mappingΦ explicitly. Kernel learning methods such as SVM do not need them to work; they only need the kernel function K . It is possible to write down a formula for Φ but the feature space it maps to is quite abstract and is only really used for proving theoretical results about SVM. If you're still interested, here's how it works.
Basically we define an abstract vector spaceV where each vector is a function from X to R . A vector f in V is a function formed from a finite linear combination of kernel slices:
The inner product on the space is not the ordinary dot product, but an abstract inner product based on the kernel:
This definition is very deliberate: its construction ensures the identity we need for linear separation,⟨Φ(x),Φ(y)⟩=K(x,y) .
With the feature space defined in this way,Φ is a mapping X→V , taking each point x to the "kernel slice" at that point:
You can prove thatV is an inner product space when K is a positive definite kernel. See this paper for details.
источник
For the background and the notations I refer to How to calculate decision boundary from support vectors?.
So the features in the 'original' space are the vectorsxi , the binary outcome yi∈{−1,+1} and the Lagrange multipliers are αi .
As said by @Lii (+1) the Kernel can be written asK(x,y)=h(x)⋅h(y) ('⋅ ' represents the inner product.
I will try to give some 'intuitive' explanation of what thish looks like, so this answer is no formal proof, it just wants to give some feeling of how I think that this works. Do not hesitate to correct me if I am wrong.
I have to 'transform' my feature space (so myxi ) into some 'new' feature space in which the linear separation will be solved.
For each observationxi , I define functions ϕi(x)=K(xi,x) , so I have a function ϕi for each element of my training sample. These functions ϕi span a vector space. The vector space spanned by the ϕi , note it V=span(ϕi,i=1,2,…N) .
I will try to argue that is the vector space in which linear separation will be possible. By definition of the span, each vector in the vector spaceV can be written as as a linear combination of the ϕi , i.e.: ∑Ni=1γiϕi , where γi are real numbers.
The transformation, that maps my original feature space toV is defined as
This mapΦ maps my original feature space onto a vector space that can have a dimension that goed up to the size of my training sample.
Obviously, this transformation (a) depends on the kernel, (b) depends on the valuesxi in the training sample and (c) can, depending on my kernel, have a dimension that goes up to the size of my training sample and (d) the vectors of V look like ∑Ni=1γiϕi , where γi , γi are real numbers.
Looking at the functionf(x) in How to calculate decision boundary from support vectors? it can be seen that f(x)=∑iyiαiϕi(x)+b .
In other words,f(x) is a linear combination of the ϕi and this is a linear separator in the V-space : it is a particular choice of the γi namely γi=αiyi !
Theyi are known from our observations, the αi are the Lagrange multipliers that the SVM has found. In other words SVM find, through the use of a kernel and by solving a quadratic programming problem, a linear separation in the V -spave.
This is my intuitive understanding of how the 'kernel trick' allows one to 'implicitly' transform the original feature space into a new feature spaceV , with a different dimension. This dimension depends on the kernel you use and for the RBF kernel this dimension can go up to the size of the training sample.
So kernels are a technique that allows SVM to transform your feature space , see also What makes the Gaussian kernel so magical for PCA, and also in general?
источник
Let me explain it. The kernel trick is the key here. Consider the case of a Radial Basis Function (RBF) Kernel here. It transforms the input to infinite dimensional space. The transformation of inputx to ϕ(x) can be represented as shown below (taken from http://www.csie.ntu.edu.tw/~cjlin/talks/kuleuven_svm.pdf)
The input space is finite dimensional but the transformed space is infinite dimensional. Transforming the input to an infinite dimensional space is something that happens as a result of the kernel trick. Herex which is the input and ϕ is the transformed input. But ϕ is not computed as it is, instead the product ϕ(xi)Tϕ(x) is computed which is just the exponential of the norm between xi and x .
There is a related question Feature map for the Gaussian kernel to which there is a nice answer /stats//a/69767/86202.
The output or decision function is a function of the kernel matrixK(xi,x)=ϕ(xi)Tϕ(x) and not of the input x or transformed input ϕ directly.
источник
Отображение на более высокое измерение - это просто уловка для решения проблемы, определенной в исходном измерении; поэтому такие проблемы, как переоснащение ваших данных переходом в измерение со слишком большим количеством степеней свободы, не являются побочным продуктом процесса картирования, а являются неотъемлемой частью определения вашей проблемы.
По сути, все, что делает сопоставление, - это преобразование условной классификации в исходном измерении в определение плоскости в более высоком измерении, и, поскольку существует взаимосвязь 1: 1 между плоскостью в более высоком измерении и вашими условиями в более низком измерении, вы всегда можете двигаться между двумя.
Принимая во внимание проблему переобучения, вы можете переопределить любой набор наблюдений, определив достаточно условий, чтобы выделить каждое наблюдение в свой собственный класс, что эквивалентно отображению ваших данных в (n-1) D, где n - количество ваших наблюдений. ,
Возьмем простейшую задачу, где ваши наблюдения - это [[1, -1], [0,0], [1,1]] [[feature, value]], переместившись в 2D-измерение и разделив ваши данные линией Вы просто поворачиваете условную классификацию
feature < 1 && feature > -1 : 0
на определение линии, которая проходит через(-1 + epsilon, 1 - epsilon)
. Если у вас было больше точек данных и требовалось больше условий, вам просто нужно было добавить еще одну степень свободы к вашему более высокому измерению каждым новым определенным вами условием.You can replace the process of mapping to a higher dimension with any process that provides you with a 1 to 1 relationship between the conditions and the degrees of freedom of your new problem. Kernel tricks simply do that.
источник
[x, floor(sin(x))]
. Mapping your problem into a 2D dimension is not helpful here at all; in fact, mapping to any plane will not be helpful here, which is because defining the problem as a set ofx < a && x > b : z
is not helpful in this case. The simplest mapping in this case is mapping into a polar coordinate, or into the imaginary plane.