Machines à vecteurs supports
Download
Report
Transcript Machines à vecteurs supports
Une introduction aux machines à vecteurs
supports (SVM)
Adapté de Martin Law, Antoine Cornuéjols et autres sources sur Internet
Plan
Historique
Qu’est-ce qu’une bonne frontière de séparation pour
deux classes linéairement séparables ?
La solution SVM
Adaptation aux cas non linéairement séparables: l’astuce
des fonctions noyau
Exemples d’application
Conclusion
2
Historique du SVM
Classifieur dérivé de la théorie statistique de
l’apprentissage par Vapnik and Chervonenkis
Devenu populaire depuis que, partant d’images formées
de pixels, il a permis des performances égales aux RNA
pour reconnaitre l’écriture manuscrite.
Proche de :
3
Séparateurs à vastes marges
Méthodes à fonctions noyau
Réseaux de neurones à bases radiales
Problème à deux classes linéairement séparables
Plusieurs surfaces de décision existent pour séparer
les classes ; laquelle choisir ?
Frontière de décision possibles
Classe 2
Classe 1
4
Exemples de choix mal avisés
Classe 2
Classe 1
Classe 2
Classe 1
Pour minimiser la sensibilité au bruit, la surface de décision doit être aussi
éloignée que possible des données les proches de chaque classe
Hyperplan de plus vaste marge
wT xi b 1
wT xi b 0
Hyperplan
valide
• Équation de l’hyperplan de séparation : y wT x b
(Ligne droite dans un espace à deux dimensions)
M arge
maximale
wT xi b 1
w xi b 1
T
Classe 2
wT xi b 1
Classe 1
Hyperplan
optimal
Si {xi} = {x1, ..., xn} est l’ensemble des données et yi {1,-1} est la
classe de chacune, on devrait avoir :
tout en ayant une distance optimale entre xi et le plan de séparation
6
Optimisation de la marge
wT x b 1
Distance d’un point à
l’hyperplan :
D( x )
wT x b
w
Marge
maximale
w
D(x) > 1
Classe 2
Marge max. avant
d’atteindre les frontières
des deux classes ( w x b 1) :
T
Vecteurs
de support
Maximiser m revient à
minimiser ||w|| tout en
préservant le pouvoir de
classification :
min
1
2
7
w
2
D(x) = +1
1
w
Hyperplan
optimal
D(x) < -1
Classe 1
D(x) = 0
D(x) = -1
sous la contrainte yi ( w T xi b) 1, i
Problème d’optimisation quadratique
Maximiser le pouvoir de généralisation du classeur revient donc à
trouver w et b tels que :
et
1
w
2
2
est minimum
yi wT xi b 1,
i1,...,n
Si d est la dimension des xi (nombre d’entrées), cela revient à
régler d+1 paramètres (les éléments de w, plus b)
Possible par des méthodes d’optimisation classiques (optimisation
quadratique) seulement si d pas trop grand (< qqs 103)
L’approche SVM utilise les multiplicateurs de Lagrange pour une
solution plus simple
8
Les multiplicateurs de Lagrange en 30 s
Problème : maximiser ou minimiser f(x) sous la contrainte g(x)=0
Solutions possibles :
Résoudre g(x)=0 et substituer la/les racines trouvées dans f(x) ;
résoudre alors f ’(x) = 0 : pas toujours facile !
Considérer f(x) et g(x)=0 évoluent pareillement au voisinage de
l’extrémum recherché. Leurs tangentes sont alors colinéaires et on
a:
f ’(x) = g’(x) (ou f ’(x) - g’(x) = 0) étant à déterminer
La méthode des multiplicateurs de Lagrange regroupe la fonction a
optimiser et la contrainte en une seule fonction (x,)= f(x)-g(x)
La solution de d(x,)/dx =0 donne le point où les tangentes sont
colinéaires; en même temps, d(x,)/d répond à la contrainte.
Cas à plusieurs dimensions
On veut minimiser (ou maximiser) une fonction f(x) en respectant des
contraintes gi(x)=0, i=1,…,n
n
On peut monter qu’à l’extrémum recherché : f ( x ) i g i ( x )
i 1
(égalité des tangentes)
n
ou encore :f ( x ) i gi ( x ) 0 où les coefficientsi sont à
i 1
déterminer
l
Si on forme la fonction (lagrangien) : x, α f ( x ) i g i ( x )
l
Alors : x, α f ( x) i gi ( x)
i 1
x
et x, α gi ( x)
i 1
i
=> la solution de x x, α 0 mène à un extrémum qui respecte les
contraintes.
Forme duale du problème d’optimisation
Dans notre cas, la fonction à optimiser sous contrainte est celle donnant
la marge maximale, ce qui revient à trouver les paramètres (w, b)
correspondants.
Donc, partant d’un ensemble de donnes données {(xi, yi)}, de
l’ensemble de contraintes {( xT wb) yi 1 0} et des paramètres à
optimiser (w, b), on a:
i
( w , b, α)
i i 0
1
2
n
w i{( x Ti wb) yi 1}
2
i 1
Le minimum recherché est donné par la solution de w,b (w, b, α) 0
Il existe un problème dual plus facile à résoudre :
=>
11
x, α
Théorème de Kuhn-Tucker : min x max x , α max min
α
α
x
x
on peut aussi trouver w et b en solvant α (w, b, α) 0 sujet aux
contraintes w,b (w, b, α) 0
Forme duale du problème d’optimisation
Avantage de résoudre α (w, b, α) 0 au lieu de w,b (w, b, α) 0 :
La complexité du problème d'optimisation devient proportionnelle à n
(nombre de paires d’apprentissage (xi, yi)) et non d (dimension de chaque xi)
12
Possible d'obtenir des solutions pour des problèmes impliquant ≈ 105
exemples
C’est aussi un problème pour lequel le maximum global des i peut
toujours être trouvé
Formulation du problème dual
Partant de
( w , b, α )
i i 0
1
2
w
2
n
i{( x Ti wb) yi 1}
i 1
n
w,b (w, b, α) 0 donne w i yi xi
i 1
n
et
y
i 1
i
i
0
On a par substitution dans (w, b, α) :
n
1 n n
T
(
w
,
b
,
α
)
y
y
x
xj
i
i
j i
j
i
2
i 1
i 1 j 1
i 0
i
n
i yi 0
i 1
Il faut trouver qui maximise (w, b, α) : résoudre α (w, b, α) 0
13
n équations linéaires homogènes à n inconnues (les composants de )
Solution du problème d’optimisation
ns
wˆ ˆ i yi xi
i 1
ns
T
ˆ
ˆ
b
y
y
(
x
xs )
s i i
i
i 1
D ( x ) ( wˆ T x bˆ)
• ^ : estimé
• nS : nombre de vecteurs de
support (xi avec 0)
• (xS,yS) : vecteur de support
arbitraire (pour trouver bˆ )
Les données xi avec 0 sont appelées vecteurs de support. Ils
correspondent aux points les plus proches de la surface de séparation
Dans l’expression du Lagrangien pour déterminer w
ˆ et bˆ , seuls interviennent
les produits scalaires entre les données x
n
1 n n
( w, b, α) i i j yi y j x Ti x j
2 i 1 j 1
i 1
14
Caractéristiques de la solution
Puisque plusieurs i sont nuls, w est une combinaison linéaire d’un petit
nombre de données
La surface de décision est uniquement déterminée par les ns vecteurs
de support trouvés:
ns
wˆ ˆ i yi xi
i 1
ns
bˆ ys ˆ i yi ( x Ti xs )
i 1
Pour classer une nouvelle donnée z
Calculer wˆ z bˆ ˆ i yi xiT z bˆ et classer z dans la classe 1 si le
ns
T
i 1
résultat est positif, la classe 2 s’il est négatif
15
Interprétation géométrique
Classe 2
8=0.6
10=0
• Seules les points les plus proches de la
surface de séparation influent sur sa
définition
7=0
5=0
a2=0
1=0.8
4=0
9=0
Classe 1
6=1.4
3=0
• Il existe des limites théorique pour l’erreur de classification de données nouvelles
Plus grande la marge, plus petite la limite
Plus petit le nombre de SV, plus petite la limite
16
Et pour un cas non linéairement séparable ?
On peut introduire une marge d’erreur i pour la
classification
Classe 2
Classe 1
17
Hyperplan à marges douces
i = 0 s’il n’existe pas d’erreur pour xi
i sont des variables qui donnent du ”mou” aux marges optimales
Nous voulons minimiser
C : paramètre de compromis entre l’erreur et la marge
Le problème d’optimisation devient
18
Détermination de l’hyperplan de séparation
La forme duale du problème est
w est aussi donné par
La seule différence avec le cas linéairement séparable est qu’il existe une
limite supérieure C aux i
19
Extension à une surface de séparation non-linéaire
« Simplifier les choses » en projetant les xi dans un nouvel espace
où ils sont linéairement séparables
Espace d'entrée
non linéairement
séparable
x
Espace de re-description
linéairement séparable
Φ
h
Fonction de
re-description
Classeur
linéaire
Espace de sortie
y
Espace d’entrée
Φ( )
Φ( )
Φ( )
Φ( )
Φ( ) Φ( )
Φ(
)
Φ( ) Φ( )
Φ( )
Φ( )
Φ( ) Φ( ) Φ( )
Φ( ) Φ( ) Φ( )
Φ( ) Φ( )
Espace de re-description
Modification due à la transformation
Substituer les arguments transformés dans les produits scalaires lors de la
phase d’apprentissage,
Problème
original :
Après
xformation :
Mais trouver Φ() pas évident !
21
Φxi Φxi
T
Modification due à la transformation
Les nouvelles données z sont toujours classées dans la classe 1 si f0, la
classe 2 sinon :
Original :
Après
xformation :
Φ xt j Φ z
T
et la surface de séparation dans le nouvel espace est :
s
D( x ) ˆ j y j K ( x j , x ) bˆ
j 1
22
Extension à une surface de séparation non-linéaire
Problèmes cependant :
=?
Grand effort de calcul potentiel (d explose !)
SVM à fonctions noyaux résout les deux problèmes
Efficacité computationnelle
La transformation désirée des données est faite implicitement !
Φ( )
Espace d’entrée
Φ( )
Φ( )
Φ( )
Φ( ) Φ( )
Φ(
)
Φ( ) Φ( )
Φ( )
Φ( )
Φ( ) Φ( ) Φ( )
Φ( ) Φ( ) Φ( )
Φ( ) Φ( )
Espace de re-description
L’astuce des fonctions noyau
Définition d’une fonction noyau :
La connaissance de K( ) permet de calculer indirectement un produit
scalaire où intervient Φ( ), sans connaitre l’expression de Φ( )
Or, seuls des produits scalaires interviennent dans la solution du problème
d’optimisation
Un autre avantage d’utiliser K() est qu’il représente intuitivement la similarité
entre les x et y, obtenue de nos connaissances a priori
Cependant, K(x,y) doit satisfaire certaines conditions (conditions de Mercer) pour
que le Φ ( ) correspondant existe
24
Les conditions de Mercer
Pour une fonction K symétrique, il existe une fonction Φ telle que :
m
K(x, x' ) ( x). (x' )
gi (x ). gi (x' )
i1
ssi, pour toute fonction f telle que :
l’on a :
K(x, x' )
f ( x ) 2 dx est fini
f(x) f (x' ) dx dx' 0
Si cette condition est vérifiée, on peut appliquer la fonction noyaux dans
le SVM
MAIS cela ne dit pas comment construire Φ
25
Exemple de d’utilisation
Définissons la fonction noyau K(x,y) telle que, pour toute paire de vecteurs
x=(x1, x2) et y=(y1, y2) :
K ( x, y) 1 x1 y1 x2 y2
2
Considérons maintenant une transformation Φ qui prend un vecteur de
dimension 2 et le projette dans un espace de dimension 6 :
( x) 1, 2x1, 2x2 , x12 , x22 , 2x1x2
On peut voir en effectuant le calcul que
( x ), ( y ) 1 x1 y1 x2 y2
2
K ( x, y )
On peut donc obtenir le résultat sans avoir à passer par l’espace transformé
26
Illustration : le cas du XOR
x2
1
4
4
4
1
max
y
y
K
(
x
,
x
)
i i j i j
i
j
2 i 1 j 1
i 1
i 0 i C
4
i yi 0
i 1
x1
1
-1
-1
Index i
xi
y
1
(1,1)
1
2
(1,-1)
-1
3
(-1,-1)
1
4
(-1,1)
-1
Il faut résoudre :
Si on reprend la fonction noyau K ( x, y) 1 x1 y1 x2 y2 2,
on obtient les équations suivantes pour le Lagrangien :
Q 1 2 3 4
1
(912 21 2 21 3 21 4
2
9 22 2 2 3 2 2 4 9 32 2 3 4 9 42 )
1 2 3 4 0
27
Illustration : le cas du XOR
Le maximum de Q(a) est obtenu en prenant ses dérivées par rapport
aux i et en trouvant les valeurs de i qui les annulent :
1 91 2 3 4 0
1 9 0
1
2
3
4
1 1 2 9 3 4 0
1 1 2 3 9 4 0
La valeur optimale des multiplicateurs de Lagrange est :
1
ˆ 1 ˆ 2 ˆ 3 ˆ 4
8
28
Les 4 données du où exclusif sont donc des vecteurs de support,
puisque aucune valeur trouvée de n’est nulle
Illustration : le cas du XOR
Dans l’espace de Espace de redescription :
wˆ ˆ i yi xi
i 1
ns
T
ˆ
b ys ˆ i yi K ( x i x s )
i 1
s
D
(
x
)
ˆ j y j K ( x j , x ) bˆ
j 1
ns
1 4
1 4
bˆ 1 y j K ( x j , x1 ) 1 1 j K ( x j , x1 ) 0
8 j 1
8 j 1
et :
D( x)
(on aurait obtenu le même résultat en utilisant () :
1
2
x
1
1
2 x1 x2
T
ˆ
w ( x ) 0, 0,
, 0, 0, 0
x1 x2
2
2
x2
2x
1
2x
2
Donc :
1
( x1 ) ( x2 ) ( x3 ) ( x4 )
8
1 1 1 1 0
1
1
1
1
0
1 2 2 2 2 1 2
8 1 1 1 1 0
2 2 2 2 0
2 2 2 2 0
wˆ
(on connait () dans cet exemple, mais il n’est pas requis en
général, car l’équation de la marge dépend seulement de K())
29
1 4
1 4
1 j K ( x j , x) x1x2
y
K
(
x
,
x
)
j
j
8 j 1
8 j 1
)
La marge optimale est :
4
ˆ j y j xi
j 1
1 1 4 4
1
1
2 yi y j K xi , x j wˆ
2 8 i 1 j 1
4
2
1
1
1 4
2
wˆ wˆ T wˆ ˆ i yi xi
2
2
2 i 1
T
Illustration : le cas du XOR
Séparatrice dans l'espace
d'entrée
D(x) = -x1x2
30
Séparatrice dans l'espace
Φ(x)
2 x1x2 0
Autre Exemple
Supposons 5 nombres x1=1, x2=2, x3=4, x4=5, x5=6, avec
1, 2, 6 classe 1 (y=1)
4, 5 classe 2 (y=-1)
Donc: {(xi, yi)}i=1,…,5 ={(1,1), (2,1), (4,-1), (5,-1), (5,1)}
Utilisons à nouveau le noyau polynomial de degré 2
31
K(x,y) = (1+xTy)2
C est choisi égal à 100
Trouvons d’abord i (i=1, …, 5) :
Exemple
La solution est :
1=0, 2=2.5, 3=0, 4=7.333, 5=4.833
Les vecteur supports sont donc {x2=2, x4=5, x5=6}
La fonction discriminante est
b trouvé en résolvant f(2)=1 ou f(5)=-1 ou f(6)=1, puisque x2, x4,
x5 sont dans
et tous donnent b=9
32
Exemple
Valeur de la fonction discriminante
classe 1
1
33
classe 1
classe 2
2
4
5
6
Exemples de fonctions noyaux
Noyau polynomial de degré d
Noyau à fonction à base radiale de dispersion
Sigmoïde avec paramètres et
Ne satisfait pas la condition de Mercer pour tous et
La recherche d’autres fonctions noyau pour diverses
applications est très active !
34
Très proche des RN avec fonctions à base radiale
Classification multi-classes
SVM est à la base un classifieur binaire
On peut changer la formulation pour permettre la
classification multi-classe
L’ensemble des données est divisé en deux parts de multiples
façons, et classé ensuite
35
Un contre tous ou un contre chaque alternative
Un SVM séparé est formé pour chaque division
La classification multi-classes est accomplie en combinant la sortie
de tous les SVM
Example d’application des SVM : Reconnaissance
de l’écriture manuscrite
?
36
?
Sommaire: étapes de la classification
37
Préparer la matrice des patrons
Choisir la fonction noyau à utiliser
Choisir les paramètres de la fonction noyau et la valeur
de C (valeurs suggérées par le logiciel SVM ou essaierreur).
Exécuter l’algorithme d’apprentissage pour trouver i
Les données nouvelles peuvent être classées en fonctions
des i et des vecteurs supports trouvés
Effet des paramètres de contrôle.
• Apprentissage de
données en damier
• Apprentissage de
deux classes
• SVM à fonction
noyau gaussienne
K ( x, x ' ) e
38
x x '
2 2
2
Effet des paramètres de contrôle
Apprentissage de deux classes
exemples tirés uniformément
sur l'échiquier
SVM à fonctions noyau
gaussienne
K(x, x' ) e
2
En haut : petite valeur
En bas : grande valeur
Les gros points sont des exemples
critiques
39
2
2
Ici deux valeurs de
x x'
Plus en haut qu'en bas
Une applette de démonstration
http://svm.cs.rhul.ac.uk/pagesnew/GPat.shtml
47 exemples (22 +, 25 -)
Exemples critiques : 4 + et 3 Ici fonction polynomiale de degré 5 et C = 10000
40
Paramètres de contrôle : les fonctions noyau
(5-, 4+)
47 exemples (22 +, 25 -)
Exemples critiques : 4 + et 3 -
(3-, 4+)
(5-, 4+)
Ici fonction polynomiale de degré 2, 5, 8 et C = 10000
(10-, 11+)
(8-, 6+)
(4-, 5+)
Ici fonction Gaussienne de = 2, 5, 10, 20 et C = 10000
41
Domaines d’application des SVMs
Traitement d’images
42
Reconnaissance de caractères manuscrits
Reconnaissance de scènes naturelles
Reconnaissance de visages
Entrées :
Sortie :
image bidimensionnelle en couleur ou en tons de
gris
classe (chiffre / personne)
Application : images couleurs
Ex. : Base d’images Corel Stock Photo Collection
Codage
200 catégories
100 images / catégorie
Pixel = vecteur dans espace à trois dimensions (RGB)
Image = histogramme (fraction des pixels d’une couleur
donnée)
Invariant / nombreuses opérations
Noyau :
(fonction c2)
43
Domaines d’application des SVMs
Catégorisation de textes
Entrées : document (texte ou html)
44
Classification d’e-mails
Classification de pages web
Approche « sac de mots »
Document = vecteur de mots (lemmatisés pondérés par tf-idf)
Sortie :
Noyau :
catégorie (thème, spam/non-spam)
Produit scalaire des vecteurs
C=
(marge dure)
Domaines d’application des SVMs
Diagnostic médical
Entrées : état du patient (sexe, age, bilan sanguin, …)
Sortie :
45
Évaluation du risque de cancer
Détection d’arythmie cardiaque
Évaluation du risque d’accidents cardio-vasculaires à moins
de 6 ans
Classe : à risque ou non
Probabilité d’accident à échéance donnée
Extensions
Leçon à retenir des SVM:
Un algorithme linéaire dans l’espace de re-description peut
remplacer un algorithme non-linéaire dans l’espace d’entrée
Les algorithme linéaires classiques peuvent être
généralisés en des versions non-linéaires en allant vers
l’espace de re-description
46
ACP à noyaux, k-moyennes à noyaux, etc.
Régression
Détection de « nouveautés »
SVM et régression
Fonction de perte :
Régression linéaire :
Soit à minimiser :
Généralisation :
x
x
x
x
x
x
47
x
x
x
x
0
x
Régression vectorielle à support (-SVR)
Régression linéaire dans l’espace de redescription
À l’encontre de la régression par moindres carrés, la fonction
d’erreur est une fonction de perte -insensible
Intuitivement, une erreur inférieure à est ignorée
Cela mène à des points de marge terses similaire à SVM
Fonction de perte -insensible
Penalité
*
48
-
Penalité
Fonction de perte quadratique
Valeurs hors
cible
Régression vectorielle à support (-SVR)
49
Soit un ensemble de données {x1, ..., xn} avec valeurs cibles
{u1, ..., un}, on veut réaliser -SVR
Le problème d’optimisation est
Formulation similaire à SVM, donc peut être résolu en tant
que problème QP
Régression vectorielle à support (-SVR)
50
C permet de contrôler l’influence de l’erreur
Le terme ½||w||2 sert à contrôler la complexité de la
fonction de régression
Après l’apprentissage (solution du problème QP), on trouve
les valeurs i and i*, qui sont toutes deux zéros si xi ne
contribue pas à la fonction d’erreur
Pour de nouvelles donnés z,
SVM et apprentissage non supervisé
Détection de « nouveautés »
On cherche à séparer au
maximum le nuage de
points de l’origine
51
w /||w||
/||w||
Pourquoi ça marche ?
La marge est liée à la capacité en généralisation
Normalement, la classe des hyperplans de Rd est de dH = d + 1
Mais la classe des hyperplans de marge
est bornée par :
dH ≤ Min (R2 c, d) + 1
1
w
tq. w
2
c
où R est le rayon de la plus petite sphère englobant l'échantillon
d'apprentissage S
52
Peut être beaucoup plus petit que la dimension d de l'espace
d'entrée X
Forces et faiblesses des SVM
Forces
L’apprentissage est relativement facile
L’algorithme est robuste face aux changements d’échelle
Le compromis entre la complexité du classifieur et l’erreur de
classification peut être gérée explicitement
Méthode générale
Des données non conventionnelles, telles des chaînes et des arbres
peuvent servir d’entrées au SVM, à la place des vecteurs de traits
Résultats en général équivalents et souvent meilleurs
Faiblesses
53
Pas de minima locaux, comme pour les RNA
Il faut trouver la “bonne” fonction noyau
Problèmes i.i.d. (données indépendantes et identiquement
distribuées)
Deux classes à la fois
Conclusion
SVM sont une alternative aux réseaux de neurones
Concepts clés des SVM : maximiser la marge et exploiter
l’astuce des noyaux
Domaine de recherche à la mode
Plusieurs mises en oeuvre existent déjà et sont disponible sur
le WEB !
54
Sources documentaires
55
Ouvrages / articles
Cornuéjols & Miclet (02) : Apprentisage artificiel. Concepts et algorithmes.
Eyrolles, 2002.
Cristianini & Shawe-Taylor (00) : Support Vector Machines and other kernelbased learning methods. Cambridge University Press, 2000.
Herbrich (02) : Learning kernel classifiers. MIT Press, 2002.
Schölkopf, Burges & Smola (eds) (98) : Advances in Kernel Methods : Support
Vector Learning. MIT Press, 1998.
Schölkopf & Smola (02) : Learning with kernels. MIT Press, 2002.
Smola, Bartlett, Schölkopf & Schuurmans (00) : Advances in large margin
classifiers. MIT Press, 2000.
Vapnik (95) : The nature of statistical learning. Springer-Verlag, 1995.
Sites web
http://www.kernel-machines.org/
http://www.support-vector.net
(point d’entrée)
(point d’entrée)
Implémentation des SVMs
Minimisation de fonctions différentiables convexes à plusieurs
variables
56
Pas d’optima locaux
Mais :
Problèmes de stockage de la matrice noyau (si milliers d’exemples)
Long dans ce cas
D’où mise au point de méthodes spécifiques
Gradient sophistiqué
Méthodes itératives, optimisation par morceaux
Plusieurs packages publics disponibles
SVMTorch
SVMLight
SMO
…
Logiciels
Une liste de réalisations de SVM se trouve à
http://www.kernel-machines.org/software.html
Certaines (tel LIBSVM) peuvent gérer la classification multiclasse
SVMLight figure parmi les premières mises en oeuvres de SVM
(écrit en c ; http://svmlight.joachims.org/)
IL existe plusieurs boîtes à outils Matlab pour les SVM sur le
web
57
Autres ressources
http://www.kernel-machines.org/
http://www.support-vector.net/
http://www.support-vector.net/icml-tutorial.pdf
http://www.kernel-machines.org/papers/tutorial-nips.ps.gz
http://www.clopinet.com/isabelle/Projects/SVM/applist.html
58