Aller au contenu
Kudos AI

Hyperplans séparateurs et marge

L’hyperplan comme règle de décision, la marge comme largeur de la bande la plus large entre les classes, la poignée d’observations qui la fixent, et les deux façons dont l’idée échoue.

IntermédiaireModule 125 min · 100 XP
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 régression logistique ajuste une frontière en rendant probables les étiquettes observées. Cette leçon adopte un tout autre point de départ : parmi toutes les frontières qui séparent les classes, préférer celle qui est la plus éloignée de chaque observation. Cette seule idée produit un classifieur doté d’une propriété inhabituelle : presque toutes les données se révèlent sans importance pour lui.

Un hyperplan est une règle de décision

En dimension pp, un hyperplan est l’ensemble plat, de dimension (p−1)(p-1),

β0+β1x1+β2x2+⋯+βpxp=0.\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p = 0 .

En deux dimensions c’est une droite, en trois un plan. Un point qui ne s’y trouve pas rend le membre de gauche soit positif, soit négatif : un hyperplan coupe donc l’espace en deux et fournit gratuitement un classifieur. Écrivons

f(x)=β0+β1x1+⋯+βpxpf(x) = \beta_0 + \beta_1 x_1 + \cdots + \beta_p x_p

et prédisons la classe +1+1 quand f(x)>0f(x) > 0 et la classe −1-1 quand f(x)<0f(x) < 0. Coder les étiquettes par ±1\pm 1 rend « correctement classé » compact : la prédiction est juste exactement quand

yif(xi)>0.y_i f(x_i) > 0 .

La grandeur de f(x)f(x) est elle aussi informative. Un point éloigné de la frontière a un f(x)f(x) éloigné de zéro, et l’on peut en être sûr ; un point proche de la frontière tient du pile ou face.

Quel hyperplan séparateur ?

Si les classes peuvent être séparées, elles peuvent généralement l’être d’une infinité de façons : déplacez ou inclinez légèrement une droite séparatrice et elle sépare encore. « Trouver un hyperplan séparateur » n’est donc pas encore un problème bien posé.

Le classifieur à marge maximale le résout. Calculez la distance de chaque observation d’entraînement à un hyperplan candidat ; la plus petite de ces distances est la marge. Choisissez alors l’hyperplan dont la marge est la plus grande. Autrement dit, c’est la ligne médiane de la bande la plus large que l’on puisse glisser entre les deux classes.

Exemple travaillé

Prenons six observations dans le plan :

class +1:(3,3), (4,4), (3,5)class −1:(1,1), (0,2), (2,0)\begin{array}{ll} \text{class } +1: & (3,3),\ (4,4),\ (3,5) \\ \text{class } -1: & (1,1),\ (0,2),\ (2,0) \end{array}

L’hyperplan à marge maximale est

x1+x2−4=0,x_1 + x_2 - 4 = 0 ,

et la distance perpendiculaire d’un point à cet hyperplan vaut ∣x1+x2−4∣/2|x_1 + x_2 - 4| / \sqrt{2}. En l’évaluant en chaque observation :

(3,3)+12≈1.4142(4,4)+122≈2.8284(3,5)+122≈2.8284(1,1)−12≈1.4142(0,2)−12≈1.4142(2,0)−12≈1.4142\begin{array}{lll} (3,3) & +1 & \sqrt{2} \approx 1.4142 \\ (4,4) & +1 & 2\sqrt{2} \approx 2.8284 \\ (3,5) & +1 & 2\sqrt{2} \approx 2.8284 \\ (1,1) & -1 & \sqrt{2} \approx 1.4142 \\ (0,2) & -1 & \sqrt{2} \approx 1.4142 \\ (2,0) & -1 & \sqrt{2} \approx 1.4142 \end{array}

La marge vaut 2\sqrt{2}, et quatre observations l’atteignent : (3,3)(3,3), (1,1)(1,1), (0,2)(0,2) et (2,0)(2,0). Ce sont les vecteurs de support. Ils se trouvent sur les bords de la bande et la maintiennent en place - déplacez-en un et l’hyperplan bouge.

Les deux autres, (4,4)(4,4) et (3,5)(3,5), sont à 222\sqrt{2} et sont sans importance. Vous pouvez les déplacer n’importe où de leur côté de la bande sans que le classifieur ajusté change le moins du monde. Notez aussi que les vecteurs de support ne se répartissent pas également entre les classes : un positif, trois négatifs.

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.

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.

L’énoncer comme une optimisation

Le problème s’écrit

max⁡β0,…,βp, MMsubject to∑j=1pβj2=1,yi(β0+β1xi1+⋯+βpxip)≥M  ∀i.\max_{\beta_0,\dots,\beta_p,\,M} M \quad\text{subject to}\quad \sum_{j=1}^{p}\beta_j^2 = 1, \qquad y_i\big(\beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}\big) \ge M \ \ \forall i .

La seconde contrainte dit que chaque observation est du bon côté et à au moins MM de distance. La première a l’air d’un détail technique, et n’en est pas un. Multiplier tous les coefficients par un k≠0k \neq 0 quelconque décrit le même hyperplan : sans convention d’échelle, les paramètres ne sont donc pas déterminés. Fixer le vecteur des coefficients à la norme un les fige, et cela fait de yi(β0+β⋅xi)y_i(\beta_0 + \beta \cdot x_i) la véritable distance perpendiculaire - ce qui donne à « maximiser MM » le sens de « maximiser la marge ».

La forme canonique. Une convention équivalente met à l’échelle de sorte que les points les plus proches vérifient yif(xi)=1y_i f(x_i) = 1. Notre hyperplan devient β=(0.5,0.5)\beta = (0.5, 0.5) avec β0=−2\beta_0 = -2, d’où ∥β∥=0.7071\lVert\beta\rVert = 0.7071 et une marge de 1/∥β∥=1.41421/\lVert\beta\rVert = 1.4142, le même 2\sqrt{2}. Maximiser la marge revient alors à minimiser ∥β∥\lVert\beta\rVert, la forme que résout la plupart des logiciels.

Deux façons d’échouer

Les classes peuvent ne pas être séparables. Aucun hyperplan ne satisfait alors les contraintes avec M>0M > 0, et le problème n’a tout simplement pas de solution. Les données réelles sont fréquemment ainsi, et une méthode qui ne renvoie rien du tout n’est pas d’un grand secours.

Même quand elle fonctionne, elle est fragile. La solution est entièrement déterminée par les quelques points les plus proches de la frontière : elle hérite donc de leur instabilité. Ajoutez une seule observation +1+1 en (1.6,1.6)(1.6, 1.6), blottie près du nuage négatif, et la meilleure marge atteignable tombe de 1.41421.4142 à 0.42430.4243 - un facteur de plus de trois, à cause d’un seul point. Puisqu’une marge étroite est précisément ce qui généralise mal, exiger une séparation parfaite est contre-productif.

Les deux échecs pointent dans la même direction : il faut autoriser le classifieur à se tromper sur quelques observations. C’est l’objet de la leçon suivante.

Avant le quiz

Sachez classer selon le signe de f(x)f(x), définir la marge, repérer les vecteurs de support et dire pourquoi les autres n’importent pas, expliquer à quoi sert la contrainte de normalisation, et nommer les deux modes d’échec.

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.

Débloquez tout le parcours

Cette première leçon est gratuite. Inscrivez-vous pour passer le quiz de maîtrise, gagner de l’XP et débloquer tous les modules, avec d’autres exemples interactifs et exécutables.