L'algorithme de rétropropagation du gradient suit la démarche de Widrow-Hoff. Définir une notion d'erreur sur un exemple puis calculer la contribution à cette erreur de chacun des poids synaptique. C'est cette deuxième étape qui n'est pas évidente. Elle est parfois désignée sous le nom de ``Credit Assignment Problem''.
Afin de pouvoir appliquer la méthode du gradient, on a besoin de calculer des dérivées et donc de ``lisser'' les calculs.
On remplace pour cela la fonction à seuil de Heaviside par une fonction
sigmoïde
![]()

Figure 3.13: La fonction sigmoïde
Cette fonction est une approximation indéfiniment dérivable de la fonction à seuil de Heaviside, d'autant meilleure que k est grand. Nous prendrons k=1 dans la suite.
On peut remarquer que la dérivée de la fonction
est simple à
calculer :
![]()
Il est essentiel que ce calcul soit simple, puisqu'il doit être
effectué autant de fois qu'il y a de cellules, à chaque étape de
modification des poids synaptiques. On utilise aussi parfois, pour
cette raison, la fonction th(x) dont la dérivée est égale à
.
On suppose maintenant que la sortie de chaque neurone est calculée à l'aide de cette fonction :
![]()
On considère un réseau comprenant q+1 couches numérotées de 0 à q. On suppose que le seuil de chaque cellule est nul (c'est-à-dire qu'il a été remplacé par un coefficient synaptique).
On note

Figure 3.14: Une couche cachée
On a donc :
![]()
L'erreur du réseau pour une entrée
est égale à : ![]()
Nous allons montrer que l'on peut facilement calculer récursivement
les quantités


et
![]()
Les quantités
étant connues,
on peut facilement calculer la contribution à l'erreur des
coefficients

Si maintenant, on applique la méthode du gradient, on trouve donc :
![]()
