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.
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.
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 :
Avantages :
Limites :
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.
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 :
Le choix du noyau et de ses paramètres est crucial et nécessite souvent un réglage minutieux des hyperparamètres.