Aller au contenu principal

Chargement du lab visuel…

#svm-margesApprentissage supervisé

Machines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.

Ce que tu vas manipuler

  1. Bienvenue dans #svm-marges. Sur le plan : 80 points en deux classes, bleus et roses, bien séparés. La droite rose est l'hyperplan séparateur trouvé par une SVM linéaire avec C = 1 ; les deux pointillés jaunes sont les bords de sa marge, la bande vide qu'elle laisse de chaque côté. Il existe une infinité de droites qui séparent ces deux nuages. Parmi toutes, la machine à vecteurs de support choisit celle qui laisse le plus de place : la marge la plus large possible. Pense à un couloir tracé au milieu d'une rue plutôt que collé au trottoir : les prochains passants auront moins de chances de le franchir.
  2. Qui décide de la position de cette droite ? Pas les 80 points : seulement ceux qui touchent la marge. Tape /vecteurs pour les entourer de jaune.
  3. Le paramètre C règle le prix d'un point mal placé (dans la marge ou du mauvais côté). Descends-le au minimum : /c 0.01.
  4. À l'inverse, monte-le au maximum : /c 100. Chaque point dans la marge coûte maintenant très cher.
  5. Changeons de problème : /dataset anneaux. Une classe au centre, l'autre tout autour.
  6. Passe au noyau gaussien : /noyau rbf. Le noyau projette les points dans un espace où ils deviennent séparables par un hyperplan ; vu depuis notre plan, cet hyperplan devient une courbe.
  7. gamma règle la portée de chaque point dans le noyau RBF. Pousse-le à fond : /gamma 10.
  8. À toi de jouer : /gamma 0.3 pour une frontière lisse, /dataset chevauchement puis /c 0.1 et /c 100 pour voir C arbitrer entre largeur de marge et points mal classés, /marge pour masquer ou afficher les bords de la marge, /entrainer 10 pour surprendre l'optimisation avant qu'elle ait convergé, /graine 12 pour un autre tirage, /reinit pour repartir. Pour juger ces frontières autrement qu'à l'œil, file dans #metriques-classification ; pour une méthode qui ne trace aucune frontière explicite, #knn.

Commandes du canal

  • /c <C=0.01..100>Règle le paramètre C : le prix d'un point dans la marge (petit = marge large, grand = marge dure).
  • /noyau <lineaire|rbf>Choisit le noyau : linéaire (une droite) ou RBF (la frontière se courbe).
  • /gamma <gamma=0.1..10>Règle gamma, la portée de chaque point dans le noyau RBF (petit = frontière lisse, grand = tourmentée).
  • /vecteursAffiche ou masque les anneaux jaunes autour des vecteurs de support.
  • /margeAffiche ou masque les deux bords de la marge (pointillés jaunes, noyau linéaire).
  • /entrainer <passes=10..500>Fixe le nombre de passes d'optimisation (SMO) et ré-entraîne : peu de passes = solution grossière.
  • /dataset <separable|chevauchement|anneaux>Change le jeu de données 2D et ré-entraîne la SVM courante.
  • /bruit <0..1>Règle la dispersion des points (0 = nuages serrés, 1 = très étalés) et ré-entraîne.
  • /graine <1..99>Change la graine du tirage des points (même dataset, autre échantillon) et ré-entraîne.
  • /reinitRevient à l'état initial : separable, noyau linéaire, C = 1, gamma = 1, 200 passes.

Glossaire

Machine à vecteurs de support (SVM)
Classifieur supervisé qui cherche l'hyperplan séparateur laissant la plus grande marge possible entre les deux classes. Sa frontière ne dépend que de quelques points, les vecteurs de support.
Hyperplan séparateur
Ensemble des points où w·x + b = 0 : une droite dans le plan, un plan en 3D, un hyperplan au-delà. Le signe de w·x + b donne la classe prédite.
Marge
Distance entre l'hyperplan et les points les plus proches de chaque classe, soit 1/||w|| quand on normalise y·(w·x + b) ≥ 1. La SVM la maximise : une marge large tolère mieux les nouveaux points.
Vecteur de support
Point d'entraînement situé sur le bord de la marge ou à l'intérieur (y·f(x) ≤ 1), donc à coefficient α non nul. Seuls ces points déterminent la frontière ; les autres pourraient disparaître sans rien changer.
Paramètre C (régularisation)
Prix payé pour chaque point mal placé dans l'objectif ½||w||² + C·Σξᵢ. C petit : régularisation forte, marge large, erreurs tolérées. C grand : marge étroite qui colle aux points, risque de sur-apprentissage.
Hinge loss
Perte max(0, 1 − y·f(x)) : nulle dès qu'un point est du bon côté et au-delà de la marge, croissante ensuite. C'est elle que la SVM minimise avec la régularisation ; sa moyenne mesure à quel point les données respectent la marge.
Noyau (kernel)
Fonction K(x, z) qui mesure la similarité de deux points comme un produit scalaire dans un espace de plus grande dimension, sans jamais y aller. Linéaire : x·z ; RBF : exp(−gamma·||x − z||²).
Astuce du noyau
Remplacer chaque produit scalaire de l'algorithme par K(x, z) : la SVM trouve alors un hyperplan à marge maximale dans l'espace du noyau, qui apparaît comme une frontière courbe dans le plan d'origine. Le calcul reste en O(n²) quelle que soit la dimension implicite.
Noyau RBF (gaussien) et gamma
K(x, z) = exp(−gamma·||x − z||²) : chaque vecteur de support rayonne une bosse gaussienne. gamma règle sa portée (≈ 1/√(2·gamma)) : petit, la frontière est lisse ; grand, elle se tord autour de chaque point.
Marge souple / marge dure
Marge dure : aucun point n'a le droit d'entrer dans la marge (données séparables, C → ∞). Marge souple : on autorise des dépassements ξᵢ payés au prix C, ce qui rend la SVM utilisable sur des données bruitées ou non séparables.

Autres canaux du thème Apprentissage supervisé

  • #entrainement-liveSix algorithmes qui apprennent sous tes yeux, comme une vidéo : REC, timecode, sous-titres, métriques en direct. Regarder est gratuit ; toucher au modèle est Premium.
  • #regression-lineaireAjuster une droite : moindres carrés, résidus, MSE, R² et descente de gradient — la première brique de tout apprentissage supervisé.
  • #regression-logistiqueClasser en deux catégories : sigmoïde, frontière de décision, seuil et log-loss — et pourquoi une droite ne suffit pas toujours.
  • #arbres-de-decisionUn arbre qui découpe le plan en rectangles : Gini, entropie, profondeur, élagage — et le sur-apprentissage qu'on voit à l'œil nu.
  • #knnLes k plus proches voisins : classer par ressemblance, choisir k, changer de distance — et voir la frontière se lisser ou se déchirer.
  • #svm-margesMachines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.
  • #metriques-classificationPrécision, rappel, F1, matrice de confusion, ROC et AUC : lire honnêtement un classifieur, surtout quand les classes sont déséquilibrées.