0% ont trouvé ce document utile (0 vote)
4 vues4 pages

Algorithme de rétropropagation des erreurs

L'algorithme de rétropropagation permet d'apprendre un réseau de neurones en minimisant l'erreur entre la sortie attendue et la sortie réelle. Utilisant la méthode du gradient, il ajuste les poids et biais du réseau en fonction de la fonction d'erreur. La sensibilité des neurones est calculée pour chaque couche, permettant ainsi une mise à jour efficace des paramètres du réseau.

Transféré par

safae mohssine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues4 pages

Algorithme de rétropropagation des erreurs

L'algorithme de rétropropagation permet d'apprendre un réseau de neurones en minimisant l'erreur entre la sortie attendue et la sortie réelle. Utilisant la méthode du gradient, il ajuste les poids et biais du réseau en fonction de la fonction d'erreur. La sensibilité des neurones est calculée pour chaque couche, permettant ainsi une mise à jour efficace des paramètres du réseau.

Transféré par

safae mohssine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithme de rétropropagation

Cet algorithme permet de réaliser un apprentissage du réseau de neurones.


On cherche à obtenir du réseau une réponse préétablie comme étant correcte.
On dispose d’une base de conaissance de type entrée (p) - sortie attendue
(d). On compare ensuite la sortie (a) à la sortie attendue. On introduit une
fonction e = d−a qui est la fonction d’erreur que l’on va chercher à minimiser
en modifiant les poids du réseau.
Une fois les poids définis par cet algorithme à partir d’exemples connus
de l’utilisateur, on va chercher à extrapoler le réseau, en lui fournissant des
entrées inconnues.

0.1 Méthode du gradient


On cherche une méthode itérative permettant de minimiser une fonction f
(qui correspondra à l’erreur du réseau de neurones).

f : Rn −→ R
x 7−→ f (x)
On cherche à trouver un ∆x tel que f (x + ∆x) < f (x) .
On applique la formule de Taylor à l’ordre 1 en considérant que ∆x est
"petit" :
f (x + ∆x) − f (x) = h5x f |∆xi + o(k∆xk)
En écrivant ∆x = ηy, avec η > 0 un pas fixé arbitrairement, il nous suffit
de trouver un vecteur y qui satifasse l’équation :

ηh5x f |yi < 0

Qui équivaut à :
h5x f |yi < 0 (1)
Ainsi tout vecteur y respectant la relation 1 conviendra. On appelle ce
vecteur la direction de descente. Afin de s’assurer que le produit scalaire
est bien négatif, on choisit y = − 5x f . On obtient alors comme vecteur ∆x :

∆x = −η 5x f (2)
où η est un pas "petit", fixé arbitrairement.

1
En itérant le processus, on fait diminuer f (x).

Il a été démontré que dans le cas d’une fonction f fortement convexe et


lipschitzienne la methode du gradient conduit (au bout d’un nombre infini
d’itération) à trouver le minimum global de la fonction, quel que soit la valeur
du x initial.
Bien que les fonctions considérées ici n’entrent presque jamais dans le
cadre de ces hypothèses, on considérera qu’elles conviennent et on s’assur-
era de manière expérimentale (dans l’algorithme) que la méthode converge
effectivement.

0.2 Rétropropagation des erreurs


On va chercher à minimiser la fonction d’erreur du réseau de neurones.
Plus précisément, on va ici chercher à minimiser l’erreur de la couche k du
perceptron.

0.2.1 Expression de la direction de descente


On utilise les notations suivantes :
m : Nombre de neurones sur la couche k
p : Nombre d’entrées de la couche k
d : Sortie attendue à la dernière couche du réseau
a : Sortie de la dernière couche du réseau
ak ∈ Rm : Sortie de la couche k du réseau
W ∈ Mm,p (R) : Matrice des poids de la couche k,
b ∈ Rm : Vecteur biais de la couche k
f : Fonction d’activation de la couche k, f : R −→ R
   
