La réponse de Ryan Zotti explique la motivation derrière la maximisation des limites de décision, la réponse de carlosdc donne certaines similitudes et différences par rapport aux autres classificateurs. Je vais donner dans cette réponse un bref aperçu mathématique de la façon dont les SVM sont formés et utilisés.
Notations
Dans la suite, les scalaires sont désignés par des minuscules en italique (par exemple, ), les vecteurs par des minuscules en gras (par exemple, ) et des matrices avec des majuscules en italique (par exemple, ). est la transposée de et .y,bw,xWwTw∥w∥=wTw
Laisser:
- x est un vecteur de caractéristiques (c’est-à-dire l’entrée du SVM). , où est la dimension du vecteur de caractéristique.x∈Rnn
- y être la classe (c'est-à-dire la sortie du SVM). , c'est-à-dire que la tâche de classification est binaire.y∈{−1,1}
- w et soient les paramètres du SVM: nous devons les apprendre en utilisant le jeu d’entraînement.b
- (x(i),y(i)) soit l' échantillon de l'ensemble de données. Supposons que nous avons échantillons dans l'ensemble de formation.ithN
Avec , on peut représenter les limites de décision du SVM comme suit:n=2
La classe est déterminée comme suit:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
qui peut être écrit de manière plus concise comme .y(i)(wTx(i)+b)≥1
Objectif
Le SVM vise à satisfaire deux exigences:
Le SVM devrait maximiser la distance entre les deux limites de décision. Mathématiquement, cela signifie que nous voulons maximiser la distance entre l'hyperplan défini par et l'hyperplan défini par . Cette distance est égale à . Cela signifie que nous voulons résoudre . De même, nous voulons
.wTx+b=−1wTx+b=12∥w∥maxw2∥w∥minw∥w∥2
Le SVM doit également classer correctement tous les , ce qui signifiex(i)y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Ce qui nous amène au problème d'optimisation quadratique suivant:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Il s’agit de la SVM à marge dure , car ce problème d’optimisation quadratique admet une solution si et seulement si les données sont séparables linéairement.
On peut assouplir les contraintes en introduisant des variables dites slack . Notez que chaque échantillon de l'ensemble d'apprentissage a sa propre variable de jeu. Cela nous donne le problème d'optimisation quadratique suivant:ξ(i)
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Ceci est la SVM à marge souple . est un hyperparamètre appelé pénalité du terme d'erreur . ( Quelle est l'influence du C dans les SVM à noyau linéaire? Et quelle plage de recherche pour déterminer les paramètres optimaux des SVM? ).C
On peut ajouter encore plus de flexibilité en introduisant une fonction qui mappe l’espace caractéristique original vers un espace fonctionnel dimensionnel supérieur. Cela permet des limites de décision non linéaires. Le problème d'optimisation quadratique devient:ϕ
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Optimisation
Le problème d'optimisation quadratique peut être transformé en un autre problème d'optimisation appelé le problème dual de Lagrange (le problème précédent est appelé le primal ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Ce problème d'optimisation peut être simplifié (en réglant certains gradients sur ) pour:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w n'apparaît pas comme (comme indiqué par le théorème du représentant ).w=∑Ni=1α(i)y(i)ϕ(x(i))
Nous apprenons donc le utilisant le de l'ensemble d'apprentissage.α(i)(x(i),y(i))
(FYI: Pourquoi se préoccuper du double problème lors de l’ajustement de SVM? Réponse courte: un calcul plus rapide + permet d’utiliser l’astuce du noyau, bien qu’il existe de bonnes méthodes pour entraîner SVM dans le primal, voir par exemple {1})
Faire une prédiction
Une fois les appris, on peut prédire la classe d’un nouvel échantillon avec le vecteur de caractéristiques comme suit:α(i)xtest
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
La somme peut sembler accablante, car cela signifie que l’on doit faire la somme de tous les échantillons d’entraînement, mais la grande majorité de vaut (voir Pourquoi Multiplicateurs de Lagrange clairsemés pour les SVM? ) En pratique, donc, ce n’est pas un problème. (notez que l' on peut construire des cas spéciaux où tous les . 0si est un vecteur de support . L'illustration ci-dessus a 3 vecteurs de support.∑Ni=1α(i)0α(i)>0α(i)=0x(i)
Astuce du noyau
On peut observer que le problème d'optimisation utilise le uniquement dans le produit interne . La fonction qui mappe au produit intérieur est appelé un noyau , c'est-à-dire une fonction du noyau, souvent désignée par .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k
On peut choisir pour que le produit interne soit efficace à calculer. Cela permet d’utiliser un espace de fonctionnalités potentiellement élevé à un coût de calcul faible. C'est ce qu'on appelle le truc du noyau . Pour qu'une fonction du noyau soit valide , c'est-à-dire utilisable avec l'astuce du noyau, elle doit satisfaire à deux propriétés clés . Il existe de nombreuses fonctions du noyau parmi lesquelles choisir . En guise de remarque, l’astuce du noyau peut s’appliquer à d’autres modèles d’apprentissage automatique , auquel cas ils sont qualifiés de « noyaués» .k
Aller plus loin
Quelques QA intéressants sur les SVM:
Autres liens:
Références: