Accueil
SVM, machine à vecteurs de support, algorithme de classification

SVM, machine à vecteurs de support, algorithme de classification

Intéressé par les formations de Jedha ?
Voir le syllabus de Jedha
Nos derniers articles !

Les avancées notables du Machine Learning ou de l'apprentissage automatique offrent des possibilités infinies dans de nombreux domaines : banque, marchés financiers, informatique… Cela est rendu possible par le développement d'algorithmes capables de s'améliorer dans le temps avec l'apprentissage. C'est le cas des machines à vecteurs de support ou Support Vector Machine (SVM) utilisés notamment pour résoudre un problème de classification. Jedha explique ce qu'est le SVM.

Qu'est-ce que le SVM ?

Les SVM représentent une famille d'algorithmes de Machine Learning capables de résoudre un problème de discrimination, de régression mathématique ou de détection d'anomalie. Les premières machines à vecteurs de support ont été développées dans les années 1990 sur la base des concepts des informaticiens russes Vladimir Vapnik et Alexey Chervonenkis. Ils ont développé une nouvelle théorie statistique de l'apprentissage automatique connue sous le nom de la théorie de Vapnik-Chervonenkis.

Très rapidement, leurs travaux ont suscité beaucoup d'engouement grâce à leur capacité à gérer des données de grandes dimensions. De plus, les SVM ne requièrent que peu de paramètres. Dans l'immense majorité des cas, l'utilisation du SVM ne nécessite que deux hyperparamètres : le choix de la technique de régularisation et celui du noyau (Sobolev, noyaux polynomiaux…).

Comment fonctionne le SVM ?

Pour bien comprendre la notion de SVM, il convient de considérer un ensemble de données d'entraînement qui contient par exemple des points ronds et des points carrés. Ceux-ci occupent chacun une région différente d'un plan. L'objectif d'un algorithme SVM sera alors la résolution d'un problème particulier : prédire la forme (carrée ou ronde) d'un nouveau point dont on connaît la position dans le plan. Pour ce faire, le SVM doit trouver la frontière ou hyperplan entre ces deux catégories.

Pour que le SVM parvienne à trouver cet hyperplan, on le soumet à des données d'entraînement. On lui donne par exemple un ensemble de points de formes connues. À partir de ces données, l'algorithme SVM se chargera alors de trouver l'hyperplan le plus plausible. Le fonctionnement d'une machine à vecteurs de support repose sur une simple idée : trouver un hyperplan qui permet de diviser de façon optimale un jeu de données en deux classes différentes.

Dans un SVM, les données sont séparées en différentes classes en ayant recours à la notion de marge maximale. La marge représente la distance entre la ligne de séparation des données et le point le plus proche de l'un des ensembles. La frontière de séparation des classes est choisie de façon à maximiser la distance entre les groupes de données. Pour une meilleure compréhension d'une machine à vecteurs de support, il est important de maîtriser certains concepts y afférant.

Les vecteurs de support

Les vecteurs de support déterminent les points les plus proches de la frontière. Dans un ensemble de données, si ceux-ci étaient supprimés, ils modifieraient la position de l'hyperplan en division. De ce fait, les vecteurs de support sont considérés comme des éléments cruciaux dans tout jeu de données.

L'hyperplan

En considérant l'exemple de la séparation des points ronds et carrés dans un plan, le rôle des machines à vecteur de support est de résoudre le problème ci-après : trouver une ligne qui assure une séparation et une classification linéaire de l'ensemble de données dont on dispose. Cette ligne est appelée l'hyperplan. Plus les différents points de données sont éloignés de l'hyperplan, mieux c'est. Cela explique d'ailleurs pourquoi un algorithme de classification SVM cherchera toujours à placer la frontière aussi loin que possible des points ronds, mais également des points carrés. Cette frontière optimale qui est la plus éloignée de tous les points a une meilleure capacité de généralisation. On comprend ainsi mieux le nom donné aux points les plus proches de l'hyperplan à qui on doit également l'appellation de SVM : vecteur de support. Ils supportent d'une certaine manière la frontière.

Par ailleurs, les SVM ne s'appliquent pas uniquement à un espace à deux dimensions. Pour certains jeux de données par exemple, une séparation linéaire dans un espace à deux dimensions n'est pas envisageable. Afin de résoudre ce problème, le SVM cherche à mapper les données dans des dimensions de plus en plus grandes jusqu'à trouver l'hyperplan qui pourra les séparer de façon optimale. Le plus souvent, pour passer d'une dimension à une autre pour les données, on utilise une fonction noyau ou kernel function qui sert alors d'intermédiaire.

Les classes

Dans l'exemple précédent, l'objectif était de classifier les données disponibles en deux classes distinctes. Pour certains jeux de données et selon le but recherché, il peut cependant être nécessaire de classer les données en plus de deux catégories. Si on ajoutait une troisième catégorie de points (points triangulaires) par exemple, on aura besoin d'un SVM capable de distinguer ces trois classes : un SVM multiclasse.

Pour un tel problème, on se rend toutefois aisément compte qu'un hyperplan tel que défini ne peut pas séparer un espace vectoriel en trois. Face à de tels jeux de données, des méthodes d'adaptation des SVM ont été développées. C'est notamment le cas des approches one-vs-one et one-vs-all. Avec cette dernière, par exemple, on créera un SVM par catégorie. Chacun d'eux sera spécialisé dans la reconnaissance d'un type particulier de points.

Quelles utilisations pour le SVM ?

Les SVM sont une famille d'algorithme de Machine Learning très populaire pour la résolution d'un problème de classification à l'instar de l'attribution de catégories, l'analyse des sentiments, la détection de spams ou de régression. Le kernel ridge regression est par exemple très employé pour des données nécessitant une régression. Le one class SVM permet quant à lui de résoudre un problème de détection d'anomalies.

On peut également se servir des algorithmes de classification SVM pour résoudre un problème de reconnaissance d'images (la reconnaissance des formes et la classification des couleurs). Ils sont également utilisés dans un large panel d'applications (recherche d'informations, bio-informatique, vision par ordinateur…). De même, les algorithmes de classification SVM jouent un rôle prépondérant dans plusieurs autres domaines comme la reconnaissance manuscrite des symboles (les services d'automatisation postale), la détection de repli protéique et d'homologie à distance.

Comment apprendre SVM ?

Les performances de la famille d'algorithme de Machine Learning SVM sont en général aussi bonnes, voire même supérieures à celles d'un réseau de neurones ou d'un modèle gaussien. Pouvoir utiliser une machine à vecteurs de support et exploiter son plein potentiel est essentiel en particulier pour les personnes qui souhaitent devenir Data scientist ou Data analyst. Dans ce cas, le mieux encore pour acquérir ce savoir-faire recherché est de suivre une formation Data d'excellence comme celle de Jedha.

L'apprentissage des algorithmes de classification SVM ainsi que de nombreux autres algorithmes entrent en effet dans le cadre de toute formation de sciences de données dignes du nom. Les bases théoriques ainsi que de nombreux cas d'utilisations pratiques seront abordés dans ce type de formation. Cela va permettre aux participants d'effectuer l'apprentissage des fondamentaux des SVM.

Julie Gastine
Écrit par
Julie Gastine
 - 
Community Manager
 @
Jedha