Vous êtes sur la page 1sur 76

Classification, Apprentissage, Décision

Classication, Apprentissage, Décision

Chapitre cinquième : Perceptron

Stéphane Ayache, Cécile Capponi, François Denis, Rémi Eyraud,


Hachem Kadri, Liva Ralaivola

Master 2 IS-IN
Classification, Apprentissage, Décision

Plan du cours

Introduction

Arbre de décision, Random Forest, & k-ppv

Validation d’un apprentissage & Clustering

Perceptron

Machines à vecteur de support

Deep Learning

Theorie de l’apprentissage
Classification, Apprentissage, Décision
Perceptron

Plan

Introduction

Arbre de décision, Random Forest, & k-ppv

Validation d’un apprentissage & Clustering

Perceptron

Machines à vecteur de support

Deep Learning

Theorie de l’apprentissage
Classification, Apprentissage, Décision
Perceptron

Classification linéaire binaire


X ⊂ Rd , Y = {−1, +1}
Définition. Un classifieur linéaire est une fonction de la forme

+1 si hw, xi + b ≥ 0
f (x) =
−1 sinon.

où w ∈ Rd , b ∈ R, hw, xi désigne le produit scalaire entre w et x : si


w = (w1 , . . . , wd ) et x = (x1 , . . . , xd ), hw, xi = di=1 wi xi .
P

Interprétation géométrique : hw, xi + b = 0 est l’équation d’un hyperplan


qui sépare X en deux demi-espaces correspondant aux deux classes.
Par exemple, si d = 2 on retrouve l’équation d’une droite :
hw, xi + b = w1 x1 + w2 x2 + b = 0 donne x2 = − ww1 x1 − wb (à rapprocher de
2 2
y = ax + b de vos cours de collège...).
Classification, Apprentissage, Décision
Perceptron

Un exemple
X = R2
Classifieur linéairef défini par w = (1, 2) et b = −1 :
1 si x1 + 2x2 − 1 ≥ 0
f (x) = f (x1 , x2 ) =
−1 sinon.
Par exemple, f (0, 0) = −1 et f (1, 1) = 1.
Hyperplan d’équation x1 + 2x2 − 1 = 0 (c-à-d x2 = − 21 x1 + 12 )
Classification, Apprentissage, Décision
Perceptron

Expressivité des perceptrons

I Les classifieurs linéaires peuvent sembler a priori très peu expressifs :


pourquoi des données naturelles se répartiraient-elles de part et
d’autres d’un hyperplan ?

I Cette intuition n’est pas forcément vérifiée en très grande dimension


(cas de classification de vidéos, par exemple).

I Cela suggère de plonger les données initiales dans un espace de


grande dimension (voir chapitre suivant).

A complex pattern-classification problem, cast in a high-dimensional


space nonlinearly, is more likely to be linearly separable than in a
low-dimensional space, provided that the space is not densely
populated. (T.M. Cover, 1965)
Classification, Apprentissage, Décision
Perceptron

Données linéairement séparables

Un échantillon S = {(x 1 , y 1 ), . . . , (x n , y n )} ⊂ (X × Y )n est linéairement


séparable s’il existe un classifieur linéaire qui classe correctement tous les
exemples de S.

Exemples :
S = {((0, 0), −1), ((1, 0), 1), ((0, 1), −1)} est linéairement séparable.
S = {((0, 0), −1), ((1, 0), 1), ((0, 1), 1), ((1, 1), −1)} n’est pas linéairement
séparable (XOR).
Classification, Apprentissage, Décision
Perceptron

Perceptrons

I Perceptrons (Rosenblatt 1958, Minsky/Papert 1969) : généralisation d’un


modèle plus simple proposé par (McCulloch/Pitts neurons, 1942)

I un perceptron à d entrées est décrit par un vecteur de pondération




