perceptron & machines a noyaux` - lis lab

68
Perceptron & Machines ` a noyaux Classification Avanc´ ee EMI EYRAUD grandement ´ epaul ´ e par C ´ ECILE CAPPONI , LIS, Aix-Marseille Universit´ e, CNRS Equipe QARMA Master 2 TSI-IMOVI

Upload: others

Post on 02-May-2022

6 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Perceptron & Machines a noyaux` - LIS lab

Perceptron & Machines a noyauxClassification Avancee

REMI EYRAUD grandement epaule par CECILE CAPPONI,

LIS, Aix-Marseille Universite, CNRSEquipe QARMA

Master 2 TSI-IMOVI

Page 2: Perceptron & Machines a noyaux` - LIS lab

Plan

1 Introduction

2 k -plus proches voisin et Mesures de performance

3 Arbres de Decision

4 Classification non-supervisee

5 Perceptron et Machine a Noyau

6 Reseau de neurones

Page 3: Perceptron & Machines a noyaux` - LIS lab

Plan

1 Introduction

2 k -plus proches voisin et Mesures de performance

3 Arbres de Decision

4 Classification non-supervisee

5 Perceptron et Machine a NoyauPerceptronMachines a vecteur de support

6 Reseau de neurones

Page 4: Perceptron & Machines a noyaux` - LIS lab

Perceptron etMachine a Vecteurs de Support (SVM)

Presentation (tres) redevable aux membres de l’equipe QARMA du LIS, en particulier :

Thierry Artiere, Stephane Ayache, Cecile Capponi, Francois Denis,Hachem Kadri, Liva Ralaivola

Page 5: Perceptron & Machines a noyaux` - LIS lab

Perceptron

Page 6: Perceptron & Machines a noyaux` - LIS lab

Classification lineaire binaire

La methode de classification la plus simple et pourtant super efficace !

Donnees

Vecteurs de valeurs numeriques de dimension d (X ⊂ Rd ) avec en plusl’information a apprendre (classification supervisee) consistant en 2 classes(classification binaire) (Y = {−1,+1})

Classifieur lineaire

Un classifieur lineaire (ou perceptron) est une fonction de la forme

f (x) =

{+1 si 〈−→w ,

−→x 〉+ b ≥ 0−1 sinon.

ou- −→w = (w1, . . . ,wd ) est un vecteur (math : −→w ∈ Rd ),- b un nombre reel (math : b ∈ R)- la notation 〈−→w ,

−→x 〉 designe le produit scalaire entre w et x :si −→w = (w1, . . . ,wd ) et −→x = (x1, . . . , xd ),alors 〈−→w ,

−→x 〉 =∑d

i=1 wixi = x1w1 + x2w2 + . . .+ xd wd

Page 7: Perceptron & Machines a noyaux` - LIS lab

Classification lineaire binaire

Interpretation geometrique

〈−→w ,−→x 〉+ b = 0 est l’equation d’un hyperplan qui separe X en deux

demi-espaces correspondant aux deux classes.

Si d = 2 on retrouve l’equation d’une droite :〈−→w ,−→x 〉+ b = w1x1 + w2x2 + b = 0 donne x2 = −w1

w2x1 − b

w2

(a rapprocher de y = ax + b de vos cours de college...).Prenons −→w = (1, 2) et b = −1 :

f (−→x ) = f (x1, x2) =

{1 si x1 + 2x2 − 1 ≥ 0−1 sinon.

Par exemple, f (0, 0) = −1 et f (1, 1) = 1.

Page 8: Perceptron & Machines a noyaux` - LIS lab

Expressivite des perceptrons

Les classifieurs lineaires peuvent sembler a priori tres peu expressifs :pourquoi des donnees naturelles se repartiraient-elles de part etd’autres d’un hyperplan?

Cette intuition n’est pas forcement verifiee en tres grande dimension(cas de classification de videos, par exemple).

Cela suggere de plonger les donnees initiales dans un espace degrande dimension (teasing : on voit ca a la fin de la matinee).

A complex pattern-classification problem, cast in a high-dimensionalspace nonlinearly, is more likely to be linearly separable than in alow-dimensional space, provided that the space is not denselypopulated. (T.M. Cover, 1965)

Page 9: Perceptron & Machines a noyaux` - LIS lab

Donnees lineairement separables

Donnees lineairement separables

Un echantillon (en math : S = {(x1, y1), . . . , (xn, yn)} ⊂ (X × Y )n) estlineairement separable s’il existe un classifieur lineaire qui classecorrectement tous les exemples de S.

Lemme (separabilite stricte)

Si il existe un classifieur qui classe parfaitement les donneesd’apprentissage, alors ∃ un classifieur qui classe ces donnees sansqu’aucune ne soit sur la frontiere de decision, b + 〈−→w ,

−→x 〉 6= 0

Exemples :S = {((0, 0),−1), ((1, 0), 1), ((0, 1),−1)} est lineairement separable.

S = {((0, 0),−1), ((1, 0), 1), ((0, 1), 1), ((1, 1),−1)} n’est pas lineairementseparable (XOR).

Page 10: Perceptron & Machines a noyaux` - LIS lab

Perceptrons

Perceptrons (Rosenblatt 1958, Minsky/Papert 1969) : generalisation d’unmodele plus simple propose par (McCulloch/Pitts neurons, 1942)

Perceptron

Un perceptron avec un vecteur de ponderation −→w et un biais b effectue lecalcul suivant :

(x1, . . . , xd ) 7−→ y = sgn(b +d∑

i=1

(wixi )) = sgn(b + 〈−→w ,−→x 〉)

avec sgn(z) =

{+1 si z ≥ 0−1 si z < 0

Remarques :

Les isometries et les homotheties preservent la separabilite

il existe une infinite d’hyperplans separant des donnees separables...

Page 11: Perceptron & Machines a noyaux` - LIS lab

Perceptrons : interpretation geometrique

donnees −→x = (x1, . . . , xd )

−→ ∈ un espace de dimension d

points verifiants b + 〈−→w ,−→x 〉 = 0

−→ hyperplan defini par b et −→w

points verifiants b + 〈−→w ,−→x 〉 > 0

−→ points d’un cote de l’hyperplan

points verifiants b + 〈−→w ,−→x 〉 < 0

−→ points de l’autre cote de l’hyperplan

un perceptron divise l’espace desdonnees en deux demi-espaces−→ situes de part et d’autre del’hyperplan

Page 12: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Les perceptrons peuvent etre automatiquement adaptes a des tachesd’apprentissage⇒ Apprentissage supervise : Classification

Algorithme d’apprentissage du perceptron

Donnees :• un ensemble de donnees S = {(x1, y1), . . . , (xn, yn)}, avec pour tout ix i = (x i

1, xi2, . . . , x

id ) ∈ Rd et y i ∈ {−1,+1}

• Si y i = +1 on dit que x i est un exemple positif. Inversement, si y i = −1 ondit que x i est un exemple negatif.Tache :• generer un perceptron qui retourne 1 pour tous les exemples de positifs et−1 pour les exemples negatifs.

Evidemment, il y a des cas dans lesquels l’algo d’apprentissage duperceptron n’est pas capable de resoudre le probleme de classification• exemple : (x i ,+1) ∈ S et (x j ,−1) ∈ S avec x i = x j

• donnees non lineairement separables−→ Il existe des solutions pour gerer cela (teasing : principalement les SVMa noyaux et les reseaux de neurones qu’on verra plus tard).

Page 13: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉

Page 14: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉

augmenter b

Page 15: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉• augmenter b

augmenter b

Page 16: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉• augmenter b

augmenter b

Page 17: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉• augmenter b• Si xi > 0 augmenter wi• Si xi < 0 diminuer wi

modifier w

Page 18: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉• augmenter b• Si xi > 0 augmenter wi• Si xi < 0 diminuer wi

modifier w

Page 19: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron

Erreur sur un positif

Erreur de classification de (−→x ,+1) ∈ S

−→ b + 〈−→w ,−→x 〉 < 0

Comment peut-on modifier b et −→w pourremedier a cette erreur?−→ augmenter b + 〈−→w ,

−→x 〉• augmenter b• Si xi > 0 augmenter wi• Si xi < 0 diminuer wi

Algorithme : ajouter −→x a −→w et 1 a b

Erreur sur un negatif

Proceder de maniere analogue pour les exemples negatifs (−→x ,−1)

Page 20: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptronPremiere version

Algorithme d’apprentissage du PerceptronEntree : S = {(x1, y1), . . . , (xn, yn)}, un echantillon Rd × {−1,+1}lineairement separablew =

−→0 ∈ Rd , b = 0

RepeterPour i = 1 a n

Si 〈w , x i〉+ b < 0 et y i = +1 alorsw = w + x i

b = b + 1Si 〈w , x i〉+ b ≥ 0 et y i = −1 alors

w = w − x i

b = b − 1FinPour

Jusqu’a ce qu’il n’y ait plus d’erreursSortie : (w , b)

Page 21: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron : Convergence

Lemme :

Si l’algorithme du perceptron converge, alors le perceptron (b,−→w )obtenu classe parfaitement tous les exemples d’apprentissage.

Theoreme (Convergence)

S’il existe un perceptron qui classe correctement toutes les donneesd’apprentissage, alors l’algorithme du perceptron converge.

Lemme :

Si au cours de l’execution de l’algorithme du perceptron on rencontredeux fois le meme vecteur de ponderation, alors les donneesd’apprentissage utilisees ne sont pas lineairement separables.Lemme :

Si l’algorithme du perceptron avec un biais b = 0 est execute sur un jeude donnees non lineairement separable, alors le meme vecteur deponderation se produira au moins deux fois .

Page 22: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du perceptron : Convergence

Lemme (Complexite) :Si les n donnees d’apprentissage sont lineairement separables, alors lenombre d’iterations maximal de l’algorithme du perceptron est egale a(n + 1)22(n+1) log(n+1)

temps d’execution : complexite exponentielle→ autres implementations - complexite O(n

72 ) -

Page 23: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du Perceptron : donnees completees

Pour simplifier les calculs, on utilise souvent (toujours !) un trickmathematique pour ne pas traıner tout le temps le scalaire b.

Idee

Rajouter une dimension : si nos donnees sont de dimension d , donc dansRd , on va faire comme si elles etaient dans Rd+1 et qu’elles avaient toutes 1en derniere coordonnee.

Du coup, on considere que w est aussi de dimension d + 1 et la dernierecoordonnees de w est b.Mathematiquement :

f (x) = signe(b+ < w , x >) = sgn(b +d∑

i=1

wixi )

= sgn(+b · 1 +d∑

i=1

wixi )

= sgn(d+1∑i=1

wixi ) avec wd+1 = b et xd+1 = 1

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

On dit que les donnees sont completees si elles sont dans Rd+1

Page 24: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du Perceptronn

Soit S ⊂ Rd+1 × {−1,+1} un echantillon lineairement separable.

Soit w le classifieur lineaire courant.

Si (x ,+1) ∈ S est mal classe, 〈w , x〉 < 0 et il faudrait augmenter 〈w , x〉si (x ,−1) ∈ S est mal classe, 〈w , x〉 ≥ 0 et il faudrait diminuer 〈w , x〉

IdeePrendre wnew = w + x · yPour y = +1, on a〈wnew , x〉 = 〈w + x · (+1), x〉 = 〈w , x〉+ 〈x , x〉 = 〈w , x〉+ ||x ||2Pour y = −1, on a〈wnew , x〉 = 〈w + x · (−1), x〉 = 〈w , x〉 − 〈x , x〉 = 〈w , x〉 − ||x ||2

Page 25: Perceptron & Machines a noyaux` - LIS lab

Algorithme d’apprentissage du PerceptronPremiere version amelioree

Algorithme d’apprentissage du PerceptronEntree : S = {(x1, y1), . . . , (xn, yn)}, un echantillon Rd+1×{−1,+1}complete et lineairement separablew =

−→0 ∈ Rd+1

RepeterPour i = 1 a n

Si y i〈w , x i〉 ≤ 0 alorsw = w+y ix i

FinPourJusqu’a ce qu’il n’y ait plus d’erreursSortie : w

Page 26: Perceptron & Machines a noyaux` - LIS lab

Proprietes

L’algorithme du Perceptron est une procedure on-line, par correctiond’erreurs (error-driven).

L’algorithme est correct : lorsqu’il converge, l’hyperplan retourne separeles donnees fournies en entree

L’algorithme est complet : si S est lineairement separable, l’algorithmeconverge.

Dans le pire des cas, le nombre d’iterations est egal a(n + 1)22(n+1) log(n+1). Complexite exponentielle !

En pratique, on se limite souvent a un nombre d’iterations fixe paravance.

Tres mauvaise tolerance au bruit...

Page 27: Perceptron & Machines a noyaux` - LIS lab

Forme duale de l’algorithme du perceptron

Remarque

L’hypothese finale (=le w en sortie) est une combinaison lineaire desexemples d’apprentissage.

w =n∑

i=1

αiy ix i

Les nombres αi sont positifs ou nuls, et sont egaux au nombre de fois ouune mauvaise classification de x i a entraıne une mise a jour duperceptron. Ils peuvent etre vus comme une representation duale de lasolution :

f (x) = sgn(〈w , x〉) = sgn

(〈

n∑i=1

αiy ix i , x〉

)= sgn

(n∑

i=1

αiy i〈x i , x〉

).

Page 28: Perceptron & Machines a noyaux` - LIS lab

Forme duale de l’algorithme du perceptron

entree : S = {(x1, y1), . . . , (xn, yn)}, un echantillon completelineairement separableα =−→0 ∈ Rn

repeterPour i = 1 a n

Si y i (∑n

j=1 αjy j〈x j , x i〉)≤ 0 alorsαi = αi + 1

FinSiFinPour

Jusqu’a ce qu’il n’y ait plus d’erreursSortie : α

Page 29: Perceptron & Machines a noyaux` - LIS lab

Proprietes de l’algorithme dual

Independance de la dimension

Dans la version duale, le nombre de parametres de la solution ne dependpas de la dimension de l’espace dans lequel les x i sont plonges,

La forme duale est donc tres interessante pour des donnees de grandedimension (mais inutile pour des donnees de faible dimension en tres grandnombre)

Matrice de Gram

Remarque : les exemples d’apprentissage ne sont pris en compte parl’algorithme que par l’intermediaire de leurs produits scalaires 〈x i , x j〉On appelle Matrice de Gram la matrice G = (〈x i , x j〉)1≤i,j≤n : elle suffit atrouver une solution.

La matrice de Gram peut-etre calculee une seule fois avant de commencerl’apprentissage.

Page 30: Perceptron & Machines a noyaux` - LIS lab

Extensions

1 Separateurs lineaires optimaux - Machines a Vecteurs Supports ouSeparateurs a vaste Marge (SVM)

2 Methodes a noyaux

3 Plongements non lineaires

4 Perceptrons lineaires avec couches cachees

5 Perceptrons non lineaires (avec couches cachees)

Page 31: Perceptron & Machines a noyaux` - LIS lab

Machines a Vecteurs de Support

Page 32: Perceptron & Machines a noyaux` - LIS lab

Entre ces deux solutions, laquelle est la meilleure?

Page 33: Perceptron & Machines a noyaux` - LIS lab

La notion de marge

La distance d’un point M ∈ Rd a un hyperplan h defini par le vecteur w et lescalaire b tel que 〈w , x〉+ b = 0 est donnee par :

d(M, h) =|〈w ,M〉+ b|||w ||

Dans ce cas, la distance d’un exemple (x , y) a un hyperplan separateur estegal a

y(〈w , x〉+ b)

||w ||.

Page 34: Perceptron & Machines a noyaux` - LIS lab

Complexite de l’algorithme et marge

Theoreme de Novikoff

Soit S = {(x1, y1), . . . , (xn, yn)} un echantillon d’apprentissage. Supposonsque

∀i , ||x i || ≤ 1 et

∃w , γ > 0 tels que ∀i , y i (〈w , x i〉) ≥ γ.

Alors, le nombre d’erreurs (y i (〈wk , x i〉) ≤ 0) commises pendant l’executionde l’algorithme est au plus egal a (2/γ)2.

Remarques :γ est une borne inferieure de la marge du probleme

Quelles que soient les donnees, on peut toujours se ramener au moyend’une homothetie-translation au cas ou Max ||x i || = 1.

Page 35: Perceptron & Machines a noyaux` - LIS lab

Complexite 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 homothetiede rapport

√2, on obtient l’echantillon equivalent

S = {((−√

22 ,−

√2

2 ),−1), ((−√

22 ,√

22 ), 1), ((

√2

2 ,−√

22 ), 1), ((

√2

2 ,√

22 ), 1)}.

On a bien Max ||x i || = 1. On verifie que la marge du probleme est egale a 1/2.

Le theoreme predit que le nombre de corrections de l’algorithme est inferieurou egal a 16.

Page 36: Perceptron & Machines a noyaux` - LIS lab

Retour sur la notion de marge

Soit S un echantillon lineairement separable et soit h un hyperplanseparateur, d’equation 〈w , x〉+ b = 0.On peut modifier lineairement w et b tel que le point M le plus proche de hsatisfasse :

f (xM ) = 〈w , xM〉+ b =

{1 si M est positif−1 sinon. .

Dans ce cas,

La marge de h est egale a 1/||w || et

tous les points de S verifient yf (x) ≥ 1.

Page 37: Perceptron & Machines a noyaux` - LIS lab

Calcul de la marge (exemple)

Soit S = {((0, 1),+), ((2, 0),−)}.La droite d’equation f (x1, x2) = −x + x2 − 1/2 = 0 separe S.

On a f (0, 1) = 1/2 et f (2, 0) = −5/2.

On normalise l’equation en la multipliant par 2 : −2x1 + 2x2 − 1 = 0.

w = (−2, 2), ||w || =√

8 = 2√

2

et la marge est egale a 12√

2=√

24 .

Page 38: Perceptron & Machines a noyaux` - LIS lab

Separateurs lineaires optimaux

Soit S = {(x1, y1), . . . , (xn, yn)}, x i ∈ Rd+1 et y i ∈ {−1,+1} un echantillonlineairement separable.Parmi l’infinite de separateurs lineaires, on cherche celui qui maximise lamarge.La marge d’un separateur definit par un vecteur w etant 1

||w|| , on cherche lew tel que ||w || est minimal (et qui separe correctement les donnees).

Perceptron a vaste marge

Le perceptron a vaste marge est formule par le probleme d’optimisationquadratique convexe suivant :

Minimiser ||w ||2

sous les contraintes

y i〈w , x i〉 ≥ 1 pour tout i = 1 . . . n

Page 39: Perceptron & Machines a noyaux` - LIS lab

Separateurs lineaires optimaux

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

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

Minimiser w21 + w2

2 + 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.

Page 40: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal

Soit S = {(x1, y1), . . . , (xn, yn)} ⊂ Rd × {−1,+1} un echantillon lineairementseparable.

SVM : Separateur a Vaste Marge - Support Vector Machines

Il existe un unique hyperplan separateur de marge maximale qui est solutiondu probleme d’optimisation suivant :

f (x) = 〈w , x〉+ by i f (x i ) ≥ 1 pour tout i = 1 . . . nMinimiser ||w ||2.

Optimisation quadratique sous contraintes lineaires (convexes)

Page 41: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal (exemple)

Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0),−1)}.Le probleme d’optimisation a resoudre est :

Minimiser w21 + w2

2 sous les contraintes

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

Les deux dernieres equations impliquent w2 ≥ 1 et donc w21 + w2

2 ≥ 1.On en deduit la solution optimale : w1 = 0,w2 = 1, b = −1.

Equation de l’hyperplan optimal : x2 = 1

Page 42: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal (cas general)

Probleme initial

Minimiser||w ||2

sous les contraintes

y i (〈w , x i〉+ b) ≥ 1 pour tout (x i , y i ) ∈ S

Theorie de l’optimisation : reformulation du probleme via le Lagrangien

Lagrangien (ou fonction de Lagrange)

L(w , b, α) =12

w2 −n∑

i=1

αi [y i (〈w , x i〉+ b)− 1]

ou αi ≥ 0 (multiplicateurs de Lagrange)

Page 43: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal (cas general)

L(w , b, α) =12

w2 −n∑

i=1

αi [y i (〈w , x i〉+ b)− 1]

La solution (unique grace a la convexite) (w∗, b∗, α∗) est un point selle duLagrangien :

L(w , b, α∗) minimal en (w∗, b∗) ; L(w∗, b∗, α) maximal en α∗.

Page 44: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal (cas general)

On a : ∇w L(w , b, α) = w −

∑ni=1 αiy ix i

∂L(w , b, α)

∂b=∑n

i=1 αiy i

Ce qui donne les condition d’optimalite :∇w L(w , b, α) = 0⇒ w =

∑ni=1 αiy ix i

∂L(w , b, α)

∂b= 0⇒

∑ni=1 αiy i = 0

Page 45: Perceptron & Machines a noyaux` - LIS lab

Hyperplans optimaux : probleme dual

Si l’on remplace w par∑n

i=1 αiy ix i dans le Lagrangien

L(w , b, α) =12

w2 −n∑

i=1

αi [y i (〈w , x i〉+ b)− 1]

On a

L(α) =12

n∑i=1

n∑j=1

αjαiy iy j〈x j , x i〉−n∑

i=1

αiy in∑

j=1

αjy j〈x j , x i〉−bn∑

i=1

αiy i +n∑

i=1

αi

Formulation finale du probleme

L(α) =n∑

i=1

αi −12

n∑i,j=1

y iy jαiαj〈x i , x j〉

qu’on doit maximiser sous les contraintes∑n

i=1 αiy i = 0 et αi ≥ 0.

Seuls les produits scalaires 〈xi , xj〉 sont necessaires pour trouverl’hyperplan optimal.Retrouver w∗ a partir des α∗i : w∗ =

∑ni=1 α

∗i y ix i

Calcul de b∗ a partir d’un vecteur support : 〈w∗, x i〉+ b∗ = y i .

Page 46: Perceptron & Machines a noyaux` - LIS lab

Hyperplan optimal : proprietes

Vecteur de support

On appelle vecteur support toute donnee x i telle que α∗i 6= 0.

Soit SV l’ensemble des vecteurs supports de S.Proprietes

Si x i ∈ SV , 〈w∗, x i〉+ b∗ = y i

Si x i 6∈ SV , la contrainte correspondante n’est pas active,

Les problemes d’optimisation associes a S et a SV ont la memesolution.∑n

i=1 α∗i y i = 0

w∗ =∑n

i=1 α∗i y ix i

La solution s’exprime en fonction des vecteurs supports

Page 47: Perceptron & Machines a noyaux` - LIS lab

Probleme dual (exemple)

Soit S = {((4, 3), 1), ((0, 2), 1), ((0, 0),−1)}.

L(α) =n∑

i=1

αi −12

n∑i,j=1

yiyjαiαj〈xi , xj〉

= α1 + α2 + α3 −12

(25α21 + 4α2

2 + 12α1α2)

qu’on doit maximiser sous les contraintes

α1 + α2 − α3 = 0 et αi ≥ 0 pour i = 1, 2, 3.

Page 48: Perceptron & Machines a noyaux` - LIS lab

Exemple

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

w∗ = (0, 1) et b∗ = −1.

Si l’on pose∑n

i=1 α∗i y i = 0 et w∗ =

∑ni=1 α

∗i y ix i , on trouve

α1 + α2 − α3 = 04α1 = 0

3α1 + 2α2 = 1

On trouveα1 = 0, α2 = 1/2 et α3 = 1/2

Les vecteurs supports sont la deuxieme et la troisieme donnees.

Page 49: Perceptron & Machines a noyaux` - LIS lab

Et lorsque les donnees ne sont pas separables?

Trouver le classifieur lineaire qui minimise le nombre d’erreurs est unprobleme NP-difficile.

L’algorithme du Perceptron (a vaste marge) oscille, changeantd’hypotheses a chaque presentation d’un contre-exemple sans sestabiliser sur une solution interessante.

Idee 1

Se soucier davantage de la confiance avec laquelle la plupart des exemplessont correctement classes plutot que du nombre d’exemples mal classes.→ maximiser la marge d’un separateur lineaire en tolerant un nombre limited’exceptions : notion de marge souple (soft margin).

Idee 2

Plonger les donnees dans un espace de plus grande dimension ou ellesdeviendraient lineairement separables.

Page 50: Perceptron & Machines a noyaux` - LIS lab

Plongements non lineaires

Changement de dimension sans ajout d’information : (x , y)→ (x , y , xy)

hyperplan separateur en dimension 3 d’equation −x − y + 2z + 1/3 = 0ce qui donne le separateur (non-lineaire) dans la dimension initiale−x − y + 2xy + 1/3 = 0.

Page 51: Perceptron & Machines a noyaux` - LIS lab

Comment realiser un plongement des donnees?

Pour tout algorithme d’apprentissage ne faisant intervenir que le produitscalaire des donnees

perceptron, SVM, etc. (avec marges dures ou souples)

il suffit de connaıtre la matrice de Gram G = (〈x i , x j〉)1≤i,j≤n pour construirele classifieur lineaire correspondant :

f : x 7→ signe(n∑

i=1

αiy i〈x , x i〉).

fonction de plongement

Soit Φ : X → Y une fonction de plongement dans un espace Y avec produitscalaire. On obtiendra un classifieur lineaire (dans l’espace de plongement)defini par :

f : x 7→ signe(n∑

i=1

αiy i〈Φ(x),Φ(x i )〉).

Page 52: Perceptron & Machines a noyaux` - LIS lab

Kernel trick

On appelle noyau toute fonction k : X × X → R qui peut etre interpreteecomme un produit scalaire dans un plongement Φ :

k(x , x ′) = 〈Φ(x),Φ(x ′)〉

On peut appliquer les algorithmes du perceptron et de separation optimaleavec marges en remplacant

〈x i , x j〉 par k(x i , x j ).

kernel trick

On obtient alors un classifieur

f : x 7→ signe(n∑

i=1

αiy ik(x , x i ))

lineaire dans l’espace de plongement (avec toutes les garanties associees)et non lineaire dans l’espace initial sans avoir a realiser le plongement !

Page 53: Perceptron & Machines a noyaux` - LIS lab

Perceptron a noyau

entree : S = {(x1, y1), . . . , (xn, yn)}, un echantillon completelineairement separableα =−→0 ∈ Rn

repeterPour i = 1 a n

Si y i (∑n

j=1 αjy jk(x j , x i )) ≤ 0 alorsαi = αi + 1FinSi

FinPourJusqu’a ce qu’il n’y ait plus d’erreursSortie : x 7→ signe(

∑i αiy ik(x , x i ))

Page 54: Perceptron & Machines a noyaux` - LIS lab

Exemples de noyaux

Noyau polynomial homogene

X = Rd , k(x , x ′) =(∑d

i=1 xix ′i)p

Noyau polynomial

X = Rd , k(x , x ′) = (〈x , x ′〉) + c)p =(∑d

i=1 xix ′i + c)p

Ou p et c sont les parametres du noyau.

Noyau gaussien

k(x , x ′) = exp(− ||x−x′||2

2σ2

)Ou σ est le parametre du noyau.

La dimension de l’espace de plongement est finie pour les noyauxpolynomiaux et infini (espace de Hilbert) pour le noyau gaussien . . . mais leplongement est virtuel.

Page 55: Perceptron & Machines a noyaux` - LIS lab

Caracterisation des noyaux

Noyau

Une fonction k : X × X → R est un noyau ssi pour tout m-uplet x1, . . . , xn

d’elements de X , la matrice de Gram k(x i , x j )1≤i,j≤n est definie positive,c’est-a-dire que pour tous reels c1, . . . , cn,∑

i,j

cicjk(x i , x j ) ≥ 0.

A retenir : on sait (theoriquement) caracteriser les fonctions noyaux etdeterminer un plongement correspondant.

Page 56: Perceptron & Machines a noyaux` - LIS lab

The US Postal Service (USPS) database.

9298 chiffres manuscrits (7291 pour apprendre, 2007 pour tester)provenant d’enveloppes postees ou recues a Buffalo ;

Chaque chiffre est une image 16× 16 represente par un vecteur de[−1, 1]256 ;

Le jeu de tests est difficile : 2, 5% d’erreur en moyenne pour un humain ;

Donnees disponibles a

http ://www.kernel-machines.org.data.html.

Page 57: Perceptron & Machines a noyaux` - LIS lab

Resultats (1) (Scholkopf, Smola)

Classification par SVMs sur les donnees USPS.Noyau polynomial : k(x , x ′) = (〈x , y〉/256)p.Construction de 10 classifieurs (methode un contre tous).

d 1 2 3 4 5 6 7erreur % 8,9 4,7 4,0 4,2 4,5 4,5 4,7Nb. moyen de VSs 282 237 274 321 374 422 491

Page 58: Perceptron & Machines a noyaux` - LIS lab

Resultats (2) (Scholkopf, Smola)

Classification par SVMs sur les donnees USPS.Noyau gaussien : k(x , x ′) = exp(−||x − y ||2/(256/σ)).Construction de 10 classifieurs (methode un contre tous).

c 4,0 2,0 1,2 0,8 0,5 0,2 0,1erreur % 5,3 5,0 4,9 4,3 4,4 4,4 4,5Nb. moyen de VSs 266 240 233 235 251 366 722

Page 59: Perceptron & Machines a noyaux` - LIS lab

Comparaison des resultats (Scholkopf, Smola)

Classifieur Ens. d’App. Erreur sur ens. testDecision tree, C4.5 USPS 16,2Linear SVM USPS 8,9Hard margin SVM USPS 4,6soft margin SVM USPS 4,0Virtual SVM USPS 3,2Virtual SV, local kernel USPS 3,0Nearest neighbor USPS+ 5,9Deep neural net USPS+ 2,6Human performance USPS 2,5

USPS+ : USPS + un ensemble de chiffres imprimes.

Page 60: Perceptron & Machines a noyaux` - LIS lab

402 points generes a partir de 2 paraboles paralleles avec bruit gaussien.

Page 61: Perceptron & Machines a noyaux` - LIS lab

Separateur lineaire optimal avec marges souples : 104 vecteurs supports.

Page 62: Perceptron & Machines a noyaux` - LIS lab

Noyau quadratique : 38 vecteurs supports.

Page 63: Perceptron & Machines a noyaux` - LIS lab

Noyau polynomial de degre 3 : 35 vecteurs supports.

Page 64: Perceptron & Machines a noyaux` - LIS lab

Noyau Gaussien, σ = 1 : 62 vecteurs supports.

Page 65: Perceptron & Machines a noyaux` - LIS lab

Noyau Gaussien, σ = 0.5 : 64 vecteurs supports.

Page 66: Perceptron & Machines a noyaux` - LIS lab

Noyau Gaussien, σ = 0.1 : 321 vecteurs supports.

Page 67: Perceptron & Machines a noyaux` - LIS lab

Noyau Gaussien, σ = 0.05 : 390 vecteurs supports.

Page 68: Perceptron & Machines a noyaux` - LIS lab

La Suite

Perceptron : tres fecond !

En plus des SVM a noyau, l’algorithme du perceptron a donne naissance aun autre type d’approche : les reseaux de neurones artificiels !