Aller au contenu
Kudos AI
Read in English
Machines à vecteurs de support

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.

7 min de lectureKudos AI

Prérequis : La régression logistique et la classification

De nombreuses droites séparatrices tracées à travers les deux mêmes nuages, puis toutes s’effacent sauf la bande la plus large, tandis que les quatre points qui en touchent les bords s’allument.

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 pp, un hyperplan est l’ensemble où β0+β1x1+⋯+βpxp=0\beta_0 + \beta_1 x_1 + \cdots + \beta_p x_p = 0. Il coupe l’espace en deux : en notant f(x)f(x) ce membre de gauche, on obtient donc un classifieur - prédire +1+1 quand f(x)>0f(x) > 0 et −1-1 sinon. Avec des étiquettes codées ±1\pm 1, une observation est correctement classée exactement quand yif(xi)>0y_i f(x_i) > 0.

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 +1+1 en (3,3)(3,3), (4,4)(4,4), (3,5)(3,5) et la classe −1-1 en (1,1)(1,1), (0,2)(0,2), (2,0)(2,0). La réponse est x1+x2−4=0x_1 + x_2 - 4 = 0, avec des distances ∣x1+x2−4∣/2|x_1 + x_2 - 4|/\sqrt{2} :

(3,3), (1,1), (0,2), (2,0)2≈1.414support vectors(4,4), (3,5)22≈2.828irrelevant\begin{array}{lll} (3,3),\ (1,1),\ (0,2),\ (2,0) & \sqrt{2} \approx 1.414 & \text{support vectors} \\ (4,4),\ (3,5) & 2\sqrt{2} \approx 2.828 & \text{irrelevant} \end{array}

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 (x1+x2≥6x_1 + x_2 \ge 6), 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 MM sous les contraintes ∑jβj2=1\sum_j \beta_j^2 = 1 et yi(β0+β⋅xi)≥My_i(\beta_0 + \beta\cdot x_i) \ge M pour tout ii. Cette normalisation a l’air d’une écriture de comptable, mais elle est essentielle : multiplier tous les coefficients par un k≠0k \neq 0 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 +1+1 en (1.6,1.6)(1.6, 1.6) et la meilleure marge atteignable tombe de 1.4141.414 à 0.4240.424. 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 εi≥0\varepsilon_i \ge 0, la contrainte devient yi(β0+β⋅xi)≥M(1−εi)y_i(\beta_0 + \beta \cdot x_i) \ge M(1 - \varepsilon_i), et le total est plafonné par ∑iεi≤C\sum_i \varepsilon_i \le C. 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.

CC est un budget de violation. À C=0C = 0, plus rien n’est abordable et le problème redevient le classifieur à marge maximale. Quand CC grandit, la marge s’élargit et davantage de points s’y installent. Comme chaque erreur de classement coûte plus d’une unité, CC 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.

CC est donc le cadran biais-variance sous un autre costume. Un CC petit donne une marge étroite soutenue par peu de points : biais faible, variance élevée. Un CC 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 x1,x2,x12,x22,x1x2x_1, x_2, x_1^2, x_2^2, x_1x_2 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 pp prédicteurs, constante incluse, sont au nombre de (p+1)(p+2)/2(p+1)(p+2)/2 :

p=26p=1066p=1005,151p=1,000501,501\begin{array}{ll} p = 2 & 6 \\ p = 10 & 66 \\ p = 100 & 5{,}151 \\ p = 1{,}000 & 501{,}501 \end{array}

Ce qui sauve la situation, c’est que la solution peut s’écrire f(x)=β0+∑iαi⟨x,xi⟩f(x) = \beta_0 + \sum_i \alpha_i \langle x, x_i\rangle, et qu’ajuster les αi\alpha_i 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 K(xi,xi′)K(x_i, x_{i'}), une fonction de similarité, et l’algorithme fonctionne encore - désormais implicitement dans l’espace auquel ce noyau correspond. Comme αi\alpha_i s’annule hors des vecteurs de support, la somme est en prime courte.

Le noyau polynomial K(xi,xi′)=(1+∑jxijxi′j)dK(x_i,x_{i'}) = (1 + \sum_j x_{ij}x_{i'j})^d 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 p=2p = 2, d=2d = 2 :

(1+x1z1+x2z2)2=⟨φ(x),φ(z)⟩,φ(x)=(1,2x1,2x2,x12,x22,2x1x2).(1 + x_1z_1 + x_2z_2)^2 = \langle \varphi(x), \varphi(z)\rangle, \qquad \varphi(x) = \big(1, \sqrt{2}x_1, \sqrt{2}x_2, x_1^2, x_2^2, \sqrt{2}x_1x_2\big) .
Python

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. À p=1,000p = 1{,}000, 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 exp⁡(−γ∑j(xij−xi′j)2)\exp(-\gamma \sum_j (x_{ij} - x_{i'j})^2), qui ne dépend que de la distance et décroît exponentiellement en son carré. Avec γ=1\gamma = 1, une distance au carré de 22 donne 0.1350.135 et une distance au carré de 88 donne 0.0003350.000335. 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.

xz
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.

Lecture associée

8 min de lectureApprentissage supervisé

La régression logistique et la classification

Pourquoi une droite ne peut pas modéliser une probabilité, comment la fonction logistique y remédie, et ce que signifient les coefficients en log-cotes, avec un pas de montée de gradient et un ajustement convergé calculés et vérifiés numériquement.

StatistiqueApprentissage automatiqueOptimisation
11 min de lectureRéseaux de neurones

Ce qui fait vraiment converger un entraînement

Deux pour cent d’écart sur le taux d’apprentissage séparent une exécution convergée d’une autre à cinq ordres de grandeur, un conditionnement prédit le taux de convergence à six décimales, et la descente de gradient stochastique à pas fixe ne converge jamais - elle se stabilise dans une boule dont le rayon croît comme la racine carrée du pas. Chaque chiffre a été calculé sur un problème dont l’optimum exact est connu.

OptimisationApprentissage profondApprentissage automatique
11 min de lectureApprentissage supervisé

Comparer les classifieurs, et ce que l’exactitude dissimule

Le classifieur de Bayes que rien ne peut battre et le plancher d’erreur qu’il laisse, les k plus proches voisins comme imitation non paramétrique avec k pour bouton de flexibilité, l’analyse discriminante et pourquoi une covariance partagée impose une droite, et la matrice de confusion, les seuils et la courbe ROC qu’un unique chiffre d’exactitude dissimule - chaque nombre calculé sur des données simulées où l’optimum est connu.

Apprentissage automatiqueStatistique
← Retour à tous les articles