Glossaire

Machine à vecteurs de support (SVM)

Découvre la puissance des machines à vecteurs de support (SVM) pour la classification, la régression et la détection des valeurs aberrantes, avec des applications et des aperçus du monde réel.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

Le Support Vector Machine (SVM) est un algorithme populaire et puissant d'apprentissage automatique supervisé (ML) utilisé principalement pour les tâches de classification, bien qu'il soit également efficace pour la régression (Support Vector Regression - SVR) et la détection des valeurs aberrantes. Développés dans les années 1990, les SVM fonctionnent en trouvant une frontière optimale, appelée hyperplan, qui sépare au mieux les points de données appartenant à différentes classes dans un espace à haute dimension. L'idée principale est de maximiser la marge, c'est-à-dire la distance entre l'hyperplan et les points de données les plus proches (vecteurs de support) de chaque classe, ce qui permet souvent d'obtenir de bonnes performances de généralisation sur des données inédites.

Comment fonctionne le Svm

Le principe de base du SVM est de trouver l'hyperplan idéal pour diviser un ensemble de données. Pour les données qui peuvent être séparées par une ligne droite ou un plan plat (données linéairement séparables), le SVM identifie l'hyperplan qui crée le plus grand écart possible entre les classes. Les points de données les plus proches de cet hyperplan, qui sont essentiels pour définir sa position et son orientation, sont appelés vecteurs de soutien. Cette focalisation sur les points les plus difficiles près de la limite rend les SVM efficaces en termes de mémoire, car seuls ces vecteurs de support sont nécessaires pour définir le modèle après l'entraînement.

Pour les ensembles de données où les classes ne peuvent pas être séparées par une frontière linéaire (données non linéairement séparables), les SVM utilisent une technique appelée l'astuce du noyau. Cette méthode astucieuse permet aux SVM de cartographier les données d'origine dans un espace de dimension supérieure où une séparation linéaire pourrait être possible, sans calculer explicitement les coordonnées dans ce nouvel espace. Les fonctions de noyau les plus courantes sont les suivantes :

  • Noyau linéaire : Utilisé pour les données linéairement séparables.
  • Noyau polynomial : Met en correspondance les données dans un espace polynomial de degré supérieur.
  • Noyau de fonction de base radiale (RBF) : Un choix populaire qui peut gérer des relations complexes, en cartographiant les données dans un espace à dimensions infinies.
  • Noyau sigmoïde : Similaire à la fonction d'activation utilisée dans les réseaux neuronaux.

Le choix du noyau et de ses paramètres est crucial et nécessite souvent un réglage minutieux des hyperparamètres.

Pertinence et applications

Les SVM restent pertinents malgré l'essor du Deep Learning (DL), en particulier dans les scénarios avec des données de haute dimension (beaucoup de caractéristiques) mais des échantillons d'entraînement limités. Ils sont connus pour leurs garanties théoriques et leur robustesse, en particulier lorsqu'il existe une marge de séparation claire. Historiquement, les SVM combinés à des extracteurs de caractéristiques comme l'Histogramme des gradients orientés (HOG) étaient à la pointe de la technologie pour des tâches comme la détection d'objets, comme le note l'évolution de la détection d'objets.

Les applications les plus courantes sont les suivantes :

  • Classification d'images: Classification des images dans des catégories prédéfinies, comme l'identification de chiffres manuscrits ou la distinction entre différents types d'objets. Par exemple, un SVM pourrait être entraîné à classer des images médicales comme contenant ou non des tumeurs, sur la base des caractéristiques extraites.
  • Catégorisation du texte : Tri des documents par thèmes, analyse des sentiments (critiques positives/négatives) et détection des spams. Par exemple, classement des articles d'actualité dans des catégories telles que "sports", "politique" ou "technologie".
  • Détection de visage: Identifier les visages dans les images, souvent comme une étape préliminaire avant la reconnaissance.
  • Bioinformatique : Classifier les protéines, les gènes ou les échantillons de patients à partir de données biologiques complexes.
  • Reconnaissance de l'écriture manuscrite : Utilisé dans les systèmes pour reconnaître les caractères manuscrits.

Avantages et limites

Avantages :

  • Efficace dans les espaces à haute dimension, même lorsque le nombre de dimensions dépasse le nombre d'échantillons.
  • Ils sont économes en mémoire car ils n'utilisent qu'un sous-ensemble de points d'entraînement (vecteurs de support) dans la fonction de décision.
  • Polyvalent grâce aux différentes fonctions du noyau permettant de s'adapter à divers types de données.
  • Généralement, on obtient une grande précision lorsque les classes sont bien séparées.

Limites :

  • Peut être coûteux en calcul et lent à former sur de très grands ensembles de données.
  • Les performances dépendent fortement du choix de la fonction noyau et des hyperparamètres.
  • Moins efficace sur les ensembles de données bruyants où les classes se chevauchent de manière significative.
  • Les SVM ne fournissent pas directement d'estimations de probabilités ; celles-ci nécessitent un traitement supplémentaire (par exemple, la mise à l'échelle de Platt).

Svm contre d'autres algorithmes

Par rapport à des algorithmes plus simples comme la régression logistique, les SVM visent à maximiser la marge plutôt que de simplement trouver une limite de séparation, ce qui peut conduire à une meilleure généralisation. Contrairement aux arbres de décision ou aux forêts aléatoires, les SVM construisent un seul hyperplan optimal. Alors que les modèles modernes d'apprentissage profond comme Ultralytics YOLO excellent dans l'extraction automatique de caractéristiques à partir de données brutes (comme les pixels en vision par ordinateur), les SVM nécessitent souvent une ingénierie des caractéristiques minutieuse, mais peuvent donner de bons résultats sur des ensembles de données plus petits ou des types spécifiques de données structurées. Les implémentations populaires comprennent LibSVM et le module SVM de scikit-learn. La formation et la gestion de ces modèles peuvent être simplifiées en utilisant des plateformes comme Ultralytics HUB.

Tout lire