Idée
On a besoin de savoir comment chaque coefficient profond influence l'erreur en sortie ; on fait remonter l'information depuis la sortie en multipliant à chaque étape par la dérivée locale.
Pourquoi
Quand l'erreur est calculée à la sortie d'une pile de couches, on a besoin de savoir comment chaque poids $W_\ell$ profond influence cette erreur. La rétropropagation fait remonter l'information de la sortie vers l'entrée, couche par couche, en multipliant à chaque étape par la dérivée locale. C'est exactement la règle de la chaîne $(f \circ g \circ h)' = f'(g(h)) \cdot g'(h) \cdot h'$ vue en analyse de spé MPSI, mecanisee sur un graphe d'opérations. Pytorch l'execute automatiquement via loss.backward() ; le PDF rappelle p5 que 'le graphe de calcul est reinitialise à chaque étape forward'. À retenir : la rétropropagation n'est qu'une comptabilité bien tenue. Pas de magie — juste la règle de la chaîne déroulée d'arrière en avant à travers la pile.
Outil
Règle de la chaîne $(f \circ g \circ h)' = f'(g(h)) \cdot g'(h) \cdot h'$ d'analyse MPSI, mecanisee sur un graphe d'opérations.
Formule
$(f \circ g \circ h)'(x) = f'(g(h(x))) \cdot g'(h(x)) \cdot h'(x)$ ; appliquée à une pile : $\frac{\partial \mathcal{L}}{\partial W_\ell} = \frac{\partial \mathcal{L}}{\partial a_L} \prod_{k=\ell+1}^{L} \frac{\partial a_k}{\partial a_{k-1}} \cdot \frac{\partial a_\ell}{\partial W_\ell}$.
Piège
On dérive couche par couche depuis l'entrée vers la sortie et on s'étonne que les gradients des couches profondes soient faux. L'ordre est inversé : la rétropropagation part du gradient de la loss en sortie et le fait remonter couche par couche en multipliant par la dérivée locale — c'est exactement la règle de la chaîne lue de droite à gauche.
Diagramme
graph LR x((x)) --> L1[couche 1] L1 --> L2[couche 2] L2 --> L3[couche 3] L3 --> loss((erreur L))