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


15

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

Що я знаю про ядро, це те, що воно ефективно представляє «схожість» між двома точками даних. Але як це стосується проекції?


3
Якщо ви переходите у достатньо високий розмірний простір, всі навчальні точки даних можуть бути ідеально розділені площиною. Це не означає, що він буде мати будь-яку передбачувальну силу. Я думаю, що перехід у дуже об'ємний простір є моральним еквівалентом (формою) перевитрати.
Марк Л. Стоун

@ Марк Л. Стоун: це правильно (+1), але все ж може бути гарним питанням, щоб запитати, як ядро ​​може відображатись у нескінченному просторі? Як це працює? Я спробував, подивіться свою відповідь

Я б обережно називав відображення функції "проекцією". Відображення ознак, як правило, нелінійне перетворення.
Пол

Дуже корисна публікація про трюк ядра візуально відображає внутрішній простір продукту ядра та описує, як використовуються великі розміри векторів функцій для досягнення цього, сподіваємось, це відповідає на питання коротко: eric-kim.net/eric-kim-net/ posts / 1 / kernel_trick.html
JStrahl

Відповіді:


6

Нехай 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/


ти маєш на увазі, що для ядра K(x,y) існує унікальний базовий h(x) ?

2
@fcoppens Ні; для тривіального прикладу розглянемо і - h . Однак існує унікальний простір гільбертового відтворюючого ядра, відповідний цьому ядру. hгод
Дугал

@Dougal: Тоді я можу погодитися з вами, але у відповіді вище було сказано "відповідна ", тому я хотів бути впевненим. Для RKHS я бачу, але ви вважаєте, що можна пояснити "інтуїтивно зрозумілим способом", як виглядає це перетворення h для ядра K ( x , y ) ? годгодК(х,у)

@fcoppens Взагалі ні; знайти чіткі зображення цих карт складно. Для деяких ядер це або не надто складно, або робилося раніше.
Дугал

