learn.chetana.fr

Backpropagation et training loop

16 min de lectureAvancé

La boucle d'entraînement : le rituel universel

Tout entraînement deep, du MLP jouet au LLM géant, répète ces cinq pas :

pour chaque batch :
  1. forward   : prédictions = réseau(X_batch)
  2. loss      : erreur = comparer(prédictions, y_batch)
  3. backward  : gradients de la loss pour CHAQUE paramètre   ← backprop
  4. update    : paramètres -= lr × gradients                 ← descente (module 2 !)
  5. zéro      : remettre les gradients à zéro

La backprop : la chain rule, mécanisée

Le réseau est une composition de fonctions : loss(softmax(W₂ · relu(W₁ · x))). La règle de dérivation en chaîne permet de calculer la dérivée de la loss par rapport à chaque W en remontant la chaîne : chaque couche reçoit le gradient de l'aval, calcule sa contribution, transmet à l'amont. Rien de plus — mais appliqué à des millions de paramètres, automatiquement.

La preuve par le code : un réseau qui apprend XOR

XOR est impossible pour un modèle linéaire (aucune droite ne sépare les classes). Deux couches + ReLU suffisent — la démonstration historique de l'utilité de la profondeur :

🐍 À toi de jouer

Les gardiens de la boucle

  • loss qui ne descend pas → learning rate, données, ou bug de shapes ;
  • loss → NaN → learning rate trop grand, ou log(0) non protégé ;
  • train ↓ mais validation ↑ → overfitting : dropout, early stopping, plus de données ;
  • le premier réflexe pro : sur-apprendre volontairement UN batch minuscule. Si le réseau n'y arrive pas, le bug est dans le code, pas dans les hyperparamètres.
🧩 Quiz1/3

Dans la training loop, la backprop correspond à l'étape…

🃏 Flashcards1/4