Upload
others
View
6
Download
1
Embed Size (px)
Citation preview
Perceptron & Machines a noyauxClassification Avancee
REMI EYRAUD grandement epaule par CECILE CAPPONI,
LIS, Aix-Marseille Universite, CNRSEquipe QARMA
Master 2 TSI-IMOVI
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
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
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
Perceptron
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
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.
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)
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).
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...
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
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).
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 〉
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
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
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
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
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
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)
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)
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 .
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 ) -
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
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
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
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...
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〉
).
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 : α
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.
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)
Machines a Vecteurs de Support
Entre ces deux solutions, laquelle est la meilleure?
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 ||.
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.
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.
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.
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 .
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
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.
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)
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
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)
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 α∗.
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
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 .
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
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.
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.
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.
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.
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 )〉).
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 !
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 ))
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.
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.
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.
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
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
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.
402 points generes a partir de 2 paraboles paralleles avec bruit gaussien.
Separateur lineaire optimal avec marges souples : 104 vecteurs supports.
Noyau quadratique : 38 vecteurs supports.
Noyau polynomial de degre 3 : 35 vecteurs supports.
Noyau Gaussien, σ = 1 : 62 vecteurs supports.
Noyau Gaussien, σ = 0.5 : 64 vecteurs supports.
Noyau Gaussien, σ = 0.1 : 321 vecteurs supports.
Noyau Gaussien, σ = 0.05 : 390 vecteurs supports.
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 !