Que sont les machines à vecteurs de support (SVM) ?

27 décembre 2023

Que sont les SVM ?

Une machine à vecteurs de support (SVM) est un algorithme de machine learning supervisé qui classifie les données en trouvant une ligne optimale ou un hyperplan qui maximise la distance entre chaque classe dans un espace à n dimensions.

Les SVM ont été développées dans les années 1990 par Frédéric N. Vapnik et ses collègues, qui ont publié leurs travaux dans un article intitulé « Support Vector Method for Function approximation, Regression Estimation, and Signal Processing » (Méthode de vecteurs de support pour l’approximation de fonctions, l’estimation de régression et le traitement du signal) 1 en 1995.

Les SVM sont couramment utilisées dans les problèmes de classification. Elles distinguent deux classes en trouvant l’hyperplan optimal qui maximise la marge entre les points de données les plus proches des classes opposées. Le nombre de fonctionnalités dans les données d’entrée détermine si l’hyperplan est une ligne dans un espace à 2 dimensions ou un plan dans un espace à n dimensions. Étant donné que plusieurs hyperplans peuvent être trouvés pour différencier les classes, l’optimisation de la marge entre les points permet à l’algorithme de trouver la meilleure limite de décision entre les classes. Ceci lui permet de bien généraliser à de nouvelles données et de faire des prédictions de classification précises. Les lignes adjacentes à l’hyperplan optimal sont appelées vecteurs de support, car ces vecteurs passent par les points de données qui déterminent la marge maximale.

L’algorithme SVM est largement utilisé dans le machine learning, car il peut gérer des tâches de classification linéaires et non linéaires. Toutefois, lorsque les données ne sont pas linéairement séparables, des fonctions de noyau sont utilisées pour transformer les données dans un espace à plus haute dimension afin de permettre une séparation linéaire. Cette application des fonctions du noyau est connue sous le nom de « astuce du noyau », et le choix de la fonction du noyau, telle que les noyaux linéaires, les noyaux polynomiaux, les noyaux à fonction de base radiale (RBF) ou les noyaux sigmoïdes, dépend des caractéristiques des données et du cas d’utilisation spécifique.

Types de classificateurs SVM

SVM linéaires

Les SVM linéaires sont utilisées avec des données linéairement séparables, ce qui signifie que les données n’ont pas besoin d’être transformées pour être séparées en différentes classes. La limite de décision et les vecteurs de support ont l’apparence d’une rue, et le professeur Patrick Winston du MIT utilise l’analogie de « remplir dans la rue la plus large possible »2 (lien externe à ibm.com) pour décrire ce problème d’optimisation quadratique. Mathématiquement, cet hyperplan de séparation peut être représenté comme suit :

wx + b = 0

où w est le vecteur de poids, x est le vecteur d’entrée et b est le terme de biais.

Il existe deux approches pour calculer la marge, ou la distance maximale entre les classes, à savoir la classification par marge fixe et la classification par marge souple. Si nous utilisons des SVM à marge stricte, les points de données seront parfaitement séparés en dehors des vecteurs de support, ou « hors de la rue » pour poursuivre l’analogie du professeur Hinton. Cela est représenté par la formule :

(wxj + b) yj ≥ a,

puis la marge est maximisée, ce qui est représenté par : max ɣ= a / ||w||, où a est la marge projetée sur w.

La classification par marge souple est plus souple, car elle autorise certaines erreurs de classification grâce à l’utilisation de variables lâches (« ξ »). L’hyperparamètre, C, ajuste la marge ; une valeur C plus élevée réduit la marge pour une classification erronée minimale, tandis qu’une valeur C plus petite l’élargit, permettant ainsi d’obtenir davantage de données mal classées.3

SVM non linéaires

Une grande partie des données dans les scénarios réels ne sont pas séparables de manière linéaire, et c’est là que les SVM non linéaires entrent en jeu. Afin de rendre les données séparables de manière linéaire, des méthodes de prétraitement sont appliquées aux données d’apprentissage pour les transformer en un espace de caractéristiques de plus haute dimensionnalité. Cela dit, les espaces de plus haute dimensionnalité peuvent créer plus de complexité en augmentant le risque de surajustement des données et en devenant une charge de calcul. L’« astuce du noyau » permet de réduire une partie de cette complexité et de rendre le calcul plus efficace, en remplaçant les calculs de produits scalaires par une fonction de noyau équivalente4.

Plusieurs types de noyaux peuvent être appliqués pour classer les données. Voici quelques fonctions de noyau populaires :

  • Noyau polynomial

  • Noyau de fonctions de base radicale (également appelé noyau gaussien ou RBF)

  • Noyau sigmoïde

Régression vectorielle de support (SVR)

La régression par vecteur de support (SVR) est une extension des SVM, qui est appliquée aux problèmes de régression (c’est-à-dire que le résultat est continu). Comme les SVM linéaires, la SVR trouve un hyperplan avec la marge maximale entre les points de données, et il est généralement utilisé pour la prédiction de séries temporelles.

