Rémi Flamary

Site web professionel

SVM et régularisation

$$ \def\w{\mathbf{w}} $$

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:

$$ \min_{f}\quad C\sum_{i=1}^{n} \max(0,1-y_i f(\mathbf{x}_i)) + \|f\|^2 $$
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 $\{\mathbf{x}_i,y_i\}_{i=1\dots n}$ contenant les examples $\mathbf{x}_i\in\mathbb{R}^d$ et la classe correspondante $y_i\in\{1,-1\}$.

Un des avantages des SVM est leur capacité à utiliser une représentation complexe des données à l'aide d'une fonction noyaux $k(\cdot,\cdot)$ qui mesure la similarité entre deux exemples. La fonction de décision est aisni de la forme

$$ f(\mathbf{x}) =\sum_{i=1}^n \alpha_i y_i k(\mathbf{x},\mathbf{x}_i) $$
En pratique, le noyaux Gaussien (aussi appelé RBF) défini par
$$ k(\mathbf{x},\mathbf{x}')=\exp{(-\gamma \|\mathbf{x}- \mathbf{x}'\|^2)} $$
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 $\gamma$. 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 $\gamma$ 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.