Le World Tour de Snowflake dans votre ville

Découvrez comment les équipes dirigeantes déploient les agents à grande échelle. Trouvez un arrêt près de chez vous.

Support Vector Machine (SVM) : guide complet pour le machine learning

Découvrez les Support Vector Machines (SVM) : fonctionnement, composants clés, types, applications réelles et bonnes pratiques pour leur mise en œuvre.

  • Présentation
  • Qu'est-ce qu'une Support Vector Machine (SVM) ?
  • Concepts clés du machine learning avec des SVM
  • Fonctionnement des SVM
  • Types de Support Vector Machines
  • Applications réelles des SVM
  • Avantages et limites des SVM
  • Bonnes pratiques pour la mise en œuvre de SVM
  • Conclusion
  • Questions fréquentes sur les Support Vector Machines

Présentation

Les Support Vector Machines (SVM) sont des algorithmes utilisés pour aider les modèles de machine learning supervisés à séparer différentes catégories de données en établissant des frontières claires entre elles. En tant que classificateur SVM, il est conçu pour créer des frontières de décision permettant une classification exacte. C’est l’une des techniques clés que les data scientists utilisent pour créer des modèles d’IA et de ML pour un large éventail d’applications pratiques, notamment la reconnaissance d’images, la détection des fraudes ou encore le filtrage des spams.

Les SVM excellent dans le traitement de données de haute dimension, comme un scanner cérébral contenant des millions de points de données. Elles peuvent également protéger contre le surapprentissage, un phénomène où un modèle réalise de bonnes prédictions sur les données à partir desquelles il a été entraîné, mais se révèle peu performant face à de nouvelles données.

Ce guide explique comment fonctionnent les SVM et pourquoi elles constituent des outils essentiels pour garantir des prédictions exactes avec les modèles de ML.

Qu’est-ce qu’une Support Vector Machine (SVM) ?

Une Support Vector Machine (SVM) est un algorithme de machine learning supervisé qui trouve la frontière optimale, appelée hyperplan, pour séparer les données en catégories distinctes. Les SVM maximisent la marge entre les classes pour améliorer la précision des prédictions sur de nouvelles données.

Le principe de fonctionnement des SVM consiste à identifier où se situe la marge la plus importante entre différentes catégories de données. Par exemple, avec un modèle d'apprentissage automatique entraîné à partir d'images de fruits, une SVM peut apprendre à séparer les pommes et les oranges en fonction de caractéristiques telles que la couleur, la forme et la texture, créant une frontière appelée hyperplan, que le modèle utilise pour distinguer les deux catégories.

Une SVM fonctionne aussi bien sur des données linéairement séparables que non séparables. Avec des données linéaires, les pommes et les oranges pourraient être placées sur un graphique en fonction de caractéristiques comme le poids et la forme. Les objets plus lourds et plus ronds (les oranges) seraient regroupés dans une zone, tandis que les objets plus légers et moins ronds (les pommes) seraient regroupés ailleurs. Une SVM trouverait la droite optimale pour séparer ces groupes avec la plus grande marge possible, puis utiliserait cette frontière (l'hyperplan) pour classer les images futures de fruits.

En revanche, classer et séparer des données non linéaires nécessite une étape supplémentaire. Supposons que vous possédiez une pizzeria et que vous souhaitiez identifier où vivent vos clients les plus fidèles. Vous découvrez que vos meilleurs clients vivent généralement à proximité de votre pizzeria, tandis que les visiteurs moins fréquents vivent plus ou moins loin et forment un cercle autour. Un graphique de ces données ressemblerait à un beignet, les clients fidèles formant le trou au milieu. Mais comme les données ne sont pas linéaires, il est impossible de tracer une ligne qui sépare clairement ces deux groupes. Les SVM s'appuient donc sur des fonctions mathématiques (appelées noyaux) pour appliquer un processus appelé « l'astuce du noyau », afin de transformer les données en plusieurs dimensions et d'identifier la marge la plus vaste entre les deux groupes. L'un des noyaux les plus utilisés est appelé Radial Basis Function (RBF). Il est idéal pour les données complexes non linéaires.

Concepts clés du machine learning avec des SVM

Chaque SVM implique les éléments suivants :
 

1. Hyperplan 

Il s’agit de la frontière de décision qui sépare différentes catégories de données : une ligne dans des espaces 2D, un plan en 3D ou une surface de dimension supérieure dans des espaces de données plus complexes. La SVM trouve l’hyperplan optimal pour diviser au mieux les catégories.
 

2. Vecteurs de support 

Les points de données les plus proches de l’hyperplan et qui influencent directement l’endroit où la frontière est tracée sont appelés vecteurs de support. Ce sont les exemples stratégiques qui définissent réellement où se trouve la frontière de décision ; leur suppression entraînerait un déplacement de l’hyperplan.
 

3. Marge 

La marge correspond à la distance entre l’hyperplan et les points de données les plus proches de chaque catégorie. Les SVM optimisent cette marge pour créer la séparation la plus efficace possible entre les catégories.
 

4. Fonctions de noyau 

Ces fonctions mathématiques transforment les données vers des dimensions supérieures pour rendre possible une séparation linéaire. Elles permettent aux SVM de traiter des données non linéaires en trouvant des frontières courbes dans l'espace d'origine.
 

5. Paramètre de régularisation 

Cette valeur, généralement appelée C, cherche un compromis entre maximiser la marge et minimiser les erreurs de classification. Une valeur C élevée donne la priorité à une classification correcte plutôt qu’à une vaste marge, tandis qu’une valeur C faible accepte une classification moins précise au profit d’une marge plus vaste.
 

6. Gamma 

Les valeurs gamma contrôlent si la frontière de décision suit de près ou non les données d’entraînement. Une valeur gamma élevée crée des frontières très spécifiques qui suivent étroitement des points de données individuels, tandis qu’une valeur gamma faible crée des frontières plus lisses et généralisées qui ignorent les petits détails.
 

7. Variables Slack 

Dans les cas où une séparation parfaite des points de données n’est pas possible, les variables Slack permettent de laisser certains points de données du mauvais côté de la marge ou de l’hyperplan. Le fait d’accepter quelques erreurs de classification en petites quantités facilite le traitement du bruit et des données qui se chevauchent.

Fonctionnement des SVM

Voici les cinq étapes essentielles que suit chaque SVM lors du traitement des données :
 

Étape 1 : mappage des données d’entrée dans un espace de représentation de dimensions supérieures 

La SVM prend les données d'entrée d'origine et utilise des fonctions noyaux pour les transformer en un espace de dimensions supérieures où une séparation linéaire devient possible. Cette étape est cruciale pour traiter les données non linéaires : ce qui apparaît comme une frontière courbe dans l’espace d’origine devient une ligne droite dans l’espace transformé.
 

Étape 2 : identification de l’hyperplan optimal qui maximise la marge 

La SVM identifie l’hyperplan (frontière de décision) qui crée la plus grande marge possible entre les différentes catégories. Elle se concentre sur les vecteurs de support, c’est-à-dire les points de données les plus proches de la frontière, et positionne l’hyperplan de manière à maximiser la distance entre ces points stratégiques dans chaque catégorie.
 

Étape 3 : gestion du bruit et des données qui se chevauchent avec des variables Slack 

Lorsqu’une séparation parfaite n’est pas possible parce que les catégories se chevauchent ou les données contiennent du bruit, la SVM introduit des variables Slack qui permettent quelques erreurs de classification. Le paramètre de régularisation (C) définit l’équilibre entre la maximisation de la marge et la minimisation de ces erreurs de classification.
 

Étape 4 : optimisation des paramètres pour de meilleures performances 

La SVM ajuste des hyperparamètres clés comme les valeurs C et gamma et le choix du noyau pour rendre le modèle suffisamment complexe pour être précis, mais assez simple pour bien fonctionner sur de nouvelles données. Cela permet à la SVM d’éviter le surapprentissage, c’est-à-dire de rendre un modèle trop spécialisé sur ses données d’entraînement, au détriment de ses performances sur de nouveaux exemples.
 

Étape 5 : classification de nouvelles données en fonction de la position de l’hyperplan 

Pour les nouveaux points de données inédits, la SVM entraînée applique la même transformation par noyau et vérifie simplement de quel côté de l'hyperplan appris se situe chaque point. La distance par rapport à l'hyperplan peut également indiquer le niveau de confiance de la classification.

Types de Support Vector Machines

Il existe cinq principaux types de Support Vector Machines :
 

SVM linéaires 

Les SVM linéaires sont utilisées lorsque les données peuvent être séparées par une droite ou un hyperplan plat. Comme elles ne dépendent pas de transformations par noyau, les SVM linéaires sont efficaces en termes de calcul et faciles à interpréter. 
 

SVM non linéaires 

Lorsque la séparation linéaire n'est pas possible, les SVM non linéaires emploient des fonctions noyaux pour transformer les données vers des dimensions supérieures. Cela crée des frontières de décision courbes dans l'espace d'origine, ce qui les rend idéales pour des structures de données complexes et non linéaires, comme un ensemble de données classique en forme d'anneau.
 

SVM à classe unique 

Conçues pour la détection d'anomalies et la détection de nouveautés, les SVM à classe unique apprennent la frontière autour des données « normales » et identifient tout ce qui se trouve à l'extérieur comme une valeur aberrante ou une anomalie. Ce type de machine est généralement utilisé dans des applications de détection de fraude et de contrôle qualité.
 

Support Vector Regression (SVR) 

Ce type de machine utilise des techniques de SVM pour prédire des nombres au lieu de catégories. Plutôt que de tracer une ligne qui sépare différents groupes, la SVR trace une ligne qui correspond le mieux aux points de données avec une certaine marge d’erreur. Les SVR sont utilisées pour prédire des éléments comme des prix, des températures ou encore des chiffres de vente. 
 

SVM multi-classes 

Les machines multi-classes traitent des problèmes de classification impliquant plus de deux catégories en combinant plusieurs SVM standards. Comme les SVM standards ne peuvent séparer que deux groupes à la fois, cette approche utilise plusieurs SVM travaillant ensemble pour distinguer entre plusieurs catégories, par exemple, en classant des images de fruits en pommes, oranges et bananes. 

Applications concrètes des SVM

Les SVM sont utilisées dans un large éventail d'applications où l'apprentissage automatique est employé. Voici quelques cas d’usage courants :
 

Classification d’images 

Capables d’analyser rapidement des schémas de pixels et de séparer des caractéristiques visuelles, les classificateurs SVM excellent dans la reconnaissance d’objets, de visages et de scènes dans des images numériques. C’est pourquoi ils sont couramment utilisés en imagerie médicale pour détecter des tumeurs sur des radiographies ou des IRM, ainsi que dans des systèmes de sécurité pour la reconnaissance faciale et la surveillance.
 

Catégorisation de texte et détection des spams 

Les SVM analysent les régularités lexicales et les caractéristiques linguistiques pour classer automatiquement les e-mails, documents et contenus web en catégories. Les fournisseurs de messagerie les utilisent pour filtrer les spams en leur apprenant à distinguer les messages légitimes du contenu promotionnel ou malveillant indésirable.
 

Bioinformatique 

En analysant des régularités complexes dans les données biologiques, ces systèmes contribuent à classer les séquences d'ADN, à prédire les structures des protéines et à identifier des marqueurs génétiques associés à des maladies. Ils sont particulièrement précieux en recherche sur le cancer pour classer les types de tumeurs en fonction des profils d'expression génique.
 

Reconnaissance de texte manuscrit 

Les SVM convertissent le texte manuscrit en format numérique en analysant les régularités des tracés, les formes des caractères et les relations spatiales dans les documents scannés. Elles sont utilisées par les services postaux pour lire automatiquement les adresses sur les enveloppes, et dans le secteur bancaire pour traiter les chèques et formulaires manuscrits.
 

Détection des fraudes 

Ces algorithmes SVM analysent des schémas de dépenses, les montants de transactions, ainsi que le lieu et le moment où celles-ci sont réalisées, afin de repérer des transactions financières potentiellement frauduleuses. Les sociétés émettrices de cartes de crédit et les banques les utilisent pour détecter des anomalies en temps réel et protéger leurs clients des achats non autorisés.

En outre, les SVM sont largement utilisées dans la recherche de médicaments pour prédire le comportement moléculaire et identifier des composés pharmaceutiques prometteurs. Elles alimentent également des systèmes de recommandations pour des services de streaming et des plateformes de e-commerce en analysant les préférences et schémas comportementaux des utilisateurs, afin de leur suggérer du contenu ou des produits pertinents.

Avantages et limites des SVM

Les SVM ne sont pas adaptées à tous les cas d’usage du machine learning. Voici les principaux avantages et les limites du déploiement de ces algorithmes.
 

Principaux avantages de l’utilisation de SVM
 

  • Elles sont très précises. Les SVM offrent toujours d’excellentes performances pour la classification de divers jeux de données. En se concentrant sur les points de données les plus difficiles (les vecteurs de support) et en créant la plus grande séparation possible entre les classes, elles construisent des frontières de décision robustes qui se généralisent bien à de nouvelles données inédites.

  • Elles fonctionnent bien dans des espaces de haute dimension. Les SVM gèrent les données comportant de nombreuses caractéristiques (comme l'analyse de milliers de gènes à la fois) mieux que la plupart des autres méthodes. Alors que d'autres algorithmes se laissent submerger par un excès d'informations, les SVM s'améliorent en réalité, car elles se concentrent uniquement sur la recherche de la meilleure frontière de séparation plutôt que sur la compréhension de chaque détail des données.

  • Elles sont efficaces avec de petits jeux de données. Les SVM peuvent construire des modèles fiables même lorsque les données d'entraînement sont limitées, ce qui en fait un choix idéal pour des domaines spécialisés comme le diagnostic médical ou la détection d'événements rares. Leur fondement mathématique leur permet d'extraire un maximum d'informations à partir d'un minimum d'exemples, évitant ainsi les problèmes de surapprentissage qui touchent d'autres algorithmes lorsque les données sont rares.

  • Elles sont économes en termes de mémoire. Les SVM stockent uniquement les vecteurs de support (les points de données stratégiques près de la frontière de décision) plutôt que tout le jeu de données d’entraînement. Elles sont ainsi plus efficaces en termes de calcul pour réaliser des prédictions et réduisent les besoins de stockage, ce qui constitue un atout particulièrement précieux dans les applications disposant de ressources de calcul limitées.

  • Elles sont polyvalentes. Les SVM peuvent traiter à la fois des problèmes simples à séparation linéaire et des structures courbes complexes, simplement en changeant la fonction mathématique (le noyau) qu'elles utilisent. Cela signifie que vous pouvez résoudre des types de problèmes de données totalement différents avec la même approche SVM de base, simplement en choisissant le noyau adapté à votre situation spécifique.  
     

Limites majeures des SVM
 

  • Elles peuvent être gourmandes en calcul. Comme le temps d'entraînement des SVM augmente considérablement avec le nombre de points de données, les SVM peuvent devenir extrêmement lentes et gourmandes en mémoire lorsqu'elles traitent des ensembles de données massifs. Le traitement de millions d'exemples peut prendre des heures, voire des jours, ce qui les rend peu pratiques pour les applications de big data, où des algorithmes plus rapides sont privilégiés.

  • Elles sont sensibles au choix du noyau. Choisir la mauvaise fonction noyau peut nuire fortement à la performance des SVM, et il n'existe aucune règle universelle pour faire le meilleur choix. Différents noyaux fonctionnent mieux selon les différentes structures de données, ce qui nécessite une expérimentation approfondie et une expertise du domaine pour trouver la configuration optimale pour chaque problème.

  • Elles sont moins efficaces lorsque les catégories se chevauchent. Comme elles sont conçues pour trouver des frontières de séparation claires, les SVM rencontrent des difficultés lorsque différentes catégories sont fortement mélangées. Lorsque des points de données appartenant à différentes classes sont dispersés dans les mêmes régions, les SVM peuvent créer des frontières excessivement complexes qui ne se généralisent pas bien à de nouvelles données.

  • L’estimation de probabilité est limitée. Contrairement à certains autres algorithmes, les SVM ne fournissent pas automatiquement d’estimations de probabilité ou de niveaux de confiance pour leurs prédictions. Bien que des estimations de probabilité puissent être ajoutées, il faut pour cela ajouter des étapes de calcul et le résultat n’est pas toujours aussi fiable qu’avec des méthodes conçues pour.

  • Leurs résultats peuvent être difficiles à interpréter. Les modèles basés sur des SVM peuvent fonctionner comme des « boîtes noires » ; il n’est donc pas toujours facile de comprendre comment ils sont parvenus à certaines prédictions spécifiques. Ce manque d’interprétabilité peut poser problème dans des domaines comme la médecine ou la finance, où comprendre le raisonnement à l’origine de prédictions est essentiel pour garantir la confiance et la conformité réglementaire.

  • Elles sont peu performantes face au bruit. Les SVM peuvent être trop sensibles aux anomalies et aux points de données mal étiquetés, qui peuvent avoir un impact considérable sur la frontière de décision et nuire aux performances globales. Contrairement à certains algorithmes efficaces qui peuvent ignorer les points de données problématiques, les SVM peuvent accorder trop de poids à ces anomalies pendant l’entraînement.

Bonnes pratiques pour la mise en œuvre de SVM

Voici cinq bonnes pratiques pour utiliser des SVM :
 

1. Effectuer une mise à l'échelle des caractéristiques pour améliorer la performance 

Les SVM peuvent être perturbées lorsque certaines caractéristiques des données sont d'un ordre de grandeur supérieur à d'autres. Assurez-vous que toutes les caractéristiques de vos données utilisent des plages de valeurs similaires (par exemple, en convertissant à la fois l'âge et le revenu à la même échelle numérique) afin d'éviter que des données à une échelle différente ne biaisent les résultats. 
 

2. Expérimenter différents noyaux 

Chaque noyau capture différents types de structures de données, il est donc utile de tester plusieurs options de noyau afin de trouver celle qui convient le mieux à votre problème spécifique. Vous pouvez commencer par un noyau linéaire pour les données de haute dimension, puis essayer un noyau RBF pour les structures non linéaires. Envisagez des noyaux polynomiaux pour les relations structurées. 
 

3. Utiliser la validation croisée pour le réglage des paramètres 

Essayez différentes combinaisons de réglages (comme les valeurs C et gamma) en utilisant une approche systématique pour tester votre modèle sur plusieurs sous-ensembles de données. Cela vous aidera à trouver les meilleurs réglages qui fonctionneront bien sur de nouvelles données, et pas seulement avec les données que vous avez utilisées pour l’entraînement. 
 

4. Éviter le surapprentissage à l’aide de jeux de données de validation 

Conservez un ensemble de validation distinct pour suivre les performances de votre modèle sur des données inédites pendant l'entraînement et le réglage des paramètres. Si l'exactitude sur les données d'entraînement est nettement supérieure à l'exactitude sur les données de validation, réduisez la complexité du modèle en diminuant les valeurs de C ou de gamma.
 

5. Gérer correctement le déséquilibre entre les catégories 

Lorsqu'une classe de données est nettement plus importante qu'une autre (par exemple, 50 e-mails de spam contre 1 000 messages légitimes), ajustez les paramètres du SVM à l'aide de pondérations de classes ou de techniques d'échantillonnage afin d'accorder une attention égale aux deux groupes. La plupart des logiciels de SVM peuvent équilibrer cela automatiquement, afin que l'algorithme ne devienne pas biaisé en faveur de la catégorie la plus fréquente.

Conclusion

Les Support Vector Machines font partie des algorithmes de machine learning les plus efficaces en raison de leur capacité à créer des frontières de décision fiables entre différentes catégories de données. Elles sont particulièrement adaptées quand les données d’entraînement sont limitées et la précision essentielle.

Les SVM excellent dans de nombreuses applications : diagnostic médical, détection des fraudes financières, classification des gènes, filtrage des spams, systèmes de reconnaissance de l’écriture manuscrite, etc. Leur capacité à traiter des données de haute dimension les rend particulièrement adaptées aux défis modernes, comme l'analyse de séquences génétiques comportant des milliers de caractéristiques ou le traitement de documents textuels avec un vocabulaire étendu.

Elles restent un outil puissant, tant dans la recherche académique que dans l'industrie, en particulier pour les tâches nécessitant une grande exactitude et des frontières de décision robustes.

Questions fréquentes sur les Support Vector Machines

Les SVM sont particulièrement efficaces pour trier les données en catégories lorsque vous avez besoin de résultats très précis, mais que vous n’avez que peu d’exemples d’entraînement. Elles traitent particulièrement bien des données complexes avec de nombreuses caractéristiques, notamment pour l’analyse de texte ou d’images.

L'astuce du noyau (kernel trick) permet aux SVM de traiter des données courbes et non linéaires en « faisant semblant », mathématiquement, que les données existent dans une dimension supérieure où elles peuvent être séparées par une droite. Plutôt que de déplacer réellement les données vers des dimensions supérieures (ce qui serait très lent), les fonctions de l'astuce du noyau effectuent les calculs en coulisses pour que cela fonctionne. Cela permet aux SVM de créer des frontières courbes dans vos données d'origine, tout en continuant à utiliser leurs méthodes standards basées sur des droites.

La régression SVR (Support Vector Regression) utilise les mêmes approches de base que les SVM, mais au lieu de tracer une ligne pour séparer des catégories, elle trace une ligne qui correspond le mieux à des points de données pour prédire des nombres. La différence essentielle est que la SVR crée une marge d'erreur acceptable autour de la droite de prédiction : tant que les valeurs réelles se situent dans cette marge d'erreur, elles sont considérées comme de bonnes prédictions.