Корисні властивості ядра SVM не є універсальними - вони залежать від вибору ядра. Для інтуїції корисно подивитися одне з найбільш часто використовуваних ядер, ядро Гаусса. Примітно, що це ядро перетворює SVM в щось дуже схоже на k-найближчий класифікатор сусідів.
Ця відповідь пояснює наступне:
- Чому ідеальне розділення позитивних та негативних даних тренувань завжди можливо з ядром Гаусса досить невеликої пропускної здатності (ціною перевиконання)
- Як цей поділ може бути інтерпретований як лінійний у просторі функцій.
- Як ядро використовується для побудови відображення від простору даних до простору. Спойлер: простір функцій - це дуже математично абстрактний об'єкт з незвичайним абстрактним внутрішнім продуктом на основі ядра.
1. Досягнення ідеальної розлуки
Ідеальне розділення завжди можливо з ядром Гаусса через властивості локальності ядра, які призводять до довільно гнучкої межі рішення. При досить малій пропускній здатності ядра межа рішення буде виглядати так, що ви просто намалювали невеликі кола навколо точок, коли вони потрібні для розділення позитивних та негативних прикладів:
(Кредит: онлайн-курс машинного навчання Ендрю Нг ).
Отже, чому це відбувається з математичної точки зору?
Розглянемо стандартне налаштування: у вас є ядра Гаусса та дані тренувань ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( n ) ,K(x,z)=exp(−||x−z||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))+∑i≠ky(i)K(x(i),x(k))=y(k)+ϵ
де - якесь довільно крихітне значення. Ми знаємо, що ϵ крихітна, тому що x ( k ) - це мільярд сигм від будь-якої іншої точки, тому для всіх i ≠ kϵϵx(k)i≠k ми маємо
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 X→V, 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.