Suivez nous sur
Classe de maître IA :

AI 101

Que sont les machines à vecteurs de support ?

mm
Le kit de préparation mis à jour on

Que sont les machines à vecteurs de support ?

Les machines à vecteurs de support sont un type de classificateur d’apprentissage automatique, sans doute 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 formes.

Les machines à vecteurs de support fonctionnent en traçant des limites de décision entre les points de données, en visant la limite 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 grande que possible afin que la distance entre un point de données donné et la ligne de démarcation soit maximisée. C'est une explication rapide de la façon dont soutenir les machines vectorielles (SVM) fonctionnent, mais prenons le temps d'approfondir le fonctionnement des SVM et de comprendre la logique derrière leur fonctionnement.

Objectif des machines vectorielles de support

Imaginez un graphique avec un certain nombre de points de données, basés sur des caractéristiques spécifiées par les axes X et Y. Les points de données sur le graphique peuvent être vaguement divisés en deux groupes différents, et le groupe auquel appartient un point de données indique la classe du point de données. Supposons maintenant que nous voulions tracer une ligne vers le bas du graphique qui sépare les deux classes l'une de l'autre, avec tous les points de données d'une classe trouvés d'un côté de la ligne et tous les points de données appartenant à une autre classe trouvé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 » dans une ville, séparant la ville en quartiers de chaque côté de la route. Tous les bâtiments (points de données) qui se trouvent d'un côté de la route appartiennent à un quartier.

L'objectif d'une machine à vecteurs de support n'est pas seulement de dessiner des hyperplans et de diviser des points de données, mais de dessiner l'hyperplan des points de données séparés avec la plus grande marge ou avec le plus d'espace entre la ligne de séparation et un point de données donné. Pour en revenir à la métaphore des « routes », si un urbaniste dessine des plans pour une autoroute, il ne veut pas que l'autoroute soit trop proche de maisons ou d'autres bâtiments. Plus il y a de marge entre l'autoroute et les bâtiments de chaque côté, mieux c'est. Plus cette marge est grande, plus le classificateur peut être "confiant" sur ses prédictions. Dans le cas de la classification binaire, dessiner le bon hyperplan signifie choisir un hyperplan qui se trouve juste au milieu des deux classes différentes. Si la limite de décision/l'hyperplan est plus éloigné d'une classe, il 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

Alors, comment une machine à vecteurs de support détermine-t-elle la meilleure séparation hyperplan/frontière de décision ? Ceci est accompli en calculant les hyperplans possibles à l'aide d'une formule mathématique. Nous n'aborderons pas la formule de calcul des hyperplans dans les moindres détails, mais la droite est calculée avec la fameuse formule pente/droite :

Y = hache + b

Pendant ce temps, les lignes sont constituées de points, ce qui signifie que tout hyperplan peut être décrit comme : l'ensemble de points parallèles à l'hyperplan proposé, tel que déterminé par les poids du modèle multipliés par l'ensemble d'entités modifiées par un décalage/biais spécifié ("d").

Les SVM dessinent de nombreux hyperplans. Par exemple, la ligne de démarcation est un hyperplan, mais les points de données que le classificateur considère sont également sur des hyperplans. Les valeurs de x sont déterminées en fonction des entités du jeu de données. Par exemple, si vous aviez un ensemble de données avec les tailles et les poids de nombreuses personnes, les caractéristiques "taille" et "poids" seraient les caractéristiques utilisées pour calculer le "X". Les marges entre l'hyperplan proposé et les différents "vecteurs supports" (points de données) trouvés de part et d'autre de l'hyperplan diviseur sont calculées avec la formule suivante :

L * X - b

Bien que vous puissiez en savoir plus sur les mathématiques derrière les SVM, si vous recherchez une compréhension plus intuitive de celles-ci, sachez simplement que l'objectif est de maximiser la distance entre l'hyperplan de séparation proposé / la ligne frontière et les autres hyperplans qui lui sont parallèles ( et sur lequel les points de données sont trouvés).

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, davantage de lignes de délimitation sont utilisées. Par exemple, si une tâche de classification a trois classes au lieu de deux, deux lignes de division seront utilisées pour diviser les points de données en classes et la région qui comprend une seule classe tombera entre deux lignes de division au lieu d'une. Au lieu de simplement calculer la distance entre seulement deux classes et une limite de décision, le classifieur doit maintenant considérer les marges entre les limites de décision et les multiples classes au sein de l'ensemble 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 qu'en réalité, les ensembles de données ne 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: astuces de marge souple et de noyau. Considérons une situation où des points de données de différentes classes sont mélangés, certaines instances appartenant à une classe dans le « cluster » d'une autre classe. Comment pourriez-vous faire en sorte que le classifieur gère ces instances ?

Une tactique qui peut être utilisée pour gérer des ensembles de données non linéairement séparables est l'application d'un classificateur SVM à «marge souple». Un classificateur de marge souple fonctionne en acceptant quelques points de données mal classés. Il essaiera de tracer une ligne qui sépare au 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 souple tente de créer une ligne de démarcation qui équilibre les deux exigences du classificateur : précision et marge. Il essaiera de minimiser les erreurs de classification tout en maximisant la marge.

La tolérance d'erreur du SVM peut être ajustée par la manipulation d'un hyperparamètre appelé "C". La valeur C contrôle combien de vecteurs de support le classificateur prend en compte lors de l'élaboration des limites 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 élevée, moins le classificateur prend en compte de vecteurs de support et plus la marge est étroite.

Le noyau trompe les données et les transforme 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)

Le Kernel Trick fonctionne en appliquant des transformations non linéaires aux entités du jeu de données. Le Kernel Trick prend les entités existantes dans l'ensemble de données et crée de nouvelles entités grâce à l'application de 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. Étant donné que le classificateur SVM n'est plus limité à tracer des limites de décision linéaires, il peut commencer à tracer des limites de décision courbes qui encapsulent mieux la véritable distribution des vecteurs de support et réduisent au minimum les erreurs de classification. Deux des noyaux non linéaires SVM les plus populaires sont la fonction de base radiale et le polynôme. La fonction polynomiale crée des combinaisons polynomiales de toutes les caractéristiques existantes, tandis que la fonction de base radiale génère de nouvelles caractéristiques en mesurant la distance entre un/des points centraux et tous les autres points.

Blogueur et programmeur spécialisé dans Machine Learning et L'apprentissage en profondeur les sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.