Vous êtes sur la page 1sur 30

Les réseaux de neurones pour l’apprentissage

ESSEC, le 28 Juin 2002

Réseaux de neurones artificiels

« la rétropropagation du gradient »

S. Canu,
laboratoire PSI, INSA de Rouen
équipe « systèmes d’information pour
l’environnement »

asi.insa-rouen.fr/~scanu
Histoire … Les réseaux de neurones pour l’apprentissage
ESSEC, le 28 Juin 2002

• 1940 : La machine de Turing


• 1943 : Le neurone formel (McCulloch & Pitts)
• 1948 : Les réseaux d'automates (Von Neuman)
• 1949 : Première règle d’apprentissage (Hebb)
• 1958-62 : Le perceptron (Rosenblatt)
• 1960 : L'adaline (Widrow & Hoff)
• 1969 : Perceptrons (Minsky & Papert)
 les limites du Perceptron
 besoin d'architectures + complexes,
Comment effectuer l'apprentissage ? On ne sait pas !
• 1974 : Rétropropagation (Werbos)
 pas de succès !?!?
Histoire … (suite)
Les réseaux de neurones pour l’apprentissage
ESSEC, le 28 Juin 2002

• 1986 : Rétropropagation (Rumelhart & McClelland)


 nouvelles architectures de Réseaux de Neurones
 applications :
- reconnaissance de l’écriture
- reconnaissance/synthèse de la parole
- vision (traitement d’images)

• 1990 : « Société de l’Information »


 nouvelles applications
- recherche/filtrage d’information dans le Web
- extraction d’information / veille technologique
- multimedia (indexation, …)
- data mining
 besoin de combiner différents modèles
Les réseaux de neurones pour l’apprentissage
Plan ESSEC, le 28 Juin 2002

• Rappels :
– Moindres carrés stochastiques
– Algorithmes de gradient
– Perceptron Multicouches

• Principe de la rétropropagation

• Algorithmes de rétropropagation
Les réseaux de neurones pour l’apprentissage
Moindres carrés « stochastiques » ESSEC, le 28 Juin 2002

ADALINE (Widrow Hoff 1960)


n
J( D )   D( xi )  yi 2 et D( xi )  w' xi  b 
i 1
n n
J ( w, b )   w' xi  b  yi 2
  WX   yi 2
i 1 i 1

J ( W ) n
WX  n
 2 WX   yi 
  2 WX   yi ' WX X  

W i 1 W i 1
J
0
W
impossible (’ ! )  méthode itérative :
winit Algorithme itératif de gradient
Répéter
wnew = wold - 
Tant qu ’il reste des mals classés ou que le coût n’évolue plus
Les réseaux de neurones pour l’apprentissage
Algorithme de gradient ESSEC, le 28 Juin 2002

• Illustration dans le plan (w1 ,w2)


Minimum du coût
Lignes d’iso-coût :
J(W) = constante
w2 +

Direction du gradient
J’(W) Le gradient est orthogonal aux lignes
d’iso-coût : argument à la « Taylor »

w1
Les réseaux de neurones pour l’apprentissage
Algorithme de gradient ESSEC, le 28 Juin 2002

• Illustration dans le plan (J(w),w) : la « descente »


de gradient
J(w)

Direction du gradient
J’(W)

Minimum du coût w
Les réseaux de neurones pour l’apprentissage
3 solutions ESSEC, le 28 Juin 2002

J ( W ) n
Le gradient :  2 Wx i   yi ' Wx i xi

W i 1

• Approximation linéaire (Adaline) J ( W ) n


 2 Wx i   yi xi

W i 1

J ( W ) n
• Perceptron : ’=1  2 Wx i   yi xi

W i 1

• Neurone formel : on remplace 


par une fonction  dérivable
ex : (x)=th(x) fonction sigmoïde
J ( W ) n
 2 Wx i   yi ' Wx i xi

