Rémi Flamary

Site web professionel

SVM et régularisation

Dans cette démo, nous allons illustrer l'effet de la régularisation et du paramètre de noyaux pour la discrimination à l'aide de Séparateurs à Vaste Marge (SVM).

Introduction rapide aux SVM

Les SVM permettent d'apprendre une fonction de discrimination à travers le problème d'optimisation suivant:

5b2ea4b46b852167f19927c6576987f5
où C est un terme de régularisation qui pondère l'attache aux données (terme de gauche) et la régularisation (terme de droite). L'attache aux données consiste en une mesure d'erreur sur une liste d'échantillons d'apprentissage cfd878cb02fad0d06970af954452e83d contenant les examples f1adc4952277ee669feadb4a60841f8d et la classe correspondante bd3640d761eaff73c929d8a25c8ce45c.

Un des avantages des SVM est leur capacité à utiliser une représentation complexe des données à l'aide d'une fonction noyaux 20bf4ae8960323bcc6729f73a0f12e4f qui mesure la similarité entre deux exemples. La fonction de décision est aisni de la forme

1f851f5eeb17092ec2b4906b3f4d8c42
En pratique, le noyaux Gaussien (aussi appelé RBF) défini par
fb7ba0f67cd578639df92b2bce351f9d
est régulièrement utilisé lorsuqe la fonction de décision est non-linéaire.

Lorsque l'on utilise les SVM avec un noyau gaussien, il est nécessaire de choisir 2 paramètres importants: C et ae539dfcc999c28e25a0f3ae65c1de79. Dans cette démo, nous illustrons sur un exemple simple l'effet de ces deux paramètre sur la fonction de discrimination SVM.

Problème de discrimination

Dans cette démo, nous illustrons les SVM sur une problème de discrimination 2D appelé "clown". Ce problème a l'avantege d'être facile à comprendre et visualiser sur une figure 2D.

training samples

Dans cette figure, on peut voir que la fonction de discrimination entre les deux classes est non-linéaire mais de complexité limitée.

Démo de régularisation

classification result

Paramètre C

Parametre gamma

Performance

Taux reco.

Valeur courante: C=10

Valeur courante: gamma=10

TBR=0.9754

La paramètre C promeut des fonction lisses pour de petites valeurs, tout comme le paramètre ae539dfcc999c28e25a0f3ae65c1de79 qui définit le voisinage des points. On reporte également le taux de bonne reconaissance du classifieur (TBR) c'est à dire sa capacité à prédire la classe de nouveux exemples.

Références

Pour plus d'informations sur les séparateurs à vaste marge je recommende [1] qui est un livre d'introduction classique. Un trés bon cours de Stéphane Canu est également disponible sur le web [2].

Les figures de cette démo ont été générées avec Python,Numpy, et Scikit Learn. Le code est disponible ici.

[1] Learning with kernels: support vector machines, regularization, optimization, and beyond, B Scholkopf, AJ Smola, 2001, MIT Press.

[2] Cours SVM, S. Canu.