La rétropropagation est la méthode que les réseaux de neurones utilisent pour calculer les gradients : de combien la perte changerait si l’on modifiait légèrement chaque poids ou biais. En termes simples, elle indique au modèle quels paramètres ont poussé la prédiction dans la mauvaise direction, et dans quelle mesure.

La version courte est simple : on fait passer le réseau vers l’avant, on mesure l’erreur, puis on remonte à travers le même calcul avec la règle de la chaîne. Cela rend un modèle profond gérable, car chaque couche n’a qu’à fournir une petite dérivée locale.

Ce que calcule la rétropropagation

La rétropropagation ne met pas à jour les paramètres à elle seule. Elle calcule des gradients comme Lw\frac{\partial L}{\partial w} et Lb\frac{\partial L}{\partial b}, où LL est la perte. Un optimiseur comme la descente de gradient utilise ensuite ces gradients pour effectuer la vraie mise à jour.

Si le modèle et la fonction de perte sont différentiables, ou au moins suffisamment différentiables par morceaux pour les méthodes à gradient, la rétropropagation permet de calculer ces gradients efficacement en un seul passage arrière.

Pourquoi la règle de la chaîne est l’idée clé

Considérez un réseau de neurones comme une longue chaîne de calculs. Chaque couche prend une entrée, la transforme, puis transmet le résultat à la suivante. Au moment d’arriver à la perte, l’erreur finale dépend de tous les choix faits auparavant.

La rétropropagation pose une question locale à chaque étape : si cette valeur intermédiaire changeait un peu, comment la perte finale changerait-elle ? Ces effets locaux se multiplient quand on remonte. C’est la règle de la chaîne, formulée simplement.

Exemple de rétropropagation avec un seul neurone

Prenons un neurone avec une seule entrée :

z=wx+bz = wx + b a=σ(z)a = \sigma(z) L=12(ay)2L = \frac{1}{2}(a - y)^2

Ici, xx est l’entrée, ww est le poids, bb est le biais, aa est la prédiction, yy est la cible, et σ\sigma est la fonction sigmoïde.

Prenons

x=2,w=0.5,b=0,y=1.x = 2, \qquad w = 0.5, \qquad b = 0, \qquad y = 1.

Étape 1 : passage avant

Calculons d’abord la somme pondérée du neurone :

z=wx+b=0.52+0=1.z = wx + b = 0.5 \cdot 2 + 0 = 1.

Appliquons maintenant la sigmoïde :

a=σ(1)0.731.a = \sigma(1) \approx 0.731.

Calculons ensuite la perte :

L=12(0.7311)20.036.L = \frac{1}{2}(0.731 - 1)^2 \approx 0.036.

La prédiction est inférieure à la cible, donc la perte est positive.

Étape 2 : passage arrière

Calculons maintenant le gradient par rapport au poids.

On part de la perte et on remonte vers l’intérieur :

La=ay.\frac{\partial L}{\partial a} = a - y.

Pour la sigmoïde,

az=a(1a).\frac{\partial a}{\partial z} = a(1-a).

Et pour la somme pondérée,

zw=x,zb=1.\frac{\partial z}{\partial w} = x, \qquad \frac{\partial z}{\partial b} = 1.

Assemblons maintenant les morceaux :

Lw=Laazzw=(ay)a(1a)x.\frac{\partial L}{\partial w} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial w} = (a-y)a(1-a)x. Lb=Laazzb=(ay)a(1a).\frac{\partial L}{\partial b} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial b} = (a-y)a(1-a).

Remplaçons par les valeurs numériques :

Lb(0.7311)(0.731)(10.731)0.0529\frac{\partial L}{\partial b} \approx (0.731 - 1)(0.731)(1 - 0.731) \approx -0.0529 Lw(0.0529)(2)0.1058.\frac{\partial L}{\partial w} \approx (-0.0529)(2) \approx -0.1058.

Les signes négatifs sont importants. Ils indiquent qu’augmenter légèrement ww ou bb réduirait ici la perte, ce qui correspond bien à la situation puisque la prédiction actuelle est trop faible.

Si l’on utilise la descente de gradient avec un taux d’apprentissage η=0.1\eta = 0.1, alors

wnew=wηLw=0.50.1(0.1058)0.5106w_{\text{new}} = w - \eta \frac{\partial L}{\partial w} = 0.5 - 0.1(-0.1058) \approx 0.5106 bnew=bηLb=00.1(0.0529)0.0053.b_{\text{new}} = b - \eta \frac{\partial L}{\partial b} = 0 - 0.1(-0.0529) \approx 0.0053.

C’est toute l’idée en miniature : passage avant, perte, passage arrière, mise à jour.

Pourquoi la rétropropagation fonctionne pour les réseaux profonds

Dans un réseau plus profond, on fait la même chose couche par couche. La principale différence est que chaque couche cachée influence la perte indirectement via les couches suivantes, donc son gradient contient davantage de facteurs issus de la règle de la chaîne.

La rétropropagation reste pratique parce que chaque couche n’a besoin que de sa dérivée locale et du signal venant de la couche suivante. Il n’est pas nécessaire de redériver tout le réseau depuis le début pour chaque paramètre.

Erreurs fréquentes sur la rétropropagation

Confondre rétropropagation et descente de gradient

La rétropropagation calcule les gradients. La descente de gradient utilise ces gradients pour mettre à jour les paramètres. Les deux sont étroitement liées, mais ce n’est pas la même étape.

Oublier que la perte se trouve à la fin

Le passage arrière commence à partir de la perte, pas d’une couche cachée choisie au hasard. Si l’on perd de vue de quoi dépend la perte, la chaîne de dérivées se casse généralement.

Ignorer le comportement des fonctions d’activation

Certaines fonctions d’activation produisent des gradients très faibles dans certaines régions. Si cela se répète sur de nombreuses couches, l’apprentissage peut devenir lent.

Supposer qu’un seul passage arrière signifie que le modèle a appris

Un seul passage arrière donne un seul ensemble de gradients pour un lot de données. L’entraînement nécessite généralement de nombreuses mises à jour sur de nombreux exemples.

Quand la rétropropagation est utilisée

La rétropropagation est la méthode standard de calcul des gradients pour entraîner de nombreux réseaux de neurones, notamment les perceptrons multicouches, les réseaux convolutionnels, les modèles récurrents et les transformers.

L’optimiseur exact peut changer, et certaines architectures ajoutent des astuces pratiques, mais l’idée centrale reste généralement la même : calculer la perte, propager les gradients vers l’arrière, puis mettre à jour les paramètres pour réduire l’erreur future.

Une façon pratique de s’en souvenir

La rétropropagation est une manière structurée d’attribuer le mérite et la responsabilité à l’intérieur d’un modèle à couches. Si la sortie est fausse, la méthode remonte cette erreur afin que chaque paramètre reçoive un signal sur la façon dont il a contribué.

C’est pourquoi l’expression « comment les réseaux de neurones apprennent » est globalement juste. L’apprentissage se fait par des mises à jour répétées des paramètres, et la rétropropagation est ce qui rend ces mises à jour informées plutôt qu’aléatoires.

Essayez un problème similaire

Gardez le même exemple, mais changez la cible de y=1y = 1 à y=0y = 0. Recalculez Lw\frac{\partial L}{\partial w} et Lb\frac{\partial L}{\partial b}, puis observez comment les signes s’inversent. Ce seul changement rend le rôle de la perte bien plus clair que le simple fait de mémoriser les formules.

Besoin d'aide pour un problème ?

Envoyez votre question et obtenez une solution vérifiée, étape par étape, en quelques secondes.

Ouvrir GPAI Solver →