W i 1
Les réseaux de neurones pour l’apprentissage
Perceptron Multi-Couches ESSEC, le 28 Juin 2002

• Réseau feedforward
(1986)
x1

xi y

xn 0

• Fonction de transfert tanh(.) (sauf couche de sortie


linéaire)
• Méthode d’apprentissage (supervisé) usuelle :
– rétropropagation du gradient
Les réseaux de neurones pour l’apprentissage
Notations ESSEC, le 28 Juin 2002

• Biais :
– 1
 n0   n0  avec x0=1
yj  f 
  w ji xi  b  

f  w ji xi 

 
 i 1   i 0 

– idem pour toutes les couches (ex : PMC à une couche cachée)
(1)
x0=1 x0 = 1
– W1=[wji]
– W2=[wkj]
xi yk

wji wkj
i=1:n0 j=1:n1 k=1:n2
Les réseaux de neurones pour l’apprentissage
Propagation ESSEC, le 28 Juin 2002

• Calcul des sorties du réseau en propageant


les valeurs de x de couche en couche :
1
2 n0
1 a j1   w ji xi
i 0

 
wji wkj
x j1  f a (j1 )

xi yk n1
2 a k2    wkj x j1
j 0

(1)
xj
 
y k  g a k( 2 )

i=1:n0 j=1:n1 k=1:n2


Les réseaux de neurones pour l’apprentissage
Algorithme de propagation ESSEC, le 28 Juin 2002

Function y = propag(x,w1,w2)

a1 = [x ones(n,1)]*W1;
x1 = tanh(a1);
a2 = [x1 ones(n,1)]*W2;
y = a2;
Parallélisé sur les exemples
(si x est une matrice, ça marche !)
Calcul de l ’erreur Les réseaux de neurones pour l’apprentissage
ESSEC, le 28 Juin 2002

• Fonction de coût :
– on présente un exemple x=[x1... xn0] (avec ydes sortie désirée)
– on calcule la sortie correspondante y =[y1... yn2]

– erreur : ek  ykdes  yk
n


1 2 2
– coût associé à l ’exemple : J ( exemple )  ek
2 k 1

n
– coût global : J  J ( exemple l)
l 1
Les réseaux de neurones pour l’apprentissage
Calcul du gradient ESSEC, le 28 Juin 2002

• Mise à jour de wji et wkj selon une règle delta:


J
w   
w

J J
• Problème = calcul de w ji
et wkj
Les réseaux de neurones pour l’apprentissage
Couche de sortie ESSEC, le 28 Juin 2002

J
wkj
wkj
• Calcul
J
de
J y a 2  pour un exemple fixé
 k k
wkj y k ak2  wkj
xj(1) yk

 
n n1
1 2 des
  a k2    wkj x j1
2
J yk  yk y k  g a k( 2 )
2 k 1 j 0

    1
j=1:n1 k=1:n2
 y kdes  yk g ak( 2 ) x 1 
j

Errk 
J
a k2 
 y des
k  y k   
g  a 2 
k
J
wkj
 Errk .x j1
Les réseaux de neurones pour l’apprentissage
Couche cachée ESSEC, le 28 Juin 2002

J
w ji
wji
• Calcul
J
de 1 1 pour un exemple fixé
J x j a j

w ji x j1 a j1 w ji
xi x j1 

2  n0
J a k
J
 
n2
  2  1 y j1  f a (j 1 ) a j1   w ji xi

x j1
k 0 a k x j i 0

i=1:n0
 
j=1:n1
J
n2
xi
x 1
  Errk wkj f a (j 1 )
j k 0
J
   Err j .xi
J
 
n2
Err j  1   Errk wkj  f  a j1
 w ji
a j  
 k 0 
Les réseaux de neurones pour l’apprentissage
Algorithme de rétropropagation ESSEC, le 28 Juin 2002

Function grad = retropropag(x,yd,w1,w2)


...
a1 = [x ones(n,1)]*W1; x1 = tanh(a1);
a2 = [x1 ones(n,1)]*W2; y = a2;

