Machines à vecteurs de support : marges et noyaux
Pourquoi la bande la plus large entre deux classes est une bonne frontière, pourquoi en exiger une parfaite est contre-productif, comment un budget de violations rachète de la stabilité, et comment un noyau courbe la frontière en travaillant dans un espace qu’il n’a jamais à construire.
Prérequis : La régression logistique et la classification
La plupart des classifieurs s’ajustent en écrivant une perte puis en la minimisant. Les machines à vecteurs de support partent d’un point plus géométrique : parmi toutes les frontières qui séparent deux classes, préférer celle qui est la plus éloignée de chaque observation. Suivre honnêtement cette idée mène à un classifieur qui ignore l’essentiel de ses propres données d’entraînement, puis à une technique pour courber la frontière sans payer l’espace dans lequel elle se courbe.
A. La bande la plus large
En dimension , un hyperplan est l’ensemble où . Il coupe l’espace en deux : en notant ce membre de gauche, on obtient donc un classifieur - prédire quand et sinon. Avec des étiquettes codées , une observation est correctement classée exactement quand .
Si les classes se séparent, elles se séparent généralement d’une infinité de façons ; la question est donc de savoir quel hyperplan retenir. Le classifieur à marge maximale calcule la distance de chaque observation à un hyperplan candidat, appelle marge la plus petite d’entre elles, et choisit l’hyperplan dont la marge est la plus grande. C’est la ligne médiane de la bande la plus large qui tienne entre les classes.
Six points rendent cela concret. La classe en , , et la classe en , , . La réponse est , avec des distances :
Quatre observations touchent le bord de la bande et la maintiennent en place : ce sont les vecteurs de support. Les deux autres peuvent être déplacées n’importe où de leur côté de la bande, tant qu’elles restent hors de celle-ci (), sans rien changer au classifieur ajusté. Faites-en entrer une dans la bande et celle-ci se rétrécit. Notez que les vecteurs de support ne se répartissent pas également entre les classes.
L’optimisation s’énonce comme la maximisation de sous les contraintes et pour tout . Cette normalisation a l’air d’une écriture de comptable, mais elle est essentielle : multiplier tous les coefficients par un quelconque décrit le même hyperplan, si bien que sans convention d’échelle les paramètres sont indéterminés. Fixer la norme à un fait en outre de la quantité contrainte la véritable distance perpendiculaire.
Interactif : la bande la plus large qui tient
Les points cerclés sont les vecteurs de support.
- Marge
- 1.414214
- Vecteurs de support
- 4
- Séparable
- oui
La bande la plus large a une demi-largeur de 1.414214, et exactement 4 points la touchent. Ce sont les vecteurs de support, et ils constituent toute la solution : les deux positifs plus éloignés sont à 2,8284 et pourraient être déplacés n’importe où de leur côté, hors de la bande, sans que la frontière bouge d’un cheveu. Un classifieur qui dépend de quatre points sur six est un objet étrange, et c’est pourquoi les marges généralisent bien tout en restant fragiles.
B. Pourquoi la perfection est le mauvais objectif
Le classifieur à marge maximale échoue de deux façons. Il n’a aucune solution quand les classes ne sont pas séparables, ce qui est fréquent. Et quand il fonctionne, il est entièrement déterminé par les points les plus proches de la frontière : il hérite donc de leur instabilité. Ajoutez aux six ci-dessus une seule observation en et la meilleure marge atteignable tombe de à . Un point, un facteur de plus de trois. Puisqu’une marge étroite est précisément ce qui généralise mal, exiger une séparation parfaite se retourne contre soi.
Le classifieur à vecteurs de support autorise les violations et les facture. Chaque observation reçoit une variable d’écart , la contrainte devient , et le total est plafonné par . L’écart dit la gravité de l’inconduite d’un point : zéro pour le bon côté de la marge, jusqu’à un pour l’intérieur de la marge mais encore correctement classé, et au-delà de un pour le mauvais côté de l’hyperplan lui-même.
est un budget de violation. À , plus rien n’est abordable et le problème redevient le classifieur à marge maximale. Quand grandit, la marge s’élargit et davantage de points s’y installent. Comme chaque erreur de classement coûte plus d’une unité, plafonne aussi le nombre d’erreurs d’entraînement. Il n’est pas estimé par le solveur : c’est un hyperparamètre réglé par validation croisée.
Le problème à marge souple possède une propriété qu’il vaut la peine d’isoler : une observation strictement du bon côté de la marge n’a aucun effet sur le classifieur. Déplacez-la, rien ne change. Seuls les points situés sur la marge ou qui la violent - les vecteurs de support - entrent dans la solution avec des coefficients non nuls. C’est le sens précis dans lequel la méthode est robuste aux points lointains, et ce qui la distingue de l’analyse discriminante linéaire, qui utilise chaque observation à travers les moyennes de classe et la covariance.
est donc le cadran biais-variance sous un autre costume. Un petit donne une marge étroite soutenue par peu de points : biais faible, variance élevée. Un grand donne une marge large reposant sur beaucoup : plus de biais, moins de variance.
C. Courber la frontière gratuitement
Certaines données ne sont séparées par rien de plat - une classe en anneau autour d’une autre, par exemple. Le remède standard consiste à élargir l’espace des variables : ajustez une frontière linéaire dans et elle redescend dans le plan sous la forme d’une conique. L’obstacle est le coût. Les monômes de degré au plus 2 sur prédicteurs, constante incluse, sont au nombre de :
Ce qui sauve la situation, c’est que la solution peut s’écrire , et qu’ajuster les ne demande que les produits scalaires entre paires d’observations d’entraînement. Aucune des deux étapes ne touche jamais aux coordonnées. Remplacez donc chaque produit scalaire par un noyau , une fonction de similarité, et l’algorithme fonctionne encore - désormais implicitement dans l’espace auquel ce noyau correspond. Comme s’annule hors des vecteurs de support, la somme est en prime courte.
Le noyau polynomial change le classifieur à vecteurs de support en machine à vecteurs de support. Ce n’est pas un tour de passe-passe, et cela vaut la peine d’être vérifié une fois. Pour , :
S'exécute dans votre navigateur. La première exécution télécharge l'environnement Python (~10 Mo), puis il est mis en cache.
Le noyau renvoie un produit scalaire à six dimensions à partir de deux dimensions d’entrée. À , l’application explicite réclame un demi-million de coordonnées quand le noyau coûte encore mille multiplications.
L’autre choix courant est le noyau radial , qui ne dépend que de la distance et décroît exponentiellement en son carré. Avec , une distance au carré de donne et une distance au carré de donne . Il est local : une prédiction est gouvernée par les points d’entraînement proches, les points lointains entrant avec des poids indiscernables de zéro. Cette localité est la source de sa souplesse, et elle correspond à un espace de variables de dimension infinie que vous ne pourriez écrire à aucun prix - ce qui est le meilleur argument en faveur d’un travail par noyaux plutôt que par coordonnées.
Vérifiez-le vous-même ci-dessous plutôt que sur trois paires figées. Déplacez le second point où vous voulez : le noyau, calculé à partir de deux coordonnées, et le produit scalaire des deux images à six dimensions restent le même nombre, et les six coordonnées que le membre de droite a dû construire sont imprimées en dessous. Passez ensuite au noyau radial et écartez les points : deux unités suffisent déjà pour qu’une observation d’entraînement n’apporte plus rien.
Interactif : le même nombre, calculé de deux façons
Déplacez le second point. Les deux colonnes ne divergent jamais.
- K(x, z)
- 49.0000
- Produit scalaire des images
- 49.0000
- Distance au carré
- 8.00
- Variables à p = 1000
- 501,501
Les six coordonnées que le membre de droite a dû construire
1.000 1.414 1.414 1.000 1.000 1.414
Le noyau donne 49.0000 à partir de deux coordonnées ; le produit scalaire des deux images à six dimensions donne 49.0000. C’est le même nombre, et ce le sera pour n’importe quels points : le noyau est ce produit scalaire, il ne l’approche pas. Regardez maintenant le coût. Les variables de degré 2 sur mille prédicteurs en demandent 501 501 écrites explicitement ; le noyau coûte toujours 1 000 multiplications. Cet écart est tout le propos.
Où cela vous laisse
Une marge est une raison défendable de préférer une frontière à une autre, et les vecteurs de support sont les seules données qui comptent pour elle. Exiger une séparation parfaite est fragile, un budget de violations rachète donc de la stabilité, et ce budget est le familier cadran biais-variance. Les noyaux courbent ensuite la frontière en changeant ce que « similarité » veut dire, plutôt qu’en construisant un espace plus grand. Le parcours de formation Machines à vecteurs de support travaille chacun de ces points à la main et en code.
Références et lectures complémentaires
- Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, An Introduction to Statistical Learning, with Applications in R, Springer (Springer Texts in Statistics 103), 2013source ↗
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.