IA 101
Qu’est-ce que les Machines à Vecteurs de Support ?

Qu’est-ce que les Machines à Vecteurs de Support ?
Les machines à vecteurs de support sont un type de classificateur d’apprentissage automatique, qui est peut-être l’un des types de classificateurs les plus populaires. Les machines à vecteurs de support sont particulièrement utiles pour la prédiction numérique, la classification et les tâches de reconnaissance de modèles.
Les machines à vecteurs de support fonctionnent en traçant des frontières de décision entre les points de données, en visant la frontière de décision qui sépare le mieux les points de données en classes (ou qui est la plus généralisable). L’objectif lors de l’utilisation d’une machine à vecteurs de support est que la frontière de décision entre les points soit aussi large que possible afin que la distance entre n’importe quel point de données et la ligne de frontière soit maximisée. C’est une explication rapide de la façon dont les machines à vecteurs de support (SVM) fonctionnent, mais prenons le temps de creuser plus profondément pour comprendre la logique derrière leur fonctionnement.
Objectif des Machines à Vecteurs de Support
Imaginez un graphique avec un certain nombre de points de données, basés sur les fonctionnalités spécifiées par les axes X et Y. Les points de données sur le graphique peuvent être divisés de manière approximative en deux clusters différents, et le cluster auquel appartient un point de données indique la classe du point de données. Maintenant, supposons que nous voulions tracer une ligne sur le graphique qui sépare les deux classes les unes des autres, avec tous les points de données d’une classe situés d’un côté de la ligne et tous les points de données appartenant à une autre classe situés de l’autre côté de la ligne. Cette ligne de séparation est appelée hyperplan.
Vous pouvez considérer une machine à vecteurs de support comme créant des « routes » à travers une ville, en séparant la ville en quartiers de chaque côté de la route. Tous les bâtiments (points de données) situés d’un côté de la route appartiennent à un quartier.

L’objectif d’une machine à vecteurs de support n’est pas seulement de tracer des hyperplans et de diviser les points de données, mais de tracer l’hyperplan qui sépare les points de données avec la marge la plus large, ou avec le plus d’espace entre la ligne de séparation et n’importe quel point de données. En revenant à la métaphore des « routes », si un urbaniste trace des plans pour une autoroute, il ne veut pas que l’autoroute soit trop proche des maisons ou d’autres bâtiments. Plus la marge entre l’autoroute et les bâtiments des deux côtés est grande, mieux c’est. Plus cette marge est grande, plus le classificateur peut être « confiant » dans ses prévisions. Dans le cas d’une classification binaire, tracer l’hyperplan correct signifie choisir un hyperplan qui est juste au milieu des deux classes différentes. Si la frontière de décision/hyperplan est plus éloignée d’une classe, elle sera plus proche d’une autre. Par conséquent, l’hyperplan doit équilibrer la marge entre les deux classes différentes.
Calcul de l’Hyperplan de Séparation
Comment une machine à vecteurs de support détermine-t-elle l’hyperplan de séparation/la frontière de décision la plus appropriée ? Cela est réalisé en calculant des hyperplans possibles à l’aide d’une formule mathématique. Nous n’allons pas couvrir la formule de calcul des hyperplans dans les moindres détails, mais la ligne est calculée avec la fameuse formule de pente/ligne :
Y = ax + b
Pendant ce temps, les lignes sont constituées de points, ce qui signifie qu’un hyperplan peut être décrit comme : l’ensemble de points qui sont parallèles à l’hyperplan proposé, tel que déterminé par les poids du modèle multipliés par l’ensemble de fonctionnalités modifié par un décalage/biais spécifié (« d »).
Les SVM tracent de nombreux hyperplans. Par exemple, la ligne de frontière est un hyperplan, mais les points de données que le classificateur prend en compte sont également sur des hyperplans. Les valeurs de x sont déterminées en fonction des fonctionnalités du jeu de données. Par exemple, si vous aviez un jeu de données avec les tailles et les poids de nombreuses personnes, les fonctionnalités « taille » et « poids » seraient les fonctionnalités utilisées pour calculer « X ». Les marges entre l’hyperplan proposé et les différents « vecteurs de support » (points de données) trouvés de chaque côté de l’hyperplan de séparation sont calculées à l’aide de la formule suivante :
W * X – b
Bien que vous puissiez en savoir plus sur les mathématiques derrière les SVM, si vous cherchez une compréhension plus intuitive, sachez simplement que l’objectif est de maximiser la distance entre l’hyperplan de séparation proposé/ligne de frontière et les autres hyperplans qui sont parallèles à celui-ci (et sur lesquels se trouvent les points de données).

