Properti berguna dari kernel SVM tidak universal - mereka bergantung pada pilihan kernel. Untuk mendapatkan intuisi, sangat membantu untuk melihat salah satu kernel yang paling umum digunakan, kernel Gaussian. Hebatnya, kernel ini mengubah SVM menjadi sesuatu yang sangat mirip dengan classifier tetangga k-terdekat.
Jawaban ini menjelaskan hal berikut:
- Mengapa pemisahan sempurna dari data pelatihan positif dan negatif selalu dimungkinkan dengan kernel Gaussian dengan bandwidth yang cukup kecil (dengan biaya overfitting)
- Bagaimana pemisahan ini dapat ditafsirkan sebagai linear dalam ruang fitur.
- Bagaimana kernel digunakan untuk membangun pemetaan dari ruang data ke ruang fitur. Spoiler: ruang fitur adalah objek abstrak yang sangat matematis, dengan produk dalam abstrak yang tidak biasa berdasarkan pada kernel.
1. Mencapai pemisahan sempurna
Pemisahan sempurna selalu dimungkinkan dengan kernel Gaussian karena sifat lokalitas kernel, yang mengarah pada batas keputusan yang fleksibel dan sewenang-wenang. Untuk bandwidth kernel yang cukup kecil, batas keputusan akan terlihat seperti Anda hanya menggambar lingkaran kecil di sekitar titik kapan pun mereka diperlukan untuk memisahkan contoh positif dan negatif:
(Kredit: kursus pembelajaran mesin online Andrew Ng ).
Jadi, mengapa ini terjadi dari perspektif matematika?
Pertimbangkan pengaturan standar: Anda memiliki kernel Gaussian dan data pelatihan ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( n ) ,K( x , z ) = exp( - | | x - z | |2/ σ2) dimana y ( i ) nilai-nilai ± 1 . Kami ingin mempelajari fungsi classifier( x( 1 ), y( 1 )) , ( x( 2 ), y( 2 )) , … , ( X( n ), y( n ))y(i)±1
y^( x ) = ∑sayawsayay( i )K( x( i ), x )
Sekarang bagaimana kita pernah menetapkan bobot ? Apakah kita memerlukan ruang dimensi tak terbatas dan algoritma pemrograman kuadratik? Tidak, karena saya hanya ingin menunjukkan bahwa saya dapat memisahkan poin dengan sempurna. Jadi saya membuat σ satu miliar kali lebih kecil dari pemisahan terkecil |, | x ( i ) - x ( j ) | | antara dua contoh pelatihan, dan saya baru saja menetapkan w i = 1 . Ini berarti bahwa semua poin pelatihan adalah miliar sigmas terpisah sejauh kernel yang bersangkutan, dan setiap titik benar-benar mengontrol tanda ywiσ||x(i)−x(j)||wi=1y^di lingkungannya. Secara formal, kami punya
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)+ϵ
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
K(x(i),x(k))=exp(−||x(i)−x(k)||2/σ2)≈0.
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:
K(x(i),x(j))=⟨Φ(x(i)),Φ(x(j))⟩
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:
y^(x)=∑iwiy(i)⟨Φ(x(i)),Φ(x)⟩=L(Φ(x))
where the linear function L(v) is defined on feature space vectors v as
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.