Comment fonctionne une machine à vecteurs de support (SVM)?


109

Comment une machine à vecteurs de support (SVM) travail, et ce qui le différencie des autres classificateurs linéaires, tels que le linéaire Perceptron , analyse discriminante linéaire ou régression logistique ? *

(* Je pense en termes de motivations sous-jacentes à l'algorithme, de stratégies d'optimisation, de capacités de généralisation et de complexité d'exécution )



Réponses:


126

Les machines à vecteurs de support ne se concentrent que sur les points les plus difficiles à distinguer, alors que les autres classificateurs font attention à tous les points.

L’intuition qui sous-tend l’approche par vecteur de support est que si un classificateur est bon pour les comparaisons les plus difficiles (points B et A qui sont les plus proches l'un de l'autre sur la figure 2), alors le classificateur sera encore meilleur pour les comparaisons faciles ( en comparant les points dans B et A qui sont éloignés l’un de l’autre).

Perceptrons et autres classificateurs:

Les perceptrons sont construits en prenant un point à la fois et en ajustant la ligne de division en conséquence. Dès que tous les points sont séparés, l’algorithme de perceptron s’arrête. Mais cela pourrait s'arrêter n'importe où. La figure 1 montre qu’il existe toute une série de lignes de séparation qui séparent les données. Le critère d'arrêt du perceptron est simple: "séparez les points et arrêtez d'améliorer la ligne lorsque vous obtenez une séparation à 100%". Le perceptron n'est pas explicitement invité à trouver la meilleure ligne de séparation. La régression logistique et les modèles discriminants linéaires sont construits de la même manière que les perceptrons.

La meilleure ligne de division maximise la distance entre les points B les plus proches de A et les points A les plus proches de B. Il n'est pas nécessaire d'examiner tous les points pour ce faire. En fait, l’intégration des informations en retour de points éloignés risque d’alourdir un peu la ligne, comme indiqué ci-dessous.

entrez la description de l'image ici

Machines à vecteurs de support:

Contrairement aux autres classificateurs, la machine à vecteurs de support est explicitement invitée à rechercher la meilleure ligne de séparation. Comment? La machine à vecteurs de support recherche les points les plus proches (Figure 2), qu’elle appelle les "vecteurs de support" (le nom "machine à vecteurs de support" est dû au fait que les points sont comme des vecteurs et que la meilleure ligne "dépend de" ou est "supporté par" les points les plus proches).

Une fois qu'il a trouvé les points les plus proches, le SVM trace une ligne les reliant (voir la ligne intitulée «w» à la figure 2). Il trace cette ligne de connexion en faisant une soustraction vectorielle (point A - point B). La machine à vecteurs de support déclare ensuite la meilleure ligne de séparation comme étant la ligne qui divise en deux - et est perpendiculaire à - la ligne de jonction.

La machine à vecteurs de support est meilleure car lorsque vous obtenez un nouvel échantillon (nouveaux points), vous avez déjà créé une ligne qui garde B et A aussi éloignés que possible l'un de l'autre. Il est donc moins probable que l'un d'eux déborde. la ligne dans le territoire de l'autre.

entrez la description de l'image ici

Je me considère comme un apprenant visuel et j'ai longtemps lutté avec l'intuition des machines à vecteurs de support. Le document intitulé Dualité et géométrie dans les classificateurs SVM m'a finalement aidé à voir la lumière; c'est de là que j'ai eu les images.


4
+1 d'un autre apprenant visuel! Pour le lecteur, je voudrais noter que ces limites évidentes dans la figure ci-dessus sont basées sur un ensemble de données qui a déjà été transformé. Pas le jeu de données brutes.
Kingz

En lisant svm pendant plus de deux ans, nous comprenons aujourd'hui comment la ligne de séparation est identifiée et quelques autres choses. Merci pour la réponse propre.
user123

53

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,xWwTww=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.xRnn
  • 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

entrez la description de l'image ici

La classe est déterminée comme suit:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

qui peut être écrit de manière plus concise comme .y(i)(wTx(i)+b)1

Objectif

Le SVM vise à satisfaire deux exigences:

  1. 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=12wmaxw2wminww2

  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,bw2,s.t.y(i)(wTx(i)+b)1i{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,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,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,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,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αminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Ce problème d'optimisation peut être simplifié (en réglant certains gradients sur ) pour:0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w n'apparaît pas comme (comme indiqué par le théorème du représentant ).w=i=1Nα(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.i=1Nα(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:


2
Bonjour Franck, merci beaucoup pour ta réponse. Cela vous dérangerait-il d'expliquer pourquoi le vecteur est orthogonal à l'hyperplan que SVM génère? Et comment avez-vous calculé que la distance entre deux limites de décision est égale àw2w
tosik le

3
En plus de cette excellente réponse, je souhaite recommander cette vidéo qui passe en revue les mathématiques derrière SVM et clarifie en particulier la question @tosik a commenté youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

Très belle réponse. Une remarque à propos de cette partie: ssi est un vecteur de support . Pour la classification, la somme est effectivement supérieure aux vecteurs de support (c'est-à-dire, ). α(i)=0x(i)α(i)0
989

13

Je vais me concentrer sur les similitudes et les différences par rapport aux autres classificateurs:

  • D'un perceptron: SVM utilise la perte de charnière et la régularisation de la L2, le perceptron utilise la perte de perceptron et pourrait utiliser un arrêt précoce (ou entre autres techniques) pour la régularisation. Il n'y a vraiment pas de terme de régularisation dans le perceptron. Comme il n’a pas de terme de régularisation, le perceptron est forcément surentraîné, les capacités de généralisation peuvent donc être arbitrairement mauvaises. L'optimisation est effectuée en utilisant une descente de gradient stochastique et est donc très rapide. Sur le plan positif, cet article montre qu’en effectuant un arrêt précoce avec une fonction de perte légèrement modifiée, les performances pourraient être équivalentes à celles d’un SVM.

  • À partir de la régression logistique: la régression logistique utilise le terme de perte logistique et peut utiliser la régularisation L1 ou L2. Vous pouvez considérer la régression logistique comme le frère discriminant du générateur naïf Bayes.

  • De LDA: LDA peut aussi être vu comme un algorithme génératif, il suppose que les fonctions de densité de probabilité (p (x | y = 0) et p (x | y = 1) sont normalement distribuées. C'est idéal lorsque les données sont en Cependant, l’inconvénient est que la "formation" nécessite l’inversion d’une matrice qui peut être volumineuse (lorsque vous avez de nombreuses fonctionnalités). Sous homocédasticité, LDA devient QDA, ce qui est optimal pour Bayes pour des données distribuées normalement. les hypothèses sont satisfaites, vous ne pouvez vraiment pas faire mieux que cela.

Au moment de l'exécution (temps de test), une fois le modèle formé, la complexité de toutes ces méthodes est identique, il ne s'agit que d'un produit scalaire entre l'hyperplan de la procédure d'apprentissage trouvée et le point de donnée.


1
Puisque vous semblez très compétent en SVM, laissez-moi vous demander de clarifier mon doute: une fois que nous avons trouvé le meilleur hyperplan séparateur, à quoi nous sert-il? Nous pouvons définir SVM comme une méthode qui, d’une part, choisit le meilleur hyperplan pour classifier correctement les points de données et, d’autre part, elle utilise cet hyperplan pour séparer de nouveaux points de données dans les deux classes. Droite? (J'ai des doutes sur la deuxième partie)
DavideChicco.it

1
@ DavideChicco.it Oui, nous pouvons utiliser la fonction indicateur pour classer les nouvelles données, qui constituent souvent l'objectif principal du classificateur. (Ne me croyez pas sur parole, je suis novice dans ce domaine).
keyser

12

Cette technique suppose de tracer une ligne de démarcation décisionnelle en laissant une marge aussi large que possible pour les premiers exemples positifs et négatifs:

entrez la description de l'image ici

Comme dans l'illustration ci-dessus, si nous sélectionnons un vecteur orthogonal tel que nous pouvons établir un critère de décision pour tout exemple inconnu à cataloguer comme positif de la forme:w=1u

wuC

correspondant à une valeur qui placerait la projection au-delà de la ligne de décision au milieu de la rue. Notez que .wu=uw

Une condition équivalente pour un échantillon positif serait:

(1)wu+b0

avecC=b.

Nous avons besoin de et de pour avoir une règle de décision. Pour y arriver, nous avons besoin de contraintes .bw

Tout d' abord la contrainte que nous allons imposer est que pour tout échantillon positif , ; et pour les échantillons négatifs, . Dans la limite de division ou l'hyperplan ( médiane ), la valeur serait , tandis que les valeurs aux gouttières seront et :x+,wx++b1wx+b1011

entrez la description de l'image ici

Le vecteur est le vecteur de pondération , alors que est le biais .wb


Pour rapprocher ces deux inégalités, nous pouvons introduire la variable afin que pour les exemples positifs et si les exemples sont négatifs et conclureyiyi=+1yi=1

yi(xiw+b)10.

Nous établissons donc que ce doit être supérieur à zéro, mais si l'exemple est sur les hyperplans (les "gouttières") qui maximisent la marge de séparation entre l'hyperplan de décision et les extrémités des vecteurs de support, dans ce cas des lignes), ensuite:

(2)yi(xiw+b)1=0

Notez que ceci équivaut à exiger queyi(xiw+b)=1.

entrez la description de l'image ici


Deuxième contrainte : la distance de l'hyperplan de décision aux extrémités des vecteurs de support sera maximisée. En d'autres termes, la marge de séparation ("rue") sera maximisée:

entrez la description de l'image ici

En supposant un vecteur unitaire perpendiculaire à la limite de décision, , le produit scalaire avec la différence entre deux exemples "limitrophes" plus et moins est la largeur de "la rue" :w

width=(x+x)ww

Sur l'équation ci-dessus et sont dans la gouttière (sur les hyperplans maximisant la séparation). Par conséquent, pour l'exemple positif: , ou ; et pour l'exemple négatif: . Donc, reformuler la largeur de la rue:x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

Il ne reste plus qu’à maximiser la largeur de la rue, c’est-à-dire maximiser minimiser ou minimiser:2w,w

(4)12w2

ce qui est mathématiquement pratique.


Nous voulons donc:

  1. Réduire au minimum avec la contrainte:x2

  2. yi(wxi+b)1=0


Puisque nous voulons minimiser cette expression en fonction de certaines contraintes, nous avons besoin d’un multiplicateur de Lagrange (remontant aux équations 2 et 4):

(5)L=12w2λi[yi(xiw+b)1]

Différencier,

Lw=wλiyixi=0
.

Donc,

(6)w=λiyixi

Et différenciant par rapport àb:

Lb=λiyi=0,

ce qui signifie que nous avons un produit à somme nulle de multiplicateurs et d'étiquettes:

(7)λiyi=0

Insertion de l'équation Eq (6) dans Eq (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

L'avant-dernier terme est zéro selon l'équation Eq (7).

Donc,

(8)L=λi12ijλiλjyiyjxixj

Eq (8) étant le Lagrangien final.

Par conséquent, l'optimisation dépend du produit scalaire de paires d'exemples.

Pour revenir à la "règle de décision" dans l'équation (1) ci-dessus et utiliser l'équation (6):

(9)λiyixiu+b0

sera la règle de décision finale pour un nouveau vecteuru.


Rien d'original ... Juste mes propres notes à un niveau plus bas. Fondamentalement de cette vidéo du MIT avec mes propres illustrations. Pour les erreurs, s'il vous plaît faites le moi savoir. Pour des réponses perspicaces et de plus amples détails, allez au niveau expert (poste de Franck et autres).
Antoni Parellada

Et comment calculer b ?
Mike

1
@ Mike avec étant l'ensemble des indices des vecteurs de supportVous pouvez le trouver ici . b=ysmSαmymxmxsS(αi>0).
Antoni Parellada

@AntoniParellada réponse étonnante Antoni remercie beaucoup - mais ne manque-t-il pas une partie concernant le problème de Dual et les conditions KTT?
Xavier Bourret Sicotte

@XavierBourretSicotte Je ne pourrai pas travailler dessus pendant un moment. S'il vous plaît, envisagez de rédiger une autre réponse concernant ces questions. Si vous le faites, faites-le-moi savoir afin que je sache ce que je peux faire et que je puisse le modifier.
Antoni Parellada

3

Quelques commentaires sur les conditions de dualité et de KTT

Problème primordial

En reprenant le post de @ Antoni entre les équations et , rappelez-vous que notre problème d'optimisation original, ou primal , est de la forme:(4)(5)

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

Méthode de Lagrange

La méthode des multiplicateurs de Lagrange nous permet de transformer un problème d’optimisation sous contrainte en un problème sans contrainte de la forme:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

Où est appelé le lagrangien et sont appelés les multiplicateurs de Lagrangian . L(w,b,α)αi

Notre problème d’optimisation primaire avec le lagrangien devient le suivant: (notez que l’utilisation de , n’est pas la plus rigoureuse, nous devrions également utiliser et ici ...)minmaxinfsup

minw,b(maxαL(w,b,α))

Double problème

@Antoni et le professeur Patrick Winston ont supposé dans leur dérivation que la fonction d'optimisation et les contraintes répondent à certaines conditions techniques, de sorte que nous pouvons effectuer les tâches suivantes:

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

Cela nous permet de prendre les dérivées partielles de par rapport à et , égales à zéro, puis de replacer les résultats dans l'équation d'origine du lagrangien, générant ainsi un équivalent problème d'optimisation double de la formeL(w,b,α)wb

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

Dualité et KTT

Sans entrer dans des détails techniques mathématiques excessives, ces conditions sont une combinaison des Dualité et les conditions Tucker Kuhn Karush (KTT) et nous permettent de résoudre le double problème au lieu du primaire un, tout en veillant à ce que la solution est la même. Dans notre cas, les conditions sont les suivantes:

  • Les fonctions primale d'objectif et de contrainte d'inégalité doivent être convexes
  • La fonction de contrainte d'égalité doit être affine
  • Les contraintes doivent être strictement réalisables

Il existe alors qui sont des solutions aux problèmes primitifs et dualistes. De plus, les paramètres satisfont aux conditions KTT suivantes:w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

De plus, si certains satisfont les solutions de KTT, ils sont aussi une solution au problème primal et dual.w,α

L'équation ci-dessus revêt une importance particulière et s'appelle la condition de double complémentarité . Cela implique que si alors ce qui signifie que la contrainte est active, c'est-à-dire qu'elle tient avec égalité plutôt qu'inégalité. C'est l'explication de l'équation dans la dérivation d'Antoni où la contrainte d'inégalité est transformée en contrainte d'égalité.(C)αi>0gi(w)=0gi(w)0(2)

Un schéma intuitif mais informel

entrez la description de l'image ici

Sources


2
Merci beaucoup. Je l'ai lue rapidement et j'y reviens plus tard, mais cela sonne bien et touche à des points manquants dans ma réponse.
Antoni Parellada
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.