IA 101

Qu’est-ce que les machines Ă  vecteurs de support ?

mm

Qu’est-ce que les machines à vecteurs de support ?

Les machines à vecteurs de support sont un type de classificateur d’apprentissage automatique, probablement l’un des types de classificateurs les plus populaires. Les machines à vecteurs de support sont particulièrement utiles pour les tâches de prédiction numérique, de classification et 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 essayons de creuser un peu plus 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 divisant 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 dessine 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 de la classification binaire, tracer l’hyperplan correct signifie choisir un hyperplan qui se situe 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 le plus approprié ? Cela est réalisé en calculant les hyperplans possibles à l’aide d’une formule mathématique. Nous n’allons pas détailler la formule de calcul des hyperplans dans les moindres détails, mais la ligne est calculée avec la célèbre formule de la droite :

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é, comme déterminé par les poids du modèle multipliés par l’ensemble de fonctionnalités modifié par un décalage/bias spécifié (« d »).

Les SVM tracent de nombreuses 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 la ligne de séparation sont calculées à l’aide de la formule suivante :

W * X – b

Alors que vous pouvez en apprendre davantage sur les mathématiques derrière les SVM, si vous cherchez à mieux comprendre leur fonctionnement, sachez simplement que l’objectif est de maximiser la distance entre l’hyperplan de séparation proposé 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. Lorsque vous effectuez une 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 dans le jeu de données.

Séparations non linéaires

Le processus décrit ci-dessus s’applique aux cas où les données sont linéairement séparables. Notez que, dans la réalité, les jeux de données sont presque jamais complètement linéairement séparables, 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ù des 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 peut-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 essaiera 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 essaie de créer une ligne de frontière qui équilibre les deux exigences du classificateur : la précision et la marge. Il essaiera 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 mieux encapsulent la véritable distribution 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 / des points centraux et tous les autres points.

Blogueur et programmeur avec des spécialités en Machine Learning et Deep Learning sujets. Daniel espÚre aider les autres à utiliser le pouvoir de l'IA pour le bien social.