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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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.
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.
IBM Granite est notre famille de modèles d’IA ouverts, performants et fiables, conçus pour les entreprises et optimisés pour dimensionner vos applications d’IA. Explorez les options de langage, de code, de séries temporelles et de garde-fous.
Nous avons interrogé 2 000 entreprises à propos de leurs initiatives d’IA pour découvrir ce qui fonctionne, ce qui ne fonctionne pas et comment progresser.
Découvrez des approches d’apprentissage supervisées telles que les machines à vecteurs de support et les classificateurs probabilistes.
Apprenez des concepts fondamentaux et développez vos compétences grâce à des ateliers pratiques, à des cours, à des projets guidés, à des essais et à d’autres ressources.
Découvrez comment choisir le modèle de fondation d’IA le mieux adapté à votre cas d’utilisation.
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.
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.
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.
Tous les liens sont externes au site ibm.com
1 Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing
2 Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University