x1 f (x1 )
Par abus, si f : R −→ R, on notera f  ...  =  ... 
   
xn f (xn )

D’après la construction du perceptron multicouche on a :

ak = f (nk (W, b))

avec
nk (W, b) = W ak−1 − b

2
On peut maintenant définir la fonction d’erreur que l’on va chercher à min-
imiser. On la choisit dépendant uniquement de W puisque qu’on ne s’interesse
ici qu’à modifier les poids de la couche.

F (W, b) = hd − a|d − ai

D’après la méthode du gradient (section 0.1), une itération pour minimiser


F sera de modifier (W, b) en (W, b) + (∆W, ∆b), avec (∆W, ∆b) = −η 5 FW ,
avec η > 0 choisi arbitrairement.

On va maintenant chercher à modifier séparément chaque coefficient wi,j


de la matrice W. Cela revient à modifier le poids de l’entrée j du neurone i.
On a :
∂F
∆wi,j = −η (W, b)
∂wi,j
∂F
Pour calculer ∂wi,j
on peut voir F comme une fonction de nk , et nk une
fonction de W et b. Cela se raduit par l’introduction d’une fonction C et de
l’écriture de F comme une composée :

F = C ◦ nk
nk : Mm,p (R) × Rp −→ Rp
où C : RP −→ R et
W 7−→ W ak−1 − bk

En dérivant cette composée, on a :

∂F ∂C ∂nki
(W, b) = (W, b)
∂wi,j ∂nki ∂wi,j
∂C ∂C k
où ∂nk = ∂n (n (W, b)) .
i i
On va calculer séparément les deux facteurs.

∂nki ∂ 
W ak−1 − bk = ak−1

(W, b) = j
∂wi,j ∂wi,j
∂C
On note le second ski = ∂nk , on le calculera dans la section 0.2.2. On a donc
i
comme expression de ∆wi,j :

∆wi,j = ηski ak−1


j (3)

En refaisant exactement les même calculs en dérivant par rapport à bi (en


s’intéressant donc à la modification du biais), on obtient :

∆bi = −ηski (4)

3
Pour résumer, en réécrivant les relations (3) et (4) sous forme matricielle,
on a obtenu notre direction de descente :
∆W = −ηsk · t ak−1

(5)

∆b = ηsk (6)

0.2.2 Calcul de la sensibilité sk


Soit N le nombre de couches du réseau.
La sensibilité de la dernière couche N est facile à exprimer :
∂C ∂ 
sN N 2
= −2(di − ai )f 0 (nN

i = = (di − f (n i )) i ) (7)
∂nNi ∂n N
i

On peut alors exprimer C :


C(nk ) = f N nN f N −1 · · · f k+1 (nk+1 (f k (nk ))) · · ·


0
nk+1 : Rp −→ Rp 0
Donc en posant , on a D : Rp → R
nk 7−→ W k+1 f k (nk ) − bk+1
telle que :
C = D ◦ nk+1
Donc
k+1 k+1
∂C ∂D ∂nj ∂nj
ski = k
= k+1 k
= sk+1
j
∂ni ∂nj ∂ni ∂nki

Reste à calculer le second facteur de cette expression :


" #
∂nk+1
j ∂ X k+1 k k k+1 0
= wj,l f (nl ) − bk+1
j = wj,i fk (nki )
∂nki ∂nki l

On a donc une relation de récurrence entre sk et sk+1 (d’où le terme "rétro-


propagation"), le premier terme sN étant donné par l’équation (7) :

sk = fk0 (nk ) · tW k+1 sk+1 (8)

sN = −2fN0 (nN )(d − a) (9)

0.2.3 Algorithme d’aprentissage


Les calculs précédents permettent de construire un algorithme d’aprentis-
sage du réseau de neurones. (itération des ∆ trouvés).

Vous aimerez peut-être aussi