Photo : ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Classification Multiclasse
Le processus décrit jusqu’à présent s’applique aux tâches de classification binaire. Cependant, les classificateurs SVM peuvent également être utilisés pour des tâches de classification non binaires. Lors de la classification SVM sur un jeu de données avec trois classes ou plus, plusieurs lignes de frontière sont utilisées. Par exemple, si une tâche de classification comporte trois classes au lieu de deux, deux lignes de frontière seront utilisées pour diviser les points de données en classes et la région qui compose une seule classe se situera entre deux lignes de frontière au lieu d’une. Au lieu de calculer simplement la distance entre deux classes et une frontière de décision, le classificateur doit prendre en compte les marges entre les frontières de décision et les multiples classes au sein du jeu de données.
Séparations Non Linéaires
Le processus décrit ci-dessus s’applique aux cas où les données sont séparables de manière linéaire. Notez que, dans la réalité, les jeux de données sont presque jamais complètement séparables de manière linéaire, ce qui signifie que lors de l’utilisation d’un classificateur SVM, vous devrez souvent utiliser deux techniques différentes : la marge douce et les astuces de noyau. Considérez une situation où les points de données de classes différentes sont mélangés, avec certaines instances appartenant à une classe dans le « cluster » d’une autre classe. Comment le classificateur pourrait-il gérer ces instances ?
Une tactique qui peut être utilisée pour gérer les jeux de données non linéairement séparables est l’application d’un classificateur SVM à marge douce. Un classificateur à marge douce fonctionne en acceptant quelques points de données mal classés. Il essayera de tracer une ligne qui sépare le mieux les clusters de points de données les uns des autres, car ils contiennent la majorité des instances appartenant à leurs classes respectives. Le classificateur SVM à marge douce tente de créer une ligne de frontière qui équilibre les deux exigences du classificateur : la précision et la marge. Il essayera de minimiser les erreurs de classification tout en maximisant la marge.
La tolérance à l’erreur du SVM peut être ajustée en manipulant un hyperparamètre appelé « C ». La valeur C contrôle le nombre de vecteurs de support que le classificateur prend en compte lors du tracé des frontières de décision. La valeur C est une pénalité appliquée aux erreurs de classification, ce qui signifie que plus la valeur C est grande, moins le classificateur prend en compte les vecteurs de support et plus la marge est étroite.

L’astuce de noyau transforme les données de manière non linéaire. Photo : Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
L’astuce de noyau fonctionne en appliquant des transformations non linéaires aux fonctionnalités du jeu de données. L’astuce de noyau prend les fonctionnalités existantes du jeu de données et crée de nouvelles fonctionnalités en appliquant des fonctions mathématiques non linéaires. Ce qui résulte de l’application de ces transformations non linéaires est une frontière de décision non linéaire. Puisque le classificateur SVM n’est plus limité à tracer des frontières de décision linéaires, il peut commencer à tracer des frontières de décision courbes qui encapsulent mieux la distribution réelle des vecteurs de support et minimisent les erreurs de classification. Deux des noyaux non linéaires SVM les plus populaires sont la fonction radiale et le polynôme. La fonction polynomiale crée des combinaisons polynomiales de toutes les fonctionnalités existantes, tandis que la fonction radiale génère de nouvelles fonctionnalités en mesurant la distance entre un point central/points et tous les autres points.