ERRk = -(yd-y).*(1-y.*y);
GradW2 = [x1 ones(n,1)]'* ERRk ;
ERRj = (w2(1:n2-1,:)*ERRk')'.*(1-x1.*x1);
GradW1 = [x ones(n,1)]'* ERRj ;

w1 = w1 - pas1 .* GradW1;
w2 = w2 - pas2 .* GradW2;
Les réseaux de neurones pour l’apprentissage
Exemple 1/4 ESSEC, le 28 Juin 2002

• x = [0.5 1] ydes = [0.5 1]


• W1=[0.5 0.5 ; 0.5 0.5] (pas de biais)
(1)
x1= •0.5 W2=[1 1 ; 1 1 1]
x y1 = 1.2703

x2 = 1 y2 = 1.2703 a(1)=[0.75 0.75]


x(1)=[0.6351 0.6351]
x2(1)
a(2)=[1.2703 1.2703]
n0=2 n1 =2 n2 =2
y = [1.2703 1.2703]
Les réseaux de neurones pour l’apprentissage
Exemple 2/4 ESSEC, le 28 Juin 2002

ERRk = [0.7703 0.2703]


GradW2 = [0.4893 0.1717 ; 0.4893 0.1717]
ERRj = [0.6208 0.6208]
GradW1 =[0.3104 0.3104 ; 0.6208 0.6208]

x1(1) err1 = 0.7703


x1= 0.5

x2 = 1 err2 = 0.2703

x2(1)
n0=2 n1 =2 n2 =2
Les réseaux de neurones pour l’apprentissage
Exemple 3/4 ESSEC, le 28 Juin 2002

w1 =[0.3448 0.3448 ; 0.1896 0.1896]


w2 =[0.7554 0.9142 ; 0.7554 0.9142]
• MAJ de W1 et W2 y = [0.5242 0.6344]

(1)
x1= •0.5 Nouvelle x
propagation,
1
yetc...
1 = 0.5242

x2 = 1 y2 = 0.6344

x2(1)
n0=2 n1 =2 n2 =2
Les réseaux de neurones pour l’apprentissage
Exemple 4/4 ESSEC, le 28 Juin 2002

• Evolution de y1 et y2
1.3

1.2

1.1

y2
1

0.9

0.8

0.7

0.6
y1
0.5
0 5 10 15
Les réseaux de neurones pour l’apprentissage
Gradient batch / séquentiel ESSEC, le 28 Juin 2002

• 2 façons d ’appliquer l’algorithme de


rétropropagation :

– « batch » :
mise à jour des poids après la présentation de tous les
exemples
• calculs et stockage plus lourds si trop d ’exemples

– séquentiel : (on-line, stochastique)


mise à jour des poids après chaque exemple
• besoin de tirer l ’exemple au hasard
• problèmes de convergence
Les réseaux de neurones pour l’apprentissage
Gradient batch / séquentiel ESSEC, le 28 Juin 2002

• 2 façons d ’appliquer l’algorithme de


rétropropagation :

– « batch » :
mise à jour des poids après la présentation de tous les
exemples
• calculs et stockage plus lourds si trop d ’exemples
Moins de 5000 exemples,
Matlab
– séquentiel : (on-line, stochastique)
mise à jour des poids après chaque exemple
• besoin de tirer l ’exemple au hasard
• problèmes de convergence
plus de 5000 exemples
SNNS, SN, du C
Pas d’apprentissage Les réseaux de neurones pour l’apprentissage
ESSEC, le 28 Juin 2002

• Pas d’apprentissage :
– trop petit = convergence « lente » vers la solution
– trop grand = risque d’oscillations…

heuristiques courantes :
– diminuer le pas d’apprentissage au fur et a mesure
• « à la main »
• en fonction de la forme de la surface d ’erreur
 approximations :
• premier ordre
Rétropropagation avec un moment d’inertie
Delta-Bar-Delta, Rprop, ...
• second ordre
Quickprop
Levenberg Marquard
Les réseaux de neurones pour l’apprentissage
Premier ordre 1/2 ESSEC, le 28 Juin 2002

• Moment d’inertie (Rumelhart et al. 1986)

w ji t   .Errj .xi  w ji t  1 avec ||<1

• Delta-Bar-Delta (Jacobs 1988)


– calcul d ’un « gradient moyen »  ji t   1  Errj .xi   ji t  1
– modification du pas d’apprentissage selon la direction du
gradient par rapport au gradient moyen
 ji t   u si Err j .xi t . ji t  1  0 on accélère

 ji t  1    ji t d si Err j .xi t . ji t  1  0 on freine
  t  sin on
 ji

w ji t    ji t .Errj .xi
Les réseaux de neurones pour l’apprentissage
Premier ordre 2/2 ESSEC, le 28 Juin 2002

• Rprop (Riedmiller and Braun 1993)


– modification du pas d’apprentissage selon la direction du
gradient par rapport au gradient précédent
– on borne le pas d ’apprentissage


 min  ji t u ,max     
si Err j .xi t  Err j .xi t  1  0 on accélère
  

 ji t  1  max  ji t d ,min     
si Err j .xi t  Err j .xi t  1  0 on freine
  ji t  sin on

– un poids n’est modifié que s ’il va « dans le bon sens »



  t sgn Err j .xi
w ji t  1   ji
    
si Err j .xi t  Err j .xi t  1  0
 0 sin on
Les réseaux de neurones pour l’apprentissage
Second ordre 1/2 ESSEC, le 28 Juin 2002

• Développement de Taylor de la fonction de coût :


 2 J 2 J 2 J 
  
 w1
2
w1w2 w1wn 
– H = matrice Hessienne,  2 J 2 J 
  
H   w2 w1 w22 
« le Hessien » de du coût
    
  2 J  2 J 
 J 
J w  h   J ( w )    h  hH w
1   
h  wn w1 wn2 
 w  2

– Calcul du gradient :
J
w  h   J ( w )  hH w
w w

– on cherche h / le gradient soit nul

J
w  h   H 1 w (w) Problème = calcul de H-1
w
Les réseaux de neurones pour l’apprentissage
Second ordre 2/2 ESSEC, le 28 Juin 2002

• Approximation du Hessien :
– hessien = matrice diagonale
J 2 J
w( t )  
w w 2
– Quickprop (Fahlman 1988)
• on évite de calculer H J J
 J w
2 w( t  1 )  w( t )
 w
w 2 w( t )
J
w( t )
w( t )  w( t  1 ) w
J
w( t )  J w( t  1 )
w w

– Il existe d’autres méthodes qui calculent (partiellement)


les informations du 2nd ordre
 méthodes de gradient conjugué
Les réseaux de neurones pour l’apprentissage
Conclusion ESSEC, le 28 Juin 2002

– La rétropropagation est une méthode de gradient

– on a un problème d’optimisation à résoudre,…..


…. Et tous les coups sont bon !

– On a un problème d’optimisation non linéaire convexe


si la fonction coût est quadratique

– Soft : matlab (petits problèmes) - SN (gros problèmes)


Les réseaux de neurones pour l’apprentissage
Bibliographie ESSEC, le 28 Juin 2002

• Neural Networks : a comprehensive


foundation - S. Haykin (Prenctice Hall)
• Neural Networks : a systematic introduction
R. Rojas (Springer)
• The Handbook of Brain Theory and Neural
Networks - M.A. Arbib (MIT Press)
• Self-Organizing Maps - T. Kohonen
(Springer)
• Réseaux Neuronaux et Traitement du
Signal - J. Hérault & C. Jutten (Hermès)
• Backpropagator ’s review :
– des informations sur la rétropropagation
• http://www.dontveter.com/bpr/bpr.html
– un petit tutoriel :
• http://www.dontveter.com/bpr/public2.html