Les propriétés utiles du noyau SVM ne sont pas universelles - elles dépendent du choix du noyau. Pour obtenir l'intuition, il est utile de regarder l'un des noyaux les plus couramment utilisés, le noyau gaussien. Remarquablement, ce noyau transforme SVM en quelque chose de très similaire à un classificateur de voisin k-plus proche.
Cette réponse explique ce qui suit:
- Pourquoi une séparation parfaite des données d'entraînement positives et négatives est toujours possible avec un noyau gaussien de bande passante suffisamment petite (au prix d'un surajustement)
- Comment cette séparation peut être interprétée comme linéaire dans un espace d'entités.
- Comment le noyau est utilisé pour construire le mappage de l'espace de données à l'espace des fonctionnalités. Spoiler: l'espace caractéristique est un objet très abstrait mathématiquement, avec un produit intérieur abstrait inhabituel basé sur le noyau.
1. Atteindre une séparation parfaite
Une séparation parfaite est toujours possible avec un noyau gaussien en raison des propriétés de localisation du noyau, qui conduisent à une frontière de décision arbitrairement flexible. Pour une bande passante du noyau suffisamment petite, la frontière de décision ressemblera à ce que vous venez de dessiner de petits cercles autour des points chaque fois qu'ils sont nécessaires pour séparer les exemples positifs et négatifs:
(Crédit: cours d'apprentissage automatique en ligne d'Andrew Ng ).
Alors, pourquoi cela se produit-il dans une perspective mathématique?
Considérez la configuration standard: vous avez un noyau gaussien et des données d'entraînement ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( n ) ,K(x,z)=exp(−||x−z||2/σ2)où lesvaleurs y ( i ) sont±1. Nous voulons apprendre une fonction de classificateur(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n))y(i)±1
y^(x)=∑iwiy(i)K(x(i),x)
Maintenant, comment allons-nous jamais attribuer les poids ? Avons-nous besoin d'espaces de dimension infinie et d'un algorithme de programmation quadratique? Non, parce que je veux juste montrer que je peux parfaitement séparer les points. Je fais donc σ un milliard de fois plus petit que la plus petite séparation | | x ( i ) - x ( j ) | | entre deux exemples de formation, et je viens de définir w i = 1 . Cela signifie que tous les points de formation sont un milliard sigmas en dehors autant que le noyau est concerné, et chaque point contrôle complètement le signe de ywiσ||x(i)−x(j)||wi=1y^dans son quartier. Formellement, nous avons
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)+ϵ
où est une valeur arbitrairement minuscule. Nous savons que ϵ est minuscule parce que x ( k ) est à un milliard de sigmas de tout autre point, donc pour tout i ≠ k que nous avonsϵϵx(k)i≠k
K(x(i),x(k))=exp(−||x(i)−x(k)||2/σ2)≈0.
Puisque est si petit, y ( x ( k ) ) a certainement le même signe que y ( k )ϵy^(x(k))y(k) , et le classificateur permet d' obtenir une précision parfaite sur les données de formation. Dans la pratique, cela serait terriblement surajusté, mais cela montre la formidable flexibilité du noyau gaussien SVM, et comment il peut agir de manière très similaire à un classificateur de voisin le plus proche.
2. Apprentissage SVM du noyau comme séparation linéaire
Le fait que cela puisse être interprété comme une "séparation linéaire parfaite dans un espace d'entités de dimension infinie" vient de l'astuce du noyau, qui vous permet d'interpréter le noyau comme un produit intérieur abstrait d'un nouvel espace d'entités:
K(x(i),x(j))=⟨Φ(x(i)),Φ(x(j))⟩
où est le mappage de l'espace de données dans l'espace d'entités. Il en résulte immédiatement que la y ( x ) fonction comme une fonction linéaire dans l'espace de caractéristiques:Φ(x)y^(x)
y^(x)=∑iwiy(i)⟨Φ(x(i)),Φ(x)⟩=L(Φ(x))
où la fonction linéaire est définie sur les vecteurs d'espace caractéristique v commeL(v)v
L(v)=∑iwiy(i)⟨Φ(x(i)),v⟩
Cette fonction est linéaire en car c'est juste une combinaison linéaire de produits internes avec des vecteurs fixes. En l'espace de caractéristiques, la limite de décision y ( x ) = 0 est juste L ( v ) = 0 , le jeu de niveau d'une fonction linéaire. Il s'agit de la définition même d'un hyperplan dans l'espace des fonctionnalités.vy^(x)=0L(v)=0
3. Comment le noyau est utilisé pour construire l'espace des fonctionnalités
Méthodes du noyau ne fait « trouver » ou « compute » l'espace de fonction ou la mise en correspondance explicitement. Les méthodes d'apprentissage du noyau telles que SVM n'en ont pas besoin pour fonctionner; ils ont seulement besoin de la fonction du noyau K . Il est possible d'écrire une formule pour Φ mais l'espace caractéristique auquel il correspond est assez abstrait et n'est vraiment utilisé que pour prouver des résultats théoriques sur SVM. Si vous êtes toujours intéressé, voici comment cela fonctionne.ΦKΦ
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))
⟨Φ(x),Φ(y)⟩=K(x,y).
ΦX→Vx
Φ(x)=Kx,whereKx(y)=K(x,y).
V is an inner product space when K is a positive definite kernel. See this paper for details.