w = (w1 , . . . , wd ) ∈ Rd , un seuil θ ∈ R et permet de calculer la fonction
suivante :
(
+1 si x1 w1 + x2 w2 + . . . + xd wd ≥ θ
(x1 , . . . , xd ) 7−→ y =
−1 si x1 w1 + x2 w2 + . . . + xd wd < θ
Classification, Apprentissage, Décision
Perceptron

Perceptrons

I pour plus de commodité : remplacer le seuil par un poids


supplémentaire (biais) b = −θ


I un perceptron avec un vecteur de pondération w et un biais b effectue
le calcul suivant :
d
X −
→ − →
(x1 , . . . , xd ) 7−→ y = sgn(b + (wi xi )) = sgn(b + h w , x i)
i=1

+1 si z ≥ 0
avec sgn(z) =
−1 si z < 0
Remarques :
I Les isométries et les homothéties preservent la séparabilité
I il existe une infinité d’hyperplans séparant des données séparables...
Classification, Apprentissage, Décision
Perceptron

Perceptrons : interprétation géométrique



I données x = (x1, . . . , xd )
−→ ∈ un espace de dimension d

→ − →
I points vérifiants b + h w , x i = 0


−→ hyperplan défini par b et w

→ − →
I points vérifiants b + h w , x i > 0
−→ points d’un coté de l’hyperplan

→ − →
I points vérifiants b + h w , x i < 0
−→ points de l’autre coté de l’hyperplan

I un perceptron divise l’espace des


données en deux demi-espaces
−→ situés de part et d’autre de
l’hyperplan
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron


I les perceptrons peuvent être automatiquement adaptés à des taches
d’apprentissage ⇒ Apprentissage supervisé : Classification
I algorithme d’apprentissage du perceptron :
Données :
• un ensemble de données S = {(x 1 , y 1 ), . . . , (x n , y n )}, avec pour tout i
xi ∈ Rd et y i ∈ {−1, +1}
• Si yi = +1 on dit que xi est un exemple positif. Inversement, si yi = −1
on dit que xi est un exemple négatif.
Tache :
• générer un perceptron qui retourne 1 pour tous les exemples de
positifs et −1 pour les exemples négatifs.
I évidemment, il y a des cas dans lesquels l’algo d’apprentissage du
perceptron n’est pas capable de résoudre le problème de classification
−→ exemple : (xi , +1) ∈ S et (xj , −1) ∈ S avec xi = xj
−→ données non linéairement séparables
−→ Il existe des solutions pour gérer cela (prochains chapitres)
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron


I Lemme (séparabilité stricte) :
Si ∃ un perceptron qui classe parfaitement les données d’apprentissage,
alors ∃ un perceptron qui classe ces données sans qu’aucune ne soit

→ − →
sur la frontière de décision, b + h w , x i 6= 0
Preuve :


Soit (b, w ) un perceptron qui classe parfaitement toutes les données
d’apprentissage. D’où
( −


→ − → ≥ 0 ∀ ( x , +1) ∈ S
b + hw , x i −

< 0 ∀ ( x , −1) ∈ S

→ −→ − →
Soit  = min{−(b + h w , x i)|( x , −1) ∈ S}. Alors :
  −

 ≥ > 0 ∀ ( x , +1) ∈ S
 −
→ −→ 2
b + + hw , x i
2  ≤ −  < 0 ∀ (− →
x , −1) ∈ S
2
 −→
Ainsi le perceptron (b + , w ) prouve le lemme.
2
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i

augmenter b
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
• augmenter b

augmenter b
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
• augmenter b

augmenter b
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
• augmenter b
• Si xi > 0 augmenter wi
• Si xi < 0 diminuer wi

augmenter w
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
• augmenter b
• Si xi > 0 augmenter wi
• Si xi < 0 diminuer wi

augmenter w
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron



I Erreur de classification de ( x , +1) ∈ S

→ − →
−→ b + h w , x i < 0


I Comment peut-on modifier b et w pour
remédier à cette erreur

→ −→
−→ augmenter b + h w , x i
• augmenter b
• Si xi > 0 augmenter wi
• Si xi < 0 diminuer wi

→ − →
I Algorithme : ajouter x à w et 1 à b
−→ Procéder par analogie pour les


exemples négatifs x ∈ N
augmenter w
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron


Première version

Algorithme d’apprentissage du Perceptron


Entrée : S = {(x 1 , y 1 ), . . . , (x n , y n )}, un échantillon Rd × {−1, +1}
linéairement séparable


w0 = 0 ∈ Rd , k = 0
Répéter
Pour i = 1 à n
Si hwk , x i i + b < 0 et y i = +1 alors
wk +1 = wk + x i
k =k +1
Si hwk , x i i + b ≥ 0 et y i = −1 alors
wk +1 = wk − x i
k =k +1
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : wk
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron : Exemple

S = {((1, 0), −1), ((1, 1), −1), ((0, 1), +1)}

−→ exercice
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron : Convergence

I Lemme :


Si l’algorithme du perceptron converge, alors le perceptron (b, w )
obtenu classe parfaitement tous les exemples d’apprentissage.
I Théorème (Convergence) :
Si ∃ un perceptron qui classe correctement toutes les données
d’apprentissage, alors l’algorithme du perceptron converge.

I Lemme :
Si au cours de l’exécution de l’algorithme du perceptron on rencontre
deux fois le même vecteur de pondération, alors les données
d’apprentissage utilisées ne sont pas linéairement séparables.
I Lemme :
Si l’algorithme du perceptron avec un biais b = 0 est exécuté sur un jeu
de données non linéairement séparable, alors le même vecteur de
pondération se produira au moins deux fois .
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron : Convergence


I Lemme (Complexité) :
Si les n données d’apprentissage sont linéairement séparables, alors le
nombre d’itérations maximal de l’algorithme du perceptron est égale à
(n + 1)2 2(n+1) log(n+1)

I temps d’exécution : complexité exponentielle


7
→ autres implémentations - complexité O(n 2 ) -
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du perceptron

I comment peut-on déterminer un “bon" perceptron si la tâche


d’apprentissage ne peut pas être résolue parfaitement

I “bon" dans le sens d’un perceptron avec un nombre d’erreurs minimal

I l’algorithme du perceptron : le nombre d’erreurs ne décroit pas de façon


monotone durant la phase d’apprentissage

I idée : mémoriser le meilleur vecteur de pondération rencontré au cours


de l’exécution

I les perceptrons ne peuvent apprendre que des problèmes linéairement


séparables

I contre-exemple : XOR(x1 , x2 )
exemples positifs : {(0, 1), (1, 0)}, exemples négatifs : {(0, 0), (1, 1)}

I un réseau de neurone associant plusieurs perceptrons est plus puissant


Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du Perceptron : données complétées


I Pour simplifier les calculs, on utilise souvent (toujours !) un trick
mathématique pour ne pas trainer tout le temps le scalaire b.
I L’idée est de rajouter une dimension : si nos données sont de dimension
d, donc dans Rd , on va faire comme si elles étaient dans Rd+1 et quelles
avaient toutes 1 en dernière coordonnée.
I Du coup, on considère que w est aussi de dimension d + 1 et la
dernière coordonnées de w est b.
I Mathématiquement : d
X
f (x) = signe(< w, x > +b) = sgn( wi xi + b)
i=1
d
X
= sgn( wi xi + b · 1)
i=1
d+1
X
= sgn( wi xi ) avec wd+1 = b et xd+1 = 1
i=1

= sgn(< (w1 , . . . , wd , b), (x1 , . . . , xd , 1) >)


On dit que les données sont complétées si elles sont dans Rd+1
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du Perceptron (Rosenblatt, 1958)


Deuxième version

Soit S ⊂ Rd+1 × {−1, +1} un échantillon linéairement séparable.

Soit w le classifieur linéaire courant.


I Si (x, +1) ∈ S est mal classé, hw, xi < 0 et il faudrait augmenter hw, xi,
I si (x, −1) ∈ SN est mal classé, hw, xi ≥ 0 et il faudrait diminuer hw, xi,

Idée : prendre wnew = w + x · y


Dans le premier cas, on a hwnew , xi = hw + x · (+1), xi = hw, xi + ||x||2 ;
Dans le second cas, on a hwnew , xi = hw + x · (−1), xi = hw, xi − ||x||2 .
Classification, Apprentissage, Décision
Perceptron

Algorithme d’apprentissage du Perceptron


Première version améliorée

Algorithme d’apprentissage du Perceptron


Entrée : S = {(x 1 , y 1 ), . . . , (x n , y n )}, un échantillon Rd+1 ×{−1, +1}
complété et linéairement séparable


w0 = 0 ∈ Rd+1 , k = 0
Répéter
Pour i = 1 à n
Si y i hwk , x i i ≤ 0 alors
wk +1 = wk +y i x i
k =k +1
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : wk
Classification, Apprentissage, Décision
Perceptron

Exercice

Utilisez l’algorithme du perceptron pour séparer l’échantillon


{((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Dessinez l’hyperplan obtenu.

k wk x k mal classé yk
0 000 001 -1
1 0 0 -1 ... ...
... ... ... ...
Classification, Apprentissage, Décision
Perceptron

Propriétés

I L’algorithme du Perceptron est une procédure on-line, par correction


d’erreurs (error-driven).

I L’algorithme est correct : lorsqu’il converge, l’hyperplan retourné sépare


les données fournies en entrée

I L’algorithme est complet : si S est linéairement séparable, l’algorithme


converge.

I Dans le pire des cas, le nombre d’itérations est égal à


(n + 1)2 2(n+1) log(n+1) . Complexité exponentielle !

I En pratique, on se limite souvent à un nombre d’itérations fixé par


avance.

I Très mauvaise tolérance au bruit...


Classification, Apprentissage, Décision
Perceptron

Forme duale de l’algorithme du perceptron

Remarque : l’hypothèse finale est une combinaison linéaire des exemples


d’apprentissage.
Xn
w= αi y i x i
i=1

Les nombres αi sont positifs et égaux au nombre de fois où une mauvaise


classification de x i a entraîné une mise à jour du perceptron. Ils peuvent être
vus comme une représentation duale de la solution :
n
! n
!
X i i
X i i
f (x) = sgn(hw, xi) = sgn h αi y x , xi = sgn αi y hx , xi .
i=1 i=1
Classification, Apprentissage, Décision
Perceptron

Forme duale de l’algorithme du perceptron

entrée : S = {(x 1 , y 1 ), . . . , (x n , y n )}, un échantillon complété


linéairement séparable


α = 0 ∈ Rn
répéter
Pour i = 1 à n
Si y i ( nj=1 αj y j hx j , x i i)≤ 0 alors
P

αi = αi + 1
FinSi
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : α
Classification, Apprentissage, Décision
Perceptron

Exercice

Utilisez l’algorithme du perceptron pour séparer l’échantillon


{((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. Dessinez l’hyperplan obtenu.

k αk x k mal classé yk
0 0000 001 -1
1 1000 ... ...
... ... ... ...
Classification, Apprentissage, Décision
Perceptron

Propriétés de l’algorithme dual

I dans la représentation duale, le nombre de paramètres de la solution ne


dépend pas de la dimension de l’espace dans lequel les xi sont plongés,

I les exemples d’apprentissage ne sont pris en compte par l’algorithme


que par l’intermédiaire de leurs produits scalaires.

I On appelle Matrice de Gram la matrice G = (hx i , x j i)1≤i,j≤l : elle suffit


à trouver une solution.
Classification, Apprentissage, Décision
Perceptron

Extensions

1. Plongements non linéaires

2. Perceptrons linéaires avec couches cachées

3. Perceptrons non linéaires (avec couches cachées)

4. Séparateurs linéaires optimaux - Machines à Vecteurs Supports ou


Séparateurs à vaste Marge (SVM)

5. Méthodes à noyaux
Classification, Apprentissage, Décision
Machines à vecteur de support

Classication, Apprentissage, Décision

Chapitre sixième : Machine à Vecteurs de


Support (SVM)

Stéphane Ayache, Cécile Capponi, François Denis, Rémi Eyraud,


Hachem Kadri, Liva Ralaivola

Master 2 IS-IN
Classification, Apprentissage, Décision
Machines à vecteur de support

Plan

Introduction

Arbre de décision, Random Forest, & k-ppv

Validation d’un apprentissage & Clustering

Perceptron

Machines à vecteur de support

Deep Learning

Theorie de l’apprentissage
Classification, Apprentissage, Décision
Machines à vecteur de support

Plan

Introduction

Arbre de décision, Random Forest, & k-ppv

Validation d’un apprentissage & Clustering

Perceptron

Machines à vecteur de support

Deep Learning

Theorie de l’apprentissage
Classification, Apprentissage, Décision
Machines à vecteur de support

Rappel : algorithme d’apprentissage du Perceptron

Algorithme d’apprentissage du Perceptron


Entrée : S = {(x 1 , y 1 ), . . . , (x n , y n )}, un échantillon linéairement séparable
de Rd+1 × {−1, +1}


w0 = 0 ∈ Rd+1 , k = 0
Répéter
Pour i = 1 à n
Si y i hwk , x i i ≤ 0 alors
wk +1 = wk + y i x i
k =k +1
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : wk
Classification, Apprentissage, Décision
Machines à vecteur de support

Entre ces deux solutions, laquelle est la meilleure ?


Classification, Apprentissage, Décision
Machines à vecteur de support

La notion de marge

On peut multiplier l’équation hw, xi + b = 0 d’un hyperplan par un réel non


nul sans modifier l’hyperplan qu’elle définit.
On peut donc supposer que w vérifie ||w|| = 1.
Dans ce cas, la distance d’un exemple (x, y ) à un hyperplan séparateur est
égal à y (hw, xi + b).

d(M, H) = y M hw, x M − x H i
= y M (hw, x M i − hw, x H i)
= y M (hw, x M i + b − hw, x H i − b)
= y M (hw, x M i + b)

puisque hw, x H i + b = 0.
Classification, Apprentissage, Décision
Machines à vecteur de support

Complexité de l’algorithme et marge

Théorème (Novikoff) : Soit S = {(x 1 , y 1 ), . . . , (x n , y n )} un échantillon


d’apprentissage. Supposons que
I ∀i, ||x i || ≤ 1 et
I ∃w, γ > 0 tels que ∀i, y i (hw, x i i) ≥ γ.
Alors, le nombre d’erreurs (y i (hwk , x i i) ≤ 0) commises pendant l’exécution
de l’algorithme est au plus égal à (2/γ)2 .
Remarques :
I γ est une borne inférieure de la marge du problème
I Quelles que soient les données, on peut toujours se ramener au moyen
d’une homothétie-translation au cas où Max||x i || = 1.
Classification, Apprentissage, Décision
Machines à vecteur de support

Complexité de l’algorithme et marge (suite)

S = {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}.

Au moyen d’une
√ translation de vecteur (−1/2, −1/2) suivie d’une homothétie
de rapport 2, on obtient l’échantillon équivalent
√ √ √ √ √ √ √ √
2
S = {((− 2
, − 22 ), −1), ((− 22 , 22 ), 1), (( 22 , − 22 ), 1), (( 22 , 22 ), 1)}.

On a bien Max||x i || = 1. On vérifie que la marge du problème est égale à 1/2.

Le théorème prédit que le nombre de corrections de l’algorithme est inférieur


ou égal à 16.
Classification, Apprentissage, Décision
Machines à vecteur de support

Retour sur la notion de marge


Soit S un échantillon linéairement séparable et soit H un hyperplan
séparateur, d’équation hw, xi + b = 0.
On peut modifier linairement w et b tel que le point M le plus proche de H
satisfasse :

1 si M est positif
f (x M ) = hw, x M i + b = .
−1 sinon.

Dans ce cas,
I ||w|| n’est plus égal à 1 et la marge de H est égale à 1/||w|| et
I tous les points de S vérifient yf (x) ≥ 1.
Classification, Apprentissage, Décision
Machines à vecteur de support

Calcul de la marge (exemple)


Soit S = {((0, 1), +), ((2, 0), −)}.
La droite d’équation f (x1 , x2 ) = −x + x2 − 1/2 = 0 sépare S.
On a f (0, 1) = 1/2 et f (2, 0) = −5/2.
On normalise l’équation en la multipliant par 2 : −2x1 + 2x2 − 1 = 0.
√ √
w = (−2, 2), ||w|| = 8=2 2

1 2
et la marge est égale à √
2 2
= 4
.
Classification, Apprentissage, Décision
Machines à vecteur de support

Séparateurs linéaires optimaux

Soit S = {(x 1 , y 1 ), . . . , (x n , y n )}, x i ∈ R d+1 et y i ∈ {−1, +1} un échantillon


linéairement séparable.
Parmi l’infinité de séparateurs linéaires, on cherche celui qui maximise la
marge.
1
La marge d’un séparateur définit par un vecteur w étant ||w|| , on cherche le
w tel que ||w|| est minimal (et qui sépare correctement les données).

On peut donc formuler le perceptron à vaste marge par le problème


d’optimisation quadratique convexe suivant :

Minimiser ||w||2
sous les contraintes

y i hw, x i i ≥ 1 pour tout i = 1 . . . n


Classification, Apprentissage, Décision
Machines à vecteur de support

Séparateurs linéaires optimaux

Soit S = {((0, 0), −1), ((0, 1), 1), ((1, 0), 1), ((1, 1), 1)}. On a
Scomplet = {((0, 0, 1), −1), ((0, 1, 1), 1), ((1, 0, 1), 1), ((1, 1, 1), 1)}.

Le problème est donc de trouver w = (w1 , w2 , b) tel que :

Minimiser w12 + w22 + b2


sous les contraintes

−b ≥ 1, w2 + b ≥ 1, w1 + b ≥ 1, w1 + w2 + b ≥ 1

La seule solution est w1 = w2 = 2 et b = −1.


Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal
Soit S = {(x 1 , y 1 ), . . . , (x n , y n )} ⊂ Rd × {−1, +1} un échantillon linéairement
séparable.
Il existe un unique hyperplan de marge maximale qui est solution du
problème d’optimisation suivant :

 f (x) = hw, xi + b
y i f (x i ) ≥ 1 pour tout i = 1 . . . n
Minimiser ||w||2 .

Optimisation quadratique sous contraintes linéaires (convexes)


Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal (exemple)


Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}.
Le problème d’optimisation à résoudre est :
Minimiser w12 + w22 sous les contraintes

4w1 + 3w2 + b ≥ 1, 2w2 + b ≥ 1, −b ≥ 1.

Les deux dernières équations impliquent w2 ≥ 1 et donc w12 + w22 ≥ 1.


On en déduit la solution optimale : w1 = 0, w2 = 1, b = −1.

Équation de l’hyperplan optimal : y = 1


Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal (cas général)


Minimiser
||w||2
sous les contraintes

y i (hw, x i i + b) ≥ 1 pour tout (x i , y i ) ∈ S

Nouvelles variables (multiplicateurs de Lagrange) : αi ≥ 0


Nouvelle fonction : le Lagrangien
n
1 2 X
L(w, b, α) = w − αi [y i (hw, x i i + b) − 1]
2
i=1

La solution (unique grâce à la convexité) (w ∗ , b∗ , α∗ ) est un point selle du


Lagrangien : L(w, b, α∗ ) est minimal en (w ∗ , b∗ ) et L(w ∗ , b∗ , α) est maximal
en α∗ .
Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal (cas général)

n
1 2 X
L(w, b, α) = w − αi [y i (hw, x i i + b) − 1]
2
i=1
La solution (unique grâce à la convexité) (w ∗ , b∗ , α∗ ) est un point selle du
Lagrangien :
L(w, b, α∗ ) minimal en (w ∗ , b∗ ) ; L(w ∗ , b∗ , α) maximal en α∗ .
Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal (cas général)


On a : Pn
 i i
 ∇w L(w, b, α) = w − i=1 αi y x

 ∂L(w, b, α) = Pn α y i

i=1 i
∂b
Ce qui donne les condition d’optimalité :
 Pn i i
 ∇w L(w, b, α) = 0 ⇒ w = i=1 αi y x

 ∂L(w, b, α) = 0 ⇒ Pn α y i = 0

i=1 i
∂b
Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplans optimaux : problème dual


Pn
Si l’on remplace w par i=1 αi y i x i dans le Lagrangien
n
1 2 X
L(w, b, α) = w − αi [y i (hw, x i i + b) − 1]
2
i=1

On a
n n n n n n
1 XX X X X X
L(α) = αj αi y i y j hx j , x i i − αi y i αj y j hx j , x i i − b αi y i + αi
2
i=1 j=1 i=1 j=1 i=1 i=1

Ce qui donne
n n
1X i j X
L(α) = y y αi αj hx i , x j i
αi −
2
i=1 i,j=1

qu’on doit maximiser sous les contraintes ni=1 αi y i = 0 et αi ≥ 0.


P

I Seuls les produits scalaires hxi , xj i sont nécessaires pour trouver


l’hyperplan optimal.
Retrouver w ∗ à partir des αi∗ : w ∗ = ni=1 αi∗ y i x i
P
I

I Calcul de b∗ à partir d’un vecteur support : hw ∗ , x i i + b∗ = y i .


Classification, Apprentissage, Décision
Machines à vecteur de support

Problème dual (exemple)


Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}.
n n
X 1X
L(α) = αi − yi yj αi αj hxi , xj i
2
i=1 i,j=1

1
= α1 + α2 + α3 − (25α12 + 4α22 + 12α1 α2 )
2
qu’on doit maximiser sous les contraintes

α1 + α2 − α3 = 0 et αi ≥ 0 pour i = 1, 2, 3.
Classification, Apprentissage, Décision
Machines à vecteur de support

Hyperplan optimal : propriétés


On appelle vecteur support toute donnée x i telle que αi∗ 6= 0.
Soit SV l’ensemble des vecteurs supports de S.
Propriétés
I Si x i ∈ SV , hw ∗ , x i i + b∗ = y i
I Si x i 6∈ SV , la contrainte correspondante n’est pas active,
I Les problèmes d’optimisation associés à S et à SV ont la même
solution.
Pn ∗ i
i=1 αi y = 0
I
Pn
I w = i=1 αi∗ y i x i

La solution s’exprime en fonction des vecteurs supports


Classification, Apprentissage, Décision
Machines à vecteur de support

Exemple
Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0), −1)}. On a trouvé

w ∗ = (0, 1) et b∗ = −1.
Pn ∗ i ∗ Pn ∗ i i
Si l’on pose i=1 αi y = 0 et w = i=1 αi y x , on trouve

 α1 + α2 − α3 = 0
4α1 =0
3α1 + 2α2 =1

On trouve
α1 = 0, α2 = 1/2 et α3 = 1/2
Les vecteurs supports sont x 2 et x 3 .
Classification, Apprentissage, Décision
Machines à vecteur de support

Et lorsque les données ne sont pas séparables ?


I Trouver le classifieur linéaire qui minimise le nombre d’erreurs est un
problème NP-difficile.
I L’algorithme du Perceptron oscille, changeant d’hypothèses à chaque
présentation d’un contre-exemple sans se stabiliser sur une solution
intéressante.
Idée 1 : se soucier davantage de la confiance avec laquelle la plupart des
exemples sont correctement classés plutôt que du nombre d’exemples mal
classés.

→ maximiser la marge d’un séparateur linéaire en tolérant un nombre limité


d’exceptions : notion de marge souple (soft margin). (pas dans ce cours)

Idée 2 : plonger les données dans un espace de plus grande dimension où


elles deviendraient linéairement séparables.
Classification, Apprentissage, Décision
Machines à vecteur de support

Plongements non linéaires


Classification, Apprentissage, Décision
Machines à vecteur de support

Comment réaliser un plongement des données ?


Pour tout algorithme d’apprentissage ne faisant intervenir que le produit
scalaire des données
perceptron, séparateur optimal, etc.
il suffit de connaître la matrice de Gram G = (hx i , x j i)1≤i,j≤n pour construire
le classifieur linéaire correspondant :
n
X
f : x 7→ signe( αi y i hx, x i i).
i=1

Soit Φ : X → Y une fonction de plongement dans un espace Y avec produit


scalaire. On obtiendra un classifieur linéaire (dans l’espace de plongement)
défini par :
Xn
f : x 7→ signe( αi y i hΦ(x), Φ(x i )i).
i=1
Classification, Apprentissage, Décision
Machines à vecteur de support

Kernel trick
On appelle noyau toute fonction k : X × X → R qui peut être interprétée
comme un produit scalaire dans un plongement Φ :

k (x, x 0 ) = hΦ(x), Φ(x 0 )i


On peut appliquer les algorithmes du perceptron et de séparation optimale
avec marges en remplaçant

hx i , x j i par k (x i , x j ).

On obtient alors un classifieur


n
X
f : x 7→ signe( αi y i k (x, x i ))
i=1

linéaire dans l’espace de plongement (avec toutes les garanties associées)


et non linéaire dans l’espace initial.
Classification, Apprentissage, Décision
Machines à vecteur de support

Perceptron à noyau

entrée : S = {(x 1 , y 1 ), . . . , (x n , y n )}, un échantillon complété


linéairement séparable


α = 0 ∈ Rn
répéter
Pour i = 1 à n
Si y i ( nj=1 αj y j k (x j , x i )) ≤ 0 alors
P

αi = αi + 1
FinSi
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : x 7→ signe( i αi y i k (x, x i ))
P
Classification, Apprentissage, Décision
Machines à vecteur de support

Exemples de noyaux :
Noyau polynomial homogène
d
!p
0
X
d
X = R , k (x, x ) = xi xi0
i=1

Noyau polynomial
d
!p
X
X = Rd , k (x, x 0 ) = (hx, x 0 i) + c)p = xi xi0 + c
i=1

Où p et c sont les paramètres du noyau.


Noyau gaussien :
||x − x 0 ||2
 
k (x, x 0 ) = exp −
2σ 2
Où σ est le paramètre du noyau.
La dimension de l’espace de plongement est finie pour les noyaux
polynomiaux et infini (espace de Hilbert) pour le noyau gaussien . . . mais le
plongement est virtuel.
Classification, Apprentissage, Décision
Machines à vecteur de support

Caractérisation des noyaux


Théorème : une fonction k : X × X → R est un noyau ssi pour tout m-uplet
x 1 , . . . , x n d’éléments de X , la matrice de Gram k (x i , x j )1≤i,j≤n est définie
positive, c’est-à-dire que pour tous réels c1 , . . . , cn ,
X
ci cj k (x i , x j ) ≥ 0.
i,j

A retenir : on sait (théoriquement) caractériser les fonctions noyaux et


déterminer un plongement correspondant.
Classification, Apprentissage, Décision
Machines à vecteur de support

402 points générés à partir de 2 paraboles parallèles avec bruit gaussien.


Classification, Apprentissage, Décision
Machines à vecteur de support

Séparateur linéaire optimal avec marges souples : 104 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau quadratique : 38 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau polynomial de degré 3 : 35 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau Gaussien, σ = 1 : 62 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau Gaussien, σ = 0.5 : 64 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau Gaussien, σ = 0.1 : 321 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

Noyau Gaussien, σ = 0.05 : 390 vecteurs supports.


Classification, Apprentissage, Décision
Machines à vecteur de support

The US Postal Service (USPS) database.

I 9298 chiffres manuscrits (7291 pour apprendre, 2007 pour tester)


provenant d’enveloppes postées ou reçues à Buffalo ;
I Chaque chiffre est une image 16 × 16 représenté par un vecteur de
[−1, 1]256 ;
I Les jeu de tests est difficile : 2, 5% d’erreur en moyenne pour un humain ;
I Données disponibles à
http ://www.kernel-machines.org.data.html.
Classification, Apprentissage, Décision
Machines à vecteur de support

Résultats (1) (Schölkopf, Smola)

Classification par SVMs sur les données USPS.


Noyau polynomial : k (x, x 0 ) = (hx, y i/256)p .
Construction de 10 classifieurs (méthode un contre tous).

d 1 2 3 4 5 6 7
erreur % 8,9 4,7 4,0 4,2 4,5 4,5 4,7
Nb. moyen de VSs 282 237 274 321 374 422 491
Classification, Apprentissage, Décision
Machines à vecteur de support

Résultats (2) (Schölkopf, Smola)

Classification par SVMs sur les données USPS.


Noyau gaussien : k (x, x 0 ) = exp(−||x − y ||2 /(256/σ)).
Construction de 10 classifieurs (méthode un contre tous).

c 4,0 2,0 1,2 0,8 0,5 0,2 0,1


erreur % 5,3 5,0 4,9 4,3 4,4 4,4 4,5
Nb. moyen de VSs 266 240 233 235 251 366 722
Classification, Apprentissage, Décision
Machines à vecteur de support

Comparaison des résultats (Schölkopf, Smola)


USPS+ : USPS + un ensemble de chiffres imprimés.

Classifieur Ens. d’App. Erreur sur ens. test


Decision tree, C4.5 USPS 16,2
Linear SVM USPS 8,9
Hard margin SVM USPS 4,6
soft margin SVM USPS 4,0
Virtual SVM USPS 3,2
Virtual SV, local kernel USPS 3,0
Nearest neighbor USPS+ 5,9
Boosted neural net USPS+ 2,6
Human performance USPS 2,5
Classification, Apprentissage, Décision
Deep Learning

To DO
Classification, Apprentissage, Décision
Theorie de l’apprentissage

TO DO

Vous aimerez peut-être aussi