Backpropagation — remonter la chaîne de la sortie vers l'entrée

Idée

Remonter la chaîne en sens inverse : on part de l'écart final et on regarde de quoi il dépend, étape par étape, jusqu'aux premiers réglages.

Outil

C'est la règle de la chaîne $\frac{df}{dx} = \frac{df}{du} \cdot \frac{du}{dx}$ vue en analyse, étendue à une composition de longueur quelconque.

Formule

Pour la dernière couche d'un réseau (ici $\ell = 2$), on pose $$dZ^{[2]} = \frac{\partial L}{\partial A^{[2]}} \cdot \frac{\partial A^{[2]}}{\partial Z^{[2]}}$$ comme abréviation des deux premiers maillons de la chaîne. Pour une couche plus profonde $\ell$, on définit récursivement $$dZ^{[\ell]} = dZ^{[\ell+1]} \cdot \frac{\partial Z^{[\ell+1]}}{\partial A^{[\ell]}} \cdot \frac{\partial A^{[\ell]}}{\partial Z^{[\ell]}}$$ ce qui simplifie l'écriture des gradients de tous les paramètres de la couche $\ell$. C'est une factorisation, pas un nouvel objet — exactement la même technique qu'isoler un facteur commun en algèbre.

Piège

Backprop = backward = on commence par la dernière couche, pas la première. Pourquoi ? Parce que $\partial L/\partial W^{[1]}$ requiert $\partial L/\partial Z^{[2]}$ (chain rule). Si on calcule W^{[1]} avant, on n'a pas encore Z^{[2]}'s gradient. L'ordre est imposé par la chain rule : sortie → entrée.