Académique Documents
Professionnel Documents
Culture Documents
Marc Parizeau
Département de génie électrique et de génie informatique
Université Laval
10 septembre 2004
1 Algorithme de rétropropagation
~
Soit le couple (~x(n), d(n)) désignant la ne donnée d’entraı̂nement du réseau où :
~
~x(n) =< x1 (n), . . . , xp (n) > et d(n) =< d1 (n), . . . , dq (n) > (1)
1
2 2 11 ALGORITHME ´
A LG O RITH MDEE RDÉTROPROPAGATION
E R ETRO PRO PAG ATIO N
y0 = −1
y1 wj1 wj0 = θj
..
.
wji !r
yi yj = ϕ ( i=0 wjiyi )
.. wjr
.
yr
FIGdu
F IG . 2 – Modèle . 2neurone
Mod j.èle du neurone j.
– LaSoit E(n)n la
variable représentera
somme des toujours la donnée
erreurs d’entraı̂nement
quadratiques observc’est-à-dire
ees le couple
· sur l’ensembl e C des neurones
contenant un vecteur d’entrées et un vecteur de sorties désirées.
sortie :
– L’objectif de l’algorithme est d’adapter les poids des connexions
1 " 2 du réseau de manière
E(n) =
à minimiser la somme des erreurs sur tous les neurones de sortie.e (n)
2 j∈C j
– L’indice j représentera toujours le neurone pour lequel on veut adapter les poids.
Soit E(n) la somme des erreurs quadratiques observées sur l’ensemble C des neurones de
sortie : La sortie yj (n) du neurone j est d·e nie par :
1X 2
E(n) = e (n) (4)
2 j∈C j
# r $
"
yj (n) = ϕ[vj (n)] = ϕ wji(n)yi (n)
La sortie yj (n) du neurone j est définie par : i=0
E(n)
∂E(n)
∂wji (n)
wji (n)
e2k (n)
X
∂ 12
∂E(n) k∈C
(n)=
∂e∂e(n)
j ∂[d
∂e jj(n)
(n) − yj (n)]
j =
∂yj (n) ∂y (n)
1 ∂e2j (n) j
= ·
2 ∂e (n)
= −1 j
= ej (n)
1.1 Cas de la couche de sortie 5
= −1
h i
1
∂yj (n) ∂
1+e−vj (n)
=
∂vj (n) ∂vj (n)
e−vj (n)
= h i2
1 + e−vj (n)
e−vj (n)
" #
= yj (n)
1 + e−vj (n)
e−vj (n) + 1
" #
1
= yj (n) −v
−
1+e j (n) 1 + e−vj (n)
= yj (n)[1 − yj (n)]
Et finalement :
r
" #
X
∂ wjl (n)yl (n)
∂vj (n) l=0
=
∂wji (n) ∂wji (n)
∂[wji (n)yi (n)]
=
∂wji (n)
= yi (n)
Nous obtenons donc :
∂E(n)
= −ej (n)yj (n)[1 − yj (n)]yi (n) (8)
∂wji (n)
et la règle dite du “delta” pour la couche de sortie s’exprime par :
∂E(n)
∆wji (n) = −η = ηδj (n)yi (n) (9)
∂wji (n)
avec :
δj (n) = ej (n)yj (n)[1 − yj (n)] (10)
qui correspond à ce qu’on appelle le “gradient local”.
– Jusqu’ici, nous avons traité seulement le cas de la couche de sortie ! Il reste maintenant
à faire l’adaptation des poids sur les couches cachées. . .
– Mais le problème est qu’on ne dispose plus de l’erreur observée ! ?
6 1 ALGORITHME DE RÉTROPROPAGATION
e2k (n)
X
∂ 21
∂E(n) k∈C
= (12)
∂yj (n) ∂yj (n)
Notre problème ici, contrairement au cas des neurones de la couche de sortie, est que tous les
ek (n) dans la somme ci-dessus dépendent de yj (n). On ne peut donc pas se débarrasser de
cette somme ! Néanmoins, nous pouvons écrire :
" #
∂E(n) X ∂ek (n)
= ek (n) ·
∂yj (n) k∈C ∂yj (n)
" #
X ∂ek (n) ∂vk (n)
= ek (n) · ·
k∈C ∂vk (n) ∂yj (n)
" #
∂ [dk (n) − ϕ(vk (n))] ∂ [
P
X l wkl (n)yl (n)]
= ek (n) · ·
k∈C ∂vk (n) ∂yj (n)
X
= [ek (n) · (−yk (n)[1 − yk (n)]) · wkj ]
k∈C
Et :
∂E(n)
∆wji (n) = −η = ηδj (n)yi (n) (15)
∂wji (n)
Avec : X
δj (n) = yj (n)[1 − yj (n)] δk (n)wkj (n) (16)
k∈C
On peut démontrer que les équations 15 et 16 sont valides pour toutes les couches cachées.
Notez bien, cependant, que dans le cas de la première couche cachée du réseau, puisqu’il n’y
a pas de couche précédente de neurones, il faut substituer la variable yi (n) par l’entrée xi (n).
wji (n) = wji (n − 1) + ∆wji (n) = wji (n − 1) + ηδj (n)yi (n) (17)
où 0 ≤ α ≤ 1 est un paramètre nommé momentum qui représente une espèce d’inertie dans
le changement de poids.