Brève introduction aux
« Support Vector Machines » (SVM), alias « Séparateurs à Vaste Marge »
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 1avril 2013
alias « Séparateurs à Vaste Marge »
Fabien Moutarde
Centre de Robotique (CAOR) MINES ParisTech (ENSMP)
Fabien.Moutarde@mines-paristech.fr
http://perso.mines-paristech.fr/fabien.moutarde
Principe essentiel des SVM
Espace d'entrées X
Espace des représentations
internes
Espace de sortie
Φ h
Séparation Redescription
x y
Passer (indirectement) dans un espace de plus grande dimension
pour y faire séparation linéaire optimale...
Φ h
Séparation linéaire Redescription
non linéaire
Séparation linéaire
• Soient les exemples {(Xi, ci), i=1,…, m} d’un problème de classification, avec Xi∈∈∈∈X⊂ℜ⊂ℜ⊂ℜ⊂ℜd, et ci ∈∈∈∈{-1,+1}
ci= +1
h(X)=0 h(X)>0
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 3avril 2013
• Une séparation linéaire est la partition en 2 par un hyperplan d’équation h(X) = w.X+b = 0
ci= -1 h(X)<0
Infinité d’hyperplans
valides
Hyperplan optimal de séparation
Marge maximale
Hyperplan valide
D(x) > 1
w h(X)>1
Hyperplan optimal
D(x) = 0 D(x) = +1
D(x) = -1 Vecteurs
de support
D(x) < -1
1 w
h(X)<-1
h(X)=1
h(X)=-1 h(X)=0
Maximisation de la « marge »
• La distance d’un point p à l’hyperplan est
w p w b p
d .
)
( +
=
• On veut l’hyperplan tel que sa distance aux points les plus proches (=« marge ») soit maximale.
Maximiser cette marge revient donc à minimiser ||w||
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 5avril 2013
Maximiser cette marge revient donc à minimiser ||w||
sous la contrainte que l’hyperplan reste séparateur :
≥ +
∀ ( . ) 1
min
2b X
ii
w
c i
w
C’est un problème convexe d’optimisation
• Soit par méthode directe d’optimisation quadratique, possible en pratique uniquement si d « petite »
• Soit (le plus souvent) par méthode des
multiplicateurs de Lagrange
Résolution de l’optimisation sous contrainte
L ( w , b , α ) = w
2− ∑
mα
i{( X
i. w + b ) c
i− 1 }
≥
∀
− +
−
= ∑
=
0
} 1 )
. {(
) , , (
1 i
i
i i
i
i
b X
b L
α
α
α w w c
w
( )
[ 1 ] 0
, + − =
∀ i α
ic
iwx
ib
= 0
∂
∂ w
Là où L est minimum, L
⇒ ⇒ ⇒ ⇒ ∑
=
=
mi
i i i
c x w
1
*
α
De plus, conditions de Karush-Kuhn-Tucker (KKT) :
seuls les ααααi sur marge peuvent être non nuls
⇒
⇒⇒
⇒
Résolution par passage au problème dual
≥
∀
− +
−
= ∑
=
0
} 1 )
. {(
) , , (
1 2
i
m
i
i i
i
i
b X
b L
α
α
α w w c
w
∑
m∑∑
m mse ramène au problème dual ci-dessous
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 7avril 2013
=
≥
∀
−
∑
∑ ∑∑
=
= = =
l
i
i i
i m
i
m
i m
j
j i j i j i i
c i
X X c c
1
1 1 1
0 0
) . ( max
2 1
α α
α α
α
α
dont résolution est en O(m) au lieu O(d)
Solution du problème dual
−
=
=
+
=
∑
∑
= m
s i i i s
m
i
i i i
X X c c
b
X c
b h
*
*
1
*
*
*
*
) . ( ) .
( ) (
α α w
X w X
= −
∑
= i
s i i i
s c X X
c b
1
) . α (
•La solution s’exprime explicitement en fonction des exemples de la base d’apprentissage
•Seuls les ααααi des points les plus proches de l’hyperplan sont non-nuls : ce sont les « points de supports ».
Variante SVM avec « marge douce »
• Pour tolérer quelques exemple non linéairement séparables, on relâche la contrainte de séparation :
b
iX + ≥ − ξ
∀ i c
i( w .
i) 1
Ceci revient à minimiser w 2 + C
∑
mξ
iBrève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 9avril 2013
Ceci revient à minimiser
∑
=
+
i
C i
w
1
ξ
On retrouve exactement le même problème dual que dans cas d’une marge « stricte », mais avec contrainte
0 ≤≤≤≤ ααααi ≤≤≤≤ C
Idée du « changement de variable » pour « linéariser » un problème
• En passant de l’espace (x
1,x
2) à (x
12,x
22,x
1,x
2), on
a rendu le problème linéairement séparable !!
Application SVM aux problèmes non-linéairement séparables
• Si {(Xi,ci), i=1,…, m} non linéairement séparable, chercher une transformation ΦΦΦΦ : X F telle que les exemples transformés {(ΦΦΦΦ(Xi),ci), i=1,…, m} soient linéairement séparables dans F
Espace d'entrées X
Φ h
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 11avril 2013
Pour chaque transormation ΦΦΦΦ, on sait trouver dans F le classifieur optimal en terme de « marges »
Séparation linéaire Redescription
non linéaire
Φ h
x y
• La séparation linéaire optimale dans F est alors la solution de :
Trouver la transformation φ : φ : φ : φ : l’astuce du noyau
• Pour tout « mapping » φφφφ de X F, on peut poser
≤
≤
∀
∑ − ∑∑
= = =
m
i m
i
m
i m
j
j i j i j i i
C i
X X k c c
1 1 1
0
) , ( max
2 1
α
α α
α α
∑ =
= m
i i i
i
c
1
α 0
Chercher φφφφ revient donc à trouver le bon « noyau » k
b X X k c h
NS
i
i s i s i
s ( , )
) (
1
) ( ) ( )
( +
=
∑
=
α
qui est : X où Xs(i) sont les Ns
« points de support » Tout ça peut être calculé en connaissant k(X,Z) uniquement
(i.e. sans connaître φφφφ !!)
Noyaux usuels :
Condition de Mercer :
pour toute fonction k(X,Z) symétrique ET vérifiant
pour toute fonction f L2-intégrable (i.e. tq soit finie), il existe une fonction φφφφ telle que ∀∀∀∀ X,Z k(X,Z)=φφφφ(X). φφφφ(Z)
Notion de noyau
0 )
( ) ( ) ,
( ≥
∫k X Z f X f Z dXdZ
∫ f( X)2dX
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 13avril 2013
Noyaux usuels :
•Polynomiaux
•RBF
•sigmoïde
Z q
X Z
k(X, )=( . +1)
2 2
) 2
,
( σ
Z
e Z X k
− −
=
X
) .
( tanh )
,
(X Z aX Z b
k = −
Forme « neuronale » d’un classifieur SVM
b X
X k h
NS
i
i s i
s ( , )
) (
1
) ( )
( +
=
∑
=
β X
k(X ,X) β
Peut se mettre sous forme d’un réseau neuronal avec une couche cachée de Ns neurones type « noyau » (avec poids respectifs = vecteurs-support) et une sortie linéaire :
(avec βs(i)=αs(i)cs(i) )
x1
x2
x3
k(Xs(1),X) k(Xs(2),X)
k(Xs(Ns),X) k(Xs(j),X)
…
ΣΣΣΣ
βs(1)
h(X)
βs(Ns) Ns = nb de « vecteurs-support » X
Les SVM en pratique
1. Choisir type et paramètres du noyau k
2. Choisir éventuellement paramètre de tolérance C (cas d’une « marge douce »)
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 15avril 2013
Noyaux polynomiaux de degrés respectifs 2, 5, 8
Noyaux RBF gaussiens avec σσσσ = 2, 5, 10
Les SVM en pratique (2)
• Le choix des paramètres doit généralement se faire par méthode empirique rigoureuse type
« validation croisée »
• Validation croisée :
– Découper ensemble d’exemples en k sous-ensembles disjoints de taille m/k
de taille m/k
– Apprendre sur union de k-1 des parties – Calculer erreur sur k-ième partie
– Erreur finale = moyenne des k erreurs
Comparaison erreurs moyennes obtenues avec divers noyaux et paramètres choix meilleure combinaison
[Démo SVM]
QUELQUES REFERENCES SUR LES SVMs
• Learning with kernels:support vector machines, regularization, optimization, and beyond,
Bernard Scholkopf & Alexander J. Smola, The MIT Press, 2002.
Brève introduction aux SVM Fabien Moutarde, CAOR, MINES ParisTech 15/04/2010 17avril 2013