La SVR diffère de la régression linéaire dans la mesure où vous devez spécifier la relation que vous souhaitez comprendre entre les variables indépendantes et dépendantes. Une compréhension des relations entre les variables et leurs directions est précieuse lors de l’utilisation de la régression linéaire. Ce processus n’est pas nécessaire pour les SVR, car elles déterminent ces relations eux-mêmes.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets.

Fonctionnement des SVM

Dans cette section, nous aborderons le processus de création d’un classificateur SVM, ses différences par rapport à d’autres algorithmes d’apprentissage supervisé et son application dans les secteurs actuels.

Création d’un classificateur SVM

Divisez vos données

Comme pour les autres modèles de machine learning, commencez par diviser vos données en un ensemble d’entraînement et un ensemble de tests. Soit dit en passant, cela suppose que vous ayez déjà effectué une analyse exploratoire de vos données. Bien que cela ne soit techniquement pas nécessaire pour créer un classificateur SVM, c’est une bonne pratique avant d’utiliser un modèle d’apprentissage automatique, car cela vous permettra de comprendre les données manquantes ou les données aberrantes.

Générez et évaluez le modèle

Importez un module SVM à partir de la bibliothèque de votre choix, comme scikit-learn (lien externe à ibm.com). Entraînez vos échantillons d’apprentissage sur le classificateur et prédisez la réponse. Vous pouvez évaluer les performances en comparant la précision de l’ensemble de tests aux valeurs prédites. Vous pouvez utiliser d’autres indicateurs d’évaluation, tels que le score f1, la précision ou le rappel.

Réglage des hyperparamètres

Les hyperparamètres peuvent être optimisés pour améliorer les performances d’un modèle SVM. Les hyperparamètres optimaux peuvent être trouvés à l’aide de méthodes de recherche par grille et de validation croisée, qui itéreront à travers différentes valeurs de noyau, de régularisation (C) et de gamma pour trouver la meilleure combinaison.

SVM vs autres classificateurs d’apprentissage supervisé

Différents classificateurs de machine learning peuvent être utilisés pour un même cas d’utilisation. Il est important de tester et d’évaluer différents modèles pour comprendre lesquels sont les plus performants. Cela dit, il peut être utile de comprendre les points forts et les points faibles de chacun afin d’évaluer son application dans votre cas d’utilisation.

SVM vs Naïve Bayes

Les classifications Naïve Bayes et SVM sont couramment utilisées pour les tâches de classification de texte. Les SVM ont tendance à être plus performantes que Naïve Bayes lorsque les données ne sont pas linéairement séparables. Cela dit, les SVM doivent s’adapter à différents hyperparamètres et peuvent être plus coûteuses en termes de calcul.

SVM vs régression logistique

Par rapport à la régression, les SVM sont généralement plus performantes avec des ensembles de données non structurés et de grande dimension, tels que des images et des données de texte. Les SVM sont également moins sensibles au surajustement et plus faciles à interpréter. Cela dit, elles peuvent être plus coûteuses en termes de calcul.

SVM vs arbres de décision

Les SVM sont plus performants avec des données de grande dimension et sont moins sujets au surajustement que les arbres de décision. Cela dit, les arbres de décision sont généralement plus rapides à entraîner, en particulier avec des jeux de données plus petits, et ils sont généralement plus faciles à interpréter.

SVM vs réseaux neuronaux

Comme pour d’autres comparaisons de modèles, les SVM sont plus coûteuses à entraîner et moins enclines au surajustement, mais les réseaux neuronaux sont considérés comme plus flexibles et plus évolutifs.

Applications des SVM

Bien que les SVM puissent être utilisées pour un certain nombre de tâches, voici quelques-unes des applications les plus populaires des SVM dans différents secteurs.

Classification de texte

Les SVM sont couramment utilisées dans le traitement du langage naturel (NLP) pour des tâches telles que l’analyse des sentiments, la détection des spams et la modélisation des sujets. Elles se prêtent à ces données car elles fonctionnent bien avec des données de haute dimensionnalité.

Classification des images

Les SVM sont appliquées dans les tâches de classification des images telles que la détection d’objets et la récupération d’images. Elles peuvent également être utiles dans les domaines de la sécurité, en classant des images comme étant des images altérées.

Bioinformatique

Les SVM sont également utilisées pour la classification des protéines, l’analyse de l’expression génique et le diagnostic des maladies. Les SVM sont souvent utilisées dans la recherche sur le cancer (lien externe à ibm.com), car elles permettent de détecter des tendances subtiles dans des jeux de données complexes.

Système d’information géographique (SIG)

Les SVM peuvent analyser les structures géophysiques souterraines en couches, en filtrant le « bruit » des données électromagnétiques. Elles ont également permis de prédire le potentiel de liquéfaction sismique du sol, ce qui est pertinent pour le domaine du génie civil.

Groupe d’experts | Podcast

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l'actualité et des dernières tendances dans le domaine de l’IA.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Notes de bas de page

Tous les liens sont externes au site ibm.com

1 Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing

Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010

Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002

Support vector machines, Sontag, David, New York University