Classification linéaire binaire Un exemple Expressivité des

publicité
Algorithme du perceptron
Algorithme du perceptron
Un exemple
X ⇢ Rn , Y = { 1, 1}
X = R2
Classifieur linéaire défini par w = (1, 2) et
b= 1: ⇢
1
si x1 + 2x2 1 0
f (x1 , x2 ) =
1 sinon.
Par exemple, f (0, 0) = 1 et f (1, 1) = 1.
Hyperplan d’équation x1 + 2x2 1 = 0
Définition. Un classifieur linéaire (ou perceptron) est une fonction de la forme
⇢
1 si hw, xi + b 0
f (x) =
1 sinon.
où
w 2 Rn , b 2 R, et
hw, xi désigne le produit scalaire
entre w et x : si w = (w1 , . . . , wn ) et
P
x = (x1 , . . . , xn ), hw, xi = ni=1 wi xi .
Interprétation géométrique : hw, xi + b = 0 est l’équation d’un hyperplan affine qui
sépare X en deux demi-espaces correspondant aux deux classes.
f (0, 0, 1) =
February 3, 2017
2 / 16
Algorithme du perceptron
0
−0.5
−1
−0.5
0
0.5
x1
1
1.5
2
x3
0 et -1 sinon ;
1 et f (1, 1, 1) = 1
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
3 / 16
Algorithme du perceptron
Expressivité des perceptrons
Données linéairement séparables
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 ?
Cette intuition n’est pas forcément vérifiée en très grande dimension (cas de
classification de textes, par exemple).
S = {((0, 0), 1), ((1, 0), 1), ((0, 1), 1), ((1, 1), 1)} n’est pas linéairement séparable
(XOR).
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)
February 3, 2017
Un échantillon S = {(x1 , y1 ), . . . , (xl , yl )} ⇢ (X ⇥ Y )l 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.
Nous verrons par la suite que plonger les données initiales dans un espace de
grande dimension au moyen d’une transformation non linéaire accroı̂t leur
séparabilité.
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
0.5
On peut toujours supposer que b = 0 en rajoutant une coordonnée, égale à 1 pour
tous les exemples :
f (x1 , x2 , x3 ) = 1 si x1 + 2x2
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
1
x2
Classification linéaire binaire
4 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
5 / 16
Algorithme du perceptron
Algorithme du perceptron
Données linéairement séparables
Remarques
Lemme : Si des données S = SP [ SN sont linéairement séparables, on peut trouver
un hyperplan séparateur tel qu’aucune donnée ne soit sur la frontière de décision.
Preuve:
Soit (w, b) tel que
8x 2 SP , hw, xi + b
Les isométries et les homothéties préservent la séparabilité.
En rajoutant une dimension, on peut supposer que les hyperplans séparateurs
passent par l’origine : ajouter une coordonnée xn+1 = 1 à tous les exemples et
poser wn+1 = b. On parlera d’échantillon complété.
0 et
8x 2 SN , hw, xi + b < 0
Séparer des données linéairement séparables peut être résolu en temps
polynomial par un algorithme de programmation linéaire : chaque exemple (xi , yi )
fournit une contrainte linéaire yi (hw, xi i + b) > 0.
et soit ✏ = min{ (hw, xi + b)|x 2 SN }. Alors:
8
✏
> 0 8 x 2 SP
<
✏
2
hw, xi + b +
2 : ✏ < 0 8 x 2 S
N
2
Il existe une infinité d’hyperplans séparant un échantillon séparable : ils ne sont
pas équivalents du point de vue de l’apprentissage.
Ainsi le classifieur linéaire (w, b + 2✏ ) satisfait le lemme.
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
6 / 16
Algorithme du perceptron
0 et il faudrait diminuer hw, xi,
si y =
1, hwnew , xi = hw, xi
2
February 3, 2017
9 / 16
Algorithme d’apprentissage du Perceptron
Entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété
linéairement séparable de Rn+1 ⇥ { 1, 1}
w0 = 0 2 Rn+1 , k = 0
Répéter
Pour i = 1 à l
Si yi hwk , xi i  0 alors
wk+1 = wk + yi xi
k =k +1
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : wk
Si (x, y ) 2 SP est mal classé, hw, xi < 0 et il faudrait augmenter hw, xi,
si y = 1, hwnew , xi = hw, xi + ||x||2
7 / 16
Algorithme d’apprentissage du Perceptron
Soit S = SP [ SN ⇢ Rn+1 ⇥ { 1, 1} un échantillon complété linéairement séparable.
Soit w le classifieur linéaire courant.
Idée : prendre wnew = w + xy.
February 3, 2017
Algorithme du perceptron
Algorithme d’apprentissage du Perceptron (Rosenblatt, 1958)
si (x, y ) 2 SN est mal classé, hw, xi
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
hw, xi ;
||x||  hw, xi.
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
8 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
Algorithme du perceptron
Algorithme du perceptron
Exercice
Propriétés
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
0
1
...
wk
000
0 0 -1
...
xk mal classé
001
...
...
L’algorithme du Perceptron est une procédure on-line, par correction d’erreurs
(error-driven).
L’algorithme est correct : lorsqu’il converge, l’hyperplan retourné sépare les
données fournies en entrée
yk
-1
...
...
L’algorithme est complet : si S est linéairement séparable, l’algorithme converge.
Dans le pire des cas, le nombre d’itérations est égal à (n + 1)2 2(n+1) log(n+1) .
Complexité exponentielle !
Très mauvaise tolérance au bruit.
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
10 / 16
Algorithme du perceptron
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
11 / 16
February 3, 2017
13 / 16
Algorithme du perceptron
Forme duale de l’algorithme du perceptron
Forme duale de l’algorithme du perceptron
Remarque : l’hypothèse finale est une combinaison linéaire des exemples
d’apprentissage.
l
X
w=
↵i yi xi .
entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété
linéairement séparable
↵ = 0 2 Rl
répéter
Pour i = 1 à l
P
Si yi ( lj=1 ↵j yj hxj , xi i)  0 alors
↵i = ↵i + 1
FinSi
FinPour
Jusqu’à ce qu’il n’y ait plus d’erreurs
Sortie : ↵
i=1
Les nombres ↵i sont positifs et égaux au nombre de fois où une mauvaise
classification de xi a entraı̂né une mise à jour du perceptron. Ils peuvent être vus
comme une représentation duale de la solution :
!
l
X
f (x) = sgn(hw, xi + b) = sgn
↵i yi hxi , xi + b .
i=1
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
12 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
Algorithme du perceptron
Algorithme du perceptron
Exercice
Propriétés de l’algorithme dual
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
0
1
...
↵k
0000
1000
...
xk mal classé
001
...
...
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,
les exemples d’apprentissage ne sont pris en compte par l’algorithme que par
l’intermédiaire de leurs produits scalaires.
yk
-1
...
...
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
On appelle Matrice de Gram la matrice G = (hxi , xj i)1i,jl : elle suffit à trouver
une solution.
February 3, 2017
14 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
Algorithme du perceptron
February 3, 2017
15 / 16
Algorithme du perceptron
Plongements non linéaires
Séparation linéaire après plongement non linéaire
Soit S = {(0, 0), 1; (0, 1), 1; (1, 0), 1; (1, 1), 1}.
On considère le plongement
de R2 dans R3 défini par
(x (1) , x (2) ) = (x (1) , x (2) , x (1) x (2) ).
S = {( (x), y )|(x, y ) 2 S} = {(0, 0, 0), 1; (1, 0, 0), 1; (0, 1, 0), 1; (1, 1, 1), 1}.
S = {(0, 0, 0, 1), 1; (1, 0, 0, 1), 1; (0, 1, 0, 1), 1; (1, 1, 1, 1), 1}.
Algorithme du perceptron
k
0
1
2
3
...
17
wk
0000
0 0 0 -1
1000
0 -1 -1 -1
...
1 1 -3 -1
xk mal classé
0001
1001
1111
1001
...
yk
-1
1
-1
1
...
ce qui conduit
au plan séparateur d’équation x (1) + x (2)
3x (3)
à la courbe séparatrice d’équation x (1) + x (2)
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
16 / 16
1 = 0 dans R3 et
3x (1) x (2)
1 = 0 dans R2 .
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
17 / 16
Algorithme du perceptron
Algorithme du perceptron
Séparation linéaire après plongement non linéaire (suite)
Kernel trick
de R2 dans H, espace muni d’un produit scalaire, vérifiant
On considère un plongement
h (x), (y)iH = 1 + x (1) y (1) + x (2) y (2) + x (1) y (1) x (2) y (2) .
Matrice de Gram de S :
(h (xi ), (xj )iH )1i,j|S|
0
1
B 1
=@
1
1
1
2
1
2
1
1
2
2
Algorithme dual du perceptron
k
0
1
2
3
...
17
f (x) = sgn(
4
X
i=1
(xk ) mal classé
x1
x2
x4
x2
...
nk
0000
1000
1100
1101
...
6443
On appelle noyau toute fonction k : X ⇥ X ! R qui peut être interprétée comme un
produit scalaire dans un plongement :
1
1
2 C
2 A
4
k (x, y ) = h (x), (y)i
Tout algorithme d’apprentissage qui n’utilise que les produits scalaires des données
(matrice de Gram) peut être kernelisé.
Le perceptron à noyau est un classifieur
yk
-1
1
-1
1
...
f : x 7! signe(
l
X
↵i yi k (x, xi ))
i=1
qui est
linéaire dans l’espace de plongement (avec toutes les garanties associées) et
ni yi h (xi ), (x)iH )
non linéaire dans l’espace initial.
= sgn( 6 + 4(1 + x (1) ) + 4(1 + x (2) )
= sgn( 1 + x
(1)
+x
(2)
3x
(1) (2)
x
3(1 + x (1) + x (2) + x (1) x (2) ))
)
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
18 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
Algorithme du perceptron
February 3, 2017
19 / 16
Algorithme du perceptron
Perceptron à noyau
Exemples de noyaux :
Noyau polynomial homogène
n
entrée : S = {(x1 , y1 ), . . . , (xl , yl )}, un échantillon complété
↵ = 0 2 Rl
répéter
Pour i = 1 à l
P
Si yi ( lj=1 ↵j yj k (xj , xi ))  0 alors
↵i = ↵i + 1
FinSi
FinPour
Jusqu’à ce qu’il n’yPait plus d’erreurs
Sortie : x 7! signe( i ↵i yi k (x, xi ))
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
X = R , k (x, y) =
n
X
xi yi
i=1
!d
Noyau polynomial
n
X = R , k (x, y ) =
1+
n
X
xi yi
i=1
Noyau gaussien :
k (x, y ) = exp
✓
||x
2
y ||2
2
!d
.
◆
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.
February 3, 2017
20 / 16
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
February 3, 2017
21 / 16
Algorithme du perceptron
Algorithme du perceptron
Caractérisation des noyaux
Séparation linéaire après plongement non linéaire (suite)
Théorème : une fonction k : X ⇥ X ! R est un noyau ssi pour tout m-uplet x1 , . . . , xm
d’éléments de X , la matrice de Gram k (xi , xj )1i,jm est définie positive, c’est-à-dire
que pour tous réels c1 , . . . , cm ,
X
ci cj k (xi , xj ) 0.
Sur l’exemple précédent, on considère le noyau Gaussien
✓
◆
||x y ||2
k(x, y) = exp
.
2 2
Matrice de Gram de S :
(h (xi ), (xj )iH )1i,j|S|
i,j
A retenir : on sait (théoriquement) caractériser les fonctions noyaux et déterminer un
plongement correspondant.
February 3, 2017
22 / 16
February 3, 2017
24 / 16
Algorithme du perceptron
Exercice
Soit
S = {( 1, 0), 1; (0, 1), 1; (1, 0), 1; (0, 0), 1}
et
k (x, y ) = 1 + x (1) y (1) + x (2) y (2) + (x (1) y (1) )2 .
1
Dessinez S,
2
Appliquez le perceptron à noyau à ce jeu de données,
3
Dessinez la courbe séparatrice dans l’espace initial.
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
1.00
B 0.61
=@
0.61
0.37
0.61
1.00
0.37
0.61
0.61
0.37
1.00
0.61
Algorithme du perceptron à noyau : n = [1, 1, 1, 1]
convergence en 4 étapes
1
0.37
0.61 C
0.61 A
1.00
chaque exemple a été mal classé une et une seule fois
ce qui conduit au classifieur
f (x) = sg( e
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
0
||x||2 /2
+e
((x (1)
1)2 +(x (2) )2 )/2
+e
((x (2)
1)2 +(x (1) )2 )/2
e
((x (1)
François Denis, Hachem Kadri, Cécile Capponi ( Laboratoire Introduction
d’Informatique
à l’apprentissage
Fondamentale automatique
de Marseille Université d’Aix-Marseille)
1)2 +(x (2)
February 3, 2017
1)2 )/2
)
23 / 16
Téléchargement