1
@fcoppens Ви праві, h (x) не є унікальним. Ви можете легко вносити зміни до h (x), зберігаючи внутрішній продукт <h (x), h (x ')> однаковий. Однак ви можете розглядати їх як базові функції, а простір, який вони охоплюють (тобто RKHS), є унікальним.
Лій

4

Корисні властивості ядра SVM не є універсальними - вони залежать від вибору ядра. Для інтуїції корисно подивитися одне з найбільш часто використовуваних ядер, ядро ​​Гаусса. Примітно, що це ядро ​​перетворює SVM в щось дуже схоже на k-найближчий класифікатор сусідів.

Ця відповідь пояснює наступне:

  1. Чому ідеальне розділення позитивних та негативних даних тренувань завжди можливо з ядром Гаусса досить невеликої пропускної здатності (ціною перевиконання)
  2. Як цей поділ може бути інтерпретований як лінійний у просторі функцій.
  3. Як ядро ​​використовується для побудови відображення від простору даних до простору. Спойлер: простір функцій - це дуже математично абстрактний об'єкт з незвичайним абстрактним внутрішнім продуктом на основі ядра.

1. Досягнення ідеальної розлуки

Ідеальне розділення завжди можливо з ядром Гаусса через властивості локальності ядра, які призводять до довільно гнучкої межі рішення. При досить малій пропускній здатності ядра межа рішення буде виглядати так, що ви просто намалювали невеликі кола навколо точок, коли вони потрібні для розділення позитивних та негативних прикладів:

Something like this

(Кредит: онлайн-курс машинного навчання Ендрю Нг ).

Отже, чому це відбувається з математичної точки зору?

Розглянемо стандартне налаштування: у вас є ядра Гаусса та дані тренувань ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , , ( x ( n ) ,K(x,z)=exp(||xz||2/σ2) , де у ( я ) значення ± 1 . Ми хочемо вивчити функцію класифікатора(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))y(i)±1

y^(x)=iwiy(i)K(x(i),x)

Тепер, як ми колись будемо призначати ваги ? Чи потрібні нам нескінченні розмірні простори та алгоритм квадратичного програмування? Ні, тому що я просто хочу показати, що я можу відмінно розділити бали. Таким чином, я роблю σ в мільярд разів менше, ніж найменший поділ | | x ( i ) - x ( j ) | | між будь-якими двома прикладами навчання, і я просто встановив w i = 1 . Це означає , що всі навчальні пункти є мільярд сигми один від одного, наскільки це ядро стосується, і кожна точка повністю контролює знак уwiσ||x(i)x(j)||wi=1y^в його околицях. Формально у нас є

y^(x(k))=i=1ny(k)K(x(i),x(k))=y(k)K(x(k),x(k))+iky(i)K(x(i),x(k))=y(k)+ϵ

де - якесь довільно крихітне значення. Ми знаємо, що ϵ крихітна, тому що x ( k ) - це мільярд сигм від будь-якої іншої точки, тому для всіх i kϵϵx(k)ik ми маємо

K(x(i),x(k))=exp(||x(i)x(k)||2/σ2)0.

Так як настільки малий, у ( х ( до ) ) , безумовно , має один і той же знак, що і у ( K )ϵy^(x(k))y(k) , і класифікатор забезпечує ідеальну точність в тренувальних даних. На практиці це було б дуже приємно, але це показує надзвичайну гнучкість ядра Гаусса SVM, і як воно може діяти дуже схоже на найближчий класифікатор сусідів.

2. Навчання ядра SVM як лінійне розділення

Той факт, що це можна інтерпретувати як "ідеальне лінійне розділення у нескінченному просторовому просторі ознак", випливає з хитрості ядра, яка дозволяє інтерпретувати ядро ​​як абстрактний внутрішній продукт якийсь новий простір функцій:

K(x(i),x(j))=Φ(x(i)),Φ(x(j))

де - відображення з простору даних у простір функцій. Звідси безпосередньо випливає , що у ( х ) функції у вигляді лінійної функції в просторі ознак:Φ(x)y^(x)

y^(x)=iwiy(i)Φ(x(i)),Φ(x)=L(Φ(x))

де лінійна функція визначається на функціональних просторах векторів v якL(v)v

L(v)=iwiy(i)Φ(x(i)),v

This function is linear in v 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 space V 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:

f(x)=i=1nαiK(x(i),x)
(Here the x(i) are just an arbitrary set of points and need not be the same as the training set.) It is convenient to write f more compactly as
f=i=1nαiKx(i)
where Kx(y)=K(x,y) is a function giving a "slice" of the kernel at x.

The inner product on the space is not the ordinary dot product, but an abstract inner product based on the kernel:

i=1nαiKx(i),j=1nβjKx(j)=i,jαiβjK(x(i),x(j))

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 XV, taking each point x to the "kernel slice" at that point:

Φ(x)=Kx,whereKx(y)=K(x,y).

You can prove that V is an inner product space when K is a positive definite kernel. See this paper for details.


Great explanation, but I think you have missed a minus for the definition of the gaussian kernel. K(x,z)=exp(-||x−z||2/σ2) . As it's written, it does not make sense with the ϵ found in the part (1)
hqxortn

1

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 vectors xi, the binary outcome yi{1,+1} and the Lagrange multipliers are αi.

As said by @Lii (+1) the Kernel can be written as K(x,y)=h(x)h(y) ('' represents the inner product.

I will try to give some 'intuitive' explanation of what this h 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 my xi) into some 'new' feature space in which the linear separation will be solved.

For each observation xi, 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 space V can be written as as a linear combination of the ϕi, i.e.: i=1Nγiϕi, where γi are real numbers.

N is the size of the training sample and therefore the dimension of the vector space V can go up to N, depending on whether the ϕi are linear independent. As ϕi(x)=K(xi,x) (see supra, we defined ϕ in this way), this means that the dimension of V depends on the kernel used and can go up to the size of the training sample.

The transformation, that maps my original feature space to V is defined as

Φ:xiϕ(x)=K(xi,x).

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 values xi 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 i=1Nγiϕi, where γi, γi are real numbers.

Looking at the function f(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 !

The yi 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 space V, 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?


"for each element of my training sample" -- is element here referring to a row or column (i.e. feature )
user1761806

what is x and x_i? If my X is an input of 5 columns, and 100 rows, what would x and x_i be?
user1761806

@user1761806 an element is a row. The notation is explained in the link at the beginning of the answer

1

Перетворіть прогнози (вхідні дані) у просторовий простір з великими розмірами. Досить просто вказати ядро ​​для цього кроку, і дані ніколи не перетворюються явно в простір функцій. Цей процес широко відомий як хитрість ядра.

Дозвольте пояснити. Ключ у цьому ядрі є ключовим. Розглянемо випадок ядра радіальної базисної функції (RBF) тут. Це перетворює вхід у нескінченний розмірний простір. Перетворення вхідних данихх до ϕ(х)можна представити, як показано нижче (взято з http://www.csie.ntu.edu.tw/~cjlin/talks/kuleuven_svm.pdf )

enter image description here

Вхідний простір є кінцевим розміром, але перетворений простір є нескінченним. Перетворення вводу в нескінченний розмірний простір - це те, що відбувається в результаті хитрості ядра. Осьх 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 matrix K(xi,x)=ϕ(xi)Tϕ(x) and not of the input x or transformed input ϕ directly. enter image description here


0

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

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

Однозначно вирішуючи проблему придатності, ви можете переосмислити будь-який набір спостережень, визначивши достатньо умов, щоб виділити кожне спостереження у свій клас, що еквівалентно зіставлення ваших даних до (n-1) D, де n - кількість ваших спостережень .

Виймаючи найпростішу проблему, де ваші спостереження є [[1, -1], [0,0], [1,1]] [[особливість, значення]], перемістившись у двовимірний вимір і розділивши ваші дані рядком , ви просто перетворюєте умовну класифікацію 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.


1
As a different example, take the problem where the phenomenon results in observations of the form of [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 of x < 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.
Hou
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.