Transcript B ienvenue
Fouille de données et apprentissage
Cours 6: Les SVM (suite) et les méthodes à noyaux
Alexis Lechervy
10 février 2014
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
1 / 27
Rappels des cours précédents
Sommaire
1
Rappels des cours précédents
2
Résolution du problème d’optimisation d’un SVM dans le dual
3
Recherche d’une séparation non-linéaire
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
1 / 27
Rappels des cours précédents
La classification linéaire à deux classes
Objectif
L’objectif est de trouver un
hyperplan qui sépare au mieux
nos deux classes. Le classifieur
sera alors la fonction :
x si x est au dessus
de l’hyperplan
h(x) =
o
si
x est en dessous
de l’hyperplan
Formalisation mathématique
h(x) =
Alexis Lechervy (UNICAEN)
1 si hw , xi + b > 0
−1 sinon
Fouille de données et apprentissage
10 février 2014
2 / 27
Rappels des cours précédents
Le choix d’un hyperplan, un problème dont la solution n’est
pas unique.
=⇒ Lequel choisir ?
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
3 / 27
Rappels des cours précédents
Le meilleur hyperplan ? : celui qui maximise la marge
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
4 / 27
Rappels des cours précédents
Formulation avec problème d’optimisation
SVM dans le primal
arg minw ,b
s.t.
1
kw k2
2
∀i, yi (w > xi + b) ≥ 1
(1)
(2)
⇒ Problème en pratique, pas d’algorithme numérique efficace si le nombre d’exemple
d’apprentissage est important.
SVM dans le dual
arg maxα
X
i
s.t
αi −
1X
αi αj yi yj hxi , xj i
2
(3)
i,j
∀i αi ≥ 0
X
αi yi = 0
(4)
(5)
i
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
5 / 27
Rappels des cours précédents
SVM à marge souple
SVM à marge souple dans le primal
X
1
kw k2 +C
ξi
2
(6)
∀i, yi (w > xi + b) ≥ 1−ξi
(7)
arg minw ,b
i
s.t.
⇒ Problème en pratique, pas d’algorithme numérique efficace si le nombre d’exemple
d’apprentissage est important.
SVM à marge souple dans le dual
arg maxα
X
i
s.t
αi −
1X
αi αj yi yj hxi , xj i
2
(8)
i,j
∀i C ≥αi ≥ 0
X
αi yi = 0
(9)
(10)
i
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
6 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Sommaire
1
Rappels des cours précédents
2
Résolution du problème d’optimisation d’un SVM dans le dual
3
Recherche d’une séparation non-linéaire
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
6 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Une solution naïve : une montée de gradient
Problème d’optimisation à résoudre
arg maxα
X
i
s.t
αi −
1X
αi αj yi yj hxi , xj i
2
(11)
i,j
∀i C ≥ αi ≥ 0
X
αi yi = 0
(12)
(13)
i
Stratégie employée
Montée itérative,
A chaque itération on monte dans la direction d’une gradient (la plus forte
pente),
Et on projette sur les contraintes pour rester une solution admissible.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
7 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Gestion des contraintes pour une approche naïve
Contraintes d’inégalité
La projection sur la contrainte C ≥ αi ≥ 0 ce réalise simplement à l’aide de la
transformation suivante :
si
C < αi
alors αi ← C
(14)
si
0 > αi
alors αi ← 0
(15)
La contrainte d’égalité
P
La contrainte d’égalité i αi yi = 0 est plus difficile à satisfaire. Un moyen simple
est de ne pas la traiter en fixant le biais b à une certaine valeur (par exemple le
∂L
problème sans biais b = 0). En effet cette contrainte proviens
= 0.
∂b
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
8 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Une solution naïve : une montée de gradient (suite)
Montée dans la direction du gradient
1
Calcul du gradient :
∂
2
P
i
αi −
1P
αi αj yi yj hxi , xj i)
2 i ,j
=
∂αi
On change α dans la direction du gradient :
Projection sur les contraintes
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
9 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Une solution naïve : une montée de gradient (suite)
Montée dans la direction du gradient
1
Calcul du gradient :
∂
P
i
αi −
1P
αi αj yi yj hxi , xj i)
X
2 i ,j
αj yj hxi , xj i.
= 1 − yi
∂αi
j
2
On change α dans la direction du gradient :
Projection sur les contraintes
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
9 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Une solution naïve : une montée de gradient (suite)
Montée dans la direction du gradient
1
Calcul du gradient :
∂
P
i
αi −
1P
αi αj yi yj hxi , xj i)
X
2 i ,j
αj yj hxi , xj i.
= 1 − yi
∂αi
j
2
On change α dans la direction du gradient :
αi ←− αi + η 1 − yi
X
αj yj hxi , xj i ,
j
avec η une constante de réglage de la méthode.
Projection sur les contraintes
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
9 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Une solution naïve : une montée de gradient (suite)
Montée dans la direction du gradient
1
Calcul du gradient :
∂
P
i
αi −
1P
αi αj yi yj hxi , xj i)
X
2 i ,j
αj yj hxi , xj i.
= 1 − yi
∂αi
j
2
On change α dans la direction du gradient :
αi ←− αi + η 1 − yi
X
αj yj hxi , xj i ,
j
avec η une constante de réglage de la méthode.
Projection sur les contraintes
αi ←− min C , max 0, αi + η 1 − yi
Alexis Lechervy (UNICAEN)
X
j
Fouille de données et apprentissage
αj yj hxi , xj i
10 février 2014
9 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Algorithme naïve de résolution d’un SVM à marge souple
sans biais
Data: Un ensemble S d’apprentissage linéaire séparable et un taux η ∈ R+
Initialisation : α ←− 0;
repeat
for i = 1, · · · , n do
P
αi ←− αi + η 1 − yi j αj yj hxi , xj i , ;
if αi < 0 then
αi ←− 0;
end
if αi > C then
αi ←− C ;
end
end
until Critère d’arrêt satisfait;
Result: le couple (α)
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
10 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
Inconvénient de cette approche
Le biais doit être fixé.
Le choix du taux η est délicat, si il est trop grand le système oscille autour de
la valeur optimal, si il est trop petit la convergence est très lente.
⇒ Cette approche est simple conceptuellement et numériquement. C’est une
bonne candidate pour une première implémentation des SVM mais à certaine
limitation.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
11 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
L’algorithme SMO (Sequential Minimal Optimisation)
Principes
SMO est un algorithme itératif.
A chaque itération on optimise la fonction de coût
P
1P
(L(α) = i αi −
αi αj yi yj hxi , xj i)) selon uniquement deux
2 i,j
multiplicateurs α1 , α2 .
L’objectif de l’itération est d’augmenter le plus possible L(α) tout en
satisfaisant les contrainte les long de α1 , α2
Les nouvelles valeurs α10 , α20 sont choisies de manière à satisfaire :
y1 α10 + y2 α20 = y1 α1 + y2 α2 .
Ainsi la contrainte
P
i
αi yi = 0 reste inchangé.
remarques
Il est impossible de conserver la contrainte d’égalité si uniquement un seul
multiplicateur est changé. C’est pour cette raison que l’on en modifie deux.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
12 / 27
Résolution du problème d’optimisation d’un SVM dans le dual
L’algorithme SMO
Algorithme
On part du problème dual.
On se déplace dans l’espace des α en faisant bouger uniquement deux
coordonnées.
On réécrit la fonction objective L(α) en ne prenant que deux αi et on suit le
gradient (la plus forte pente).
On fait attention à respecter la contrainte.
On s’arrête lorsque l’on vérifie les conditions d’optimalité.
En pratique les couples des α ne sont pas choisi au hasard pour accélérer la
convergence.
Bibliographie pour approfondir ces méthodes de résolution de SVM
An Introduction to Support Vector Machines and other kernel-based learninf
methodes, livres de Nello Cristianini et John Shawe-Taylor.
The nature of statistical learning theory, livre de Vladimir Vapnik.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
13 / 27
Recherche d’une séparation non-linéaire
Sommaire
1
Rappels des cours précédents
2
Résolution du problème d’optimisation d’un SVM dans le dual
3
Recherche d’une séparation non-linéaire
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
13 / 27
Recherche d’une séparation non-linéaire
Différent catégories de problème de classification
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Problème linéaire =⇒ OK
b
b
b
b
b
b
b
b
Problème quasi-linéaire =⇒ OK
Fouille de données et apprentissage
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Alexis Lechervy (UNICAEN)
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
Problème non-linéaire ?
10 février 2014
14 / 27
Recherche d’une séparation non-linéaire
Astuce pour résoudre un problème non-linéaire : changer
d’espace
Avant
Alexis Lechervy (UNICAEN)
Après
Fouille de données et apprentissage
10 février 2014
15 / 27
Recherche d’une séparation non-linéaire
Formulation mathématique de notre exemple
Changement d’espace
√
ϕ : (x1 , x2 ) 7−→ (x12 , 2x1 x2 , x22 )
Remarques
En 2D, une surface de séparation non-linéaire est nécessaire pour séparer les
données.
En 3D, un hyperplan suffit.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
16 / 27
Recherche d’une séparation non-linéaire
Cas général
Théorème de Cover (1965)
Dans un espace de dimension d , la probabilité que deux classes quelconques
de n exemples ne soit pas linéairement séparable tend vers 0 lorsque d −→ ∞.
Si n < d , il existe un hyperplan séparant les exemples d’apprentissages.
=⇒ Si on augmente suffisamment le nombre de dimension, on peut se ramener à
un problème de classification linéaire.
=⇒ On va transformer l’espace d’entrée en un espace de plus grande dimensions.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
17 / 27
Recherche d’une séparation non-linéaire
Séparation non linéaire
Principe
1
On projette les exemples dans un nouvel espace de dimension d . (d étant
souvent très grand, éventuellement infini). Cet espace est appelé l’espace des
caractéristiques.
ϕ1 (x)
ϕ2 (x)
ϕ(x) =
..
.
ϕd (x)
2
On effectue la séparation linéaire dans ce nouvel espace.
=⇒ Attention si d devient trop grand (voir infini), les calculs peuvent devenir
rapidement impossible numériquement.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
18 / 27
Recherche d’une séparation non-linéaire
Les fonctions noyaux
Définition
Soit ϕ : X −→ H une fonction de changement d’espace à valeur dans un espace
de Hilbert (H), on définit la fonction noyau associé à cette espace comme étant la
fonction bilinéaire k(x1 , x2 ) : X × X −→ H, vérifiant
k(x1 , x2 ) = hϕ(x1 ), ϕ(x2 )i
Remarque
Le produit scalaire est une fonction de noyau. Elle correspond à une fonction
noyau associé à la fonction ϕ(x) = x.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
19 / 27
Recherche d’une séparation non-linéaire
Retour sur notre exemple
Retour sur notre exemple initial
√
ϕ : (x1 , x2 ) 7−→ (x12 , 2x1 x2 , x22 )
Calcul de la fonction noyau associé
hϕ(x), ϕ(z)i =
=
√
√
h(x12 , 2x1 x2 , x22 ), (z12 , 2z1 z2 , z22 )i
(16)
x12 z12
+ 2x1 x2 z1 z2
(17)
2
(18)
+
x22 z22
=
(x1 z1 + x2 z2 )
=
hx, zi2
(19)
Remarque
Il n’est pas nécessaire de passer dans l’espace de redescription pour calculer
la valeur de la fonction noyau. Le calcul peut etre fait dans l’espace initial.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
20 / 27
Recherche d’une séparation non-linéaire
Non unicité de l’espace de représentation pour une fonction
noyau donnée
Une autre fonction de changement d’espace
ϕ : (x1 , x2 ) 7−→ (x12 , x22 , x1 x2 , x2 x1 )
Calcul de la fonction noyau associé
hϕ(x), ϕ(z)i = h(x12 , x22 , x1 x2 , x2 x1 ), (z12 , z22 , z1 z2 , z2 z1 )i
= x12 z12 + x22 z22 + x1 x2 z1 z2 + x2 x1 z2 z1
=
(x1 z1 + x2 z2 )2
(20)
(21)
(22)
2
= hx, zi
(23)
Remarque
Différente fonction de redescription de l’espace peuvent engendré la même
fonction noyau.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
21 / 27
Recherche d’une séparation non-linéaire
Comparaison de la représentation de l’information
Représentation classique des données
Un exemple est décrit par un vecteur de caractéristique :
x1
x2
x −→ .
..
xd
Représentation à l’aide d’un noyau
Au lieu de représenter chaque exemple individuellement, on représente
l’ensemble d’apprentissage à l’aide d’une matrice de similarité.
Soit une fonction de similarité K , on représente l’ensemble d’apprentissage
par la matrice [K ]ij = K (xi , xj ).
La base d’apprentissage est donc maintenant représenté par une matrice de la
taille nombre d’image x nombre d’image.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
22 / 27
Recherche d’une séparation non-linéaire
Les deux représentations pour un exemple de séquence
d’ADN
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
23 / 27
Recherche d’une séparation non-linéaire
Remarques
La représentation par matrice de similarité utilise toujours une matrice carrée
réelle, quels que soient les objets (séquences, vecteurs, images, ...). Le même
algorithme pourra traîter toutes ces données.
Il y aura une complète modularité entre le choix de la fonction de similarité,
d’une part, et le choix de l’algorithme qui sera appliqué à la matrice de
similarité, d’autre part.
La taille de la matrice de similarité est toujours n × n, quelles que soient la
nature et la complexité des objets Il est parfois plus simple de comparer des
objets complexes que de les transformer en une forme imposée par un
algorithme.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
24 / 27
Recherche d’une séparation non-linéaire
Autres exemples de fonctions noyaux
Noyau linéaire : k(xi , xj ) = hxi , xj i.
Noyaux polynomiaux : k(xi , xj ) = (hxi , xj i + c)q , avec c ∈ R et q ∈ R+ .
kxi − xj k2
, σ ∈ R+ .
σ2
kxi − xj k2
−
2σ 2
Noyaux Gaussiens : k(xi , xj ) = e
, σ ∈ R+ ..
Noyaux triangulaires : k(xi , xj ) = 1 −
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
25 / 27
Recherche d’une séparation non-linéaire
L’astuce du noyau
L’astuce du noyau
Un algorithme utilisant un produit scalaire peut être "noyauté" en remplaçant
tous ces produits scalaires par une fonction noyau.
Étape d’utilisation
1
Exprimer l’algorithme uniquement avec des produits scalaires.
2
Remplacer tout les produits scalaires par une fonction noyau.
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
26 / 27
Recherche d’une séparation non-linéaire
Application au SVM
SVM linéaire dans le dual
arg maxα
X
αi −
i
1X
αi αj yi yj hxi , xj i
2
(24)
i,j
∀i C ≥ αi ≥ 0
X
αi yi = 0
s.t
(25)
(26)
i
SVM non-linéaire dans le dual
arg maxα
X
i
s.t
αi −
1X
αi αj yi yj k(xi , xj )
2
(27)
i,j
∀i C ≥ αi ≥ 0
X
αi yi = 0
(28)
(29)
i
Alexis Lechervy (UNICAEN)
Fouille de données et apprentissage
10 février 2014
27 / 27