Suivez nous sur

Que sont les machines Ă  vecteurs de support ?

AI 101

Que sont les machines Ă  vecteurs de support ?

mm

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 totalement linĂ©airement sĂ©parables, ce qui signifie que l'utilisation d'un classificateur SVM nĂ©cessite souvent 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.