Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Support Vector Machine (SVM)

Une machine à vecteurs de support (SVM) sépare les classes à l’aide de l’hyperplan à marge maximale et de noyaux pour les frontières courbes. Découvre son fonctionnement, son réglage et son code.

Une machine à vecteurs de support (SVM) est un algorithme d’apprentissage supervisé qui classe les données en trouvant l’hyperplan séparant deux classes avec la marge la plus large possible, c’est-à-dire l’écart entre la frontière et les points d’entraînement les plus proches de chaque classe. Ces points les plus proches, les vecteurs de support, sont les seuls exemples d’entraînement qui déterminent la frontière. Les fonctions noyau permettent aux SVM d’apprendre des frontières courbes, et certaines variantes prennent en charge la régression et la détection des valeurs aberrantes. Vladimir Vapnik et ses collègues ont mis au point cette méthode chez AT&T Bell Labs : la version à noyau date de 1992, et la formulation à marge souple utilisée aujourd’hui a été publiée par Cortes et Vapnik en 1995. Avant l’apprentissage profond, les SVM comptaient parmi les classificateurs les plus précis pour les textes, les images et les données biologiques, et elles restent performantes sur les jeux de données de petite ou moyenne taille comportant de nombreuses caractéristiques.

Fonctionnement des SVM#

Une SVM linéaire prédit la classe à partir du signe de w·x + b ; sa frontière de décision est donc l’hyperplan w·x + b = 0. Lorsque les poids sont mis à l’échelle de sorte que les points les plus proches vérifient |w·x + b| = 1, la marge a une largeur de 2/‖w‖. L’entraînement maximise la marge en minimisant ‖w‖², tout en exigeant que chaque point d’entraînement se trouve du bon côté de celle-ci. Les classes réelles se chevauchent : la SVM à marge souple autorise donc les points à franchir la marge, moyennant un coût défini par le paramètre de régularisation C. Sa perte hinge ne pénalise pas les points correctement classés au-delà de la marge, mais applique aux autres une pénalité qui augmente linéairement avec l’écart. Une valeur faible de C tolère davantage de violations et produit une marge plus large et plus lisse ; une valeur élevée de C ajuste plus étroitement le modèle aux données d’entraînement, au risque d’un surapprentissage accru. Dans le modèle entraîné, seuls les points situés sur la marge ou du mauvais côté de celle-ci ont un poids non nul : ce sont les vecteurs de support. Déplacer un autre point sans lui faire franchir la marge ne modifie pas la frontière.

L’astuce du noyau#

Lorsqu’aucun hyperplan ne sépare les classes, une projection des données dans un espace de dimension supérieure peut les rendre séparables : deux anneaux concentriques en 2D deviennent séparables par un plan plat dès qu’une troisième caractéristique, x₁² + x₂², mesure la distance de chaque point au centre. Dans sa forme duale, l’entraînement et la prédiction d’une SVM n’utilisent les données qu’au moyen des produits scalaires entre paires de points. Une fonction noyau k(x, x′) peut donc renvoyer directement le produit scalaire dans l’espace projeté, sans jamais calculer les coordonnées projetées. C’est l’astuce du noyau. Les noyaux courants sont le noyau linéaire, le noyau polynomial et la fonction à base radiale (RBF), exp(−γ‖x − x′‖²), où γ détermine la portée de l’influence de chaque vecteur de support. Cet exemple ajuste SVC de scikit-learn avec un noyau linéaire et un noyau RBF sur deux anneaux concentriques :

from sklearn.datasets import make_circles
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# Two concentric rings: no straight line separates the classes
X, y = make_circles(n_samples=500, factor=0.4, noise=0.1, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

for kernel in ("linear", "rbf"):
    clf = SVC(kernel=kernel, C=1.0)
    clf.fit(X_train, y_train)
    print(f"{kernel}: test accuracy {clf.score(X_test, y_test):.2f}, support vectors {clf.n_support_.sum()}")

Le noyau linéaire obtient un score de 0,43 sur les points réservés, soit un résultat inférieur à celui du hasard, et retient 360 des 375 points d’entraînement comme vecteurs de support. Le noyau RBF sépare parfaitement les anneaux (1,00) avec seulement 42 vecteurs de support.

Choisir un noyau et régler les hyperparamètres#

Les distances et les produits scalaires dépendent de l’échelle des caractéristiques ; les entrées d’une SVM sont donc d’abord standardisées. Le guide pratique des auteurs de LIBSVM, la bibliothèque qui sous-tend SVC de scikit-learn, recommande de mettre les caractéristiques à l’échelle, de commencer par le noyau RBF et de choisir C et γ par recherche sur grille avec validation croisée. Lorsque les caractéristiques sont bien plus nombreuses que les échantillons, comme dans le cas du texte, un noyau linéaire donne des résultats à peu près aussi bons et s’entraîne beaucoup plus vite. Le temps d’entraînement des SVM à noyau augmente au moins de façon quadratique avec le nombre d’échantillons ; au-delà de quelques dizaines de milliers d’échantillons, les SVM linéaires ou les caractéristiques de noyau approximatives remplacent donc le modèle à noyau exact.

Les SVM en vision par ordinateur#

La vision par ordinateur classique associait des caractéristiques conçues à la main à des SVM linéaires. Le détecteur de piétons de Dalal et Triggs, paru en 2005, évaluait des histogrammes de gradients orientés (HOG) avec une SVM linéaire ; le détecteur d’objets R-CNN de 2014 classait les caractéristiques CNN de chaque région candidate au moyen d’une SVM linéaire par classe, jusqu’à ce que Fast R-CNN les remplace en 2015 par une couche softmax entraînée conjointement avec le réseau. Les détecteurs modernes apprennent ensemble les caractéristiques et le classificateur, et les SVM subsistent en tant que classificateurs rapides sur des caractéristiques fixes. Une SVM linéaire entraînée sur les vecteurs renvoyés par YOLO26 à partir de model.embed(), à raison d’une représentation vectorielle par image, constitue un classificateur linéaire de sondage qui ajoute une nouvelle catégorie d’images sans réentraîner le réseau.

Applications#

  • Classification de texte : Les vecteurs de comptage des mots comportent des dizaines de milliers de dimensions creuses ; les SVM linéaires y séparent efficacement les thèmes, les spams et les sentiments, un avantage que Thorsten Joachims a démontré pour la catégorisation de texte en 1998.
  • Bio-informatique : Les études d’expression génique classent les tumeurs à partir de milliers de gènes mesurés et de quelques dizaines ou centaines de patients. Dans ce contexte, la marge limite le surapprentissage, et les noyaux de chaînes comparent directement les séquences de protéines.
  • Détection d’anomalies : Une SVM à une classe apprend uniquement une frontière autour des données normales et signale les points situés à l’extérieur, ce qui convient à la détection des fraudes et à la surveillance des machines lorsque les défaillances sont trop rares pour être étiquetées.
  • Régression : La régression par vecteurs de support ajuste une fonction à l’intérieur d’un tube de largeur ε, ignore les erreurs inférieures à ε et ne conserve comme vecteurs de support que les points situés sur le tube ou à l’extérieur.
  • Voisins les plus proches (KNN) : Cette méthode stocke l’ensemble d’entraînement et compare chaque nouveau point à ses voisins au moment de la prédiction, tandis qu’une SVM ne conserve que ses vecteurs de support.
  • Arbres de décision et forêts aléatoires : Ces méthodes effectuent des divisions sur une caractéristique à la fois, n’ont pas besoin de mise à l’échelle des caractéristiques et gèrent les colonnes numériques et catégorielles mixtes, contrairement aux SVM, qui nécessitent des entrées numériques mises à l’échelle.
  • Réseaux de neurones : Ils apprennent la projection des caractéristiques à partir des données au lieu de la fixer avec un noyau, ce qui leur permet de passer à l’échelle de millions d’images, là où les SVM à noyau deviennent trop lentes.
  • Régression logistique : Elle apprend également une frontière linéaire, mais minimise la perte logarithmique sur chaque point d’entraînement et produit des probabilités. Une SVM renvoie des distances signées par rapport à la frontière, et SVC de scikit-learn ne produit des probabilités qu’avec probability=True, qui ajuste une mise à l’échelle de Platt par validation croisée interne à 5 plis.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique