Dérivées et gradients : comment un modèle apprend
Apprendre = minimiser une fonction d'erreur
Un modèle a des paramètres (des millions de nombres). Une loss mesure à quel point ses prédictions sont mauvaises sur les données. « Entraîner », c'est trouver les paramètres qui minimisent la loss. C'est un pur problème d'optimisation — aucune magie.
La dérivée est une direction
La dérivée de la loss par rapport à un paramètre répond à : « si j'augmente ce paramètre d'un chouïa, la loss monte-t-elle ou descend-elle, et à quelle vitesse ? ». Le gradient, c'est ce même renseignement pour tous les paramètres d'un coup — un vecteur qui pointe vers la plus forte montée. Pour minimiser : marcher dans le sens opposé.
paramètres ← paramètres − learning_rate × gradient
C'est la descente de gradient. Tout l'apprentissage profond tient dans cette ligne, répétée des millions de fois.
Les trois hyperparamètres qui te concerneront
- learning rate : LA molette n°1. Trop petit → entraînement interminable ; trop grand → la loss diverge (NaN). Symptôme classique en prod d'entraînement.
- batch size : le gradient est estimé sur un lot, pas tout le dataset (« stochastic » gradient descent) — bruité mais rapide, et ça tient en VRAM.
- epochs : combien de fois on repasse sur les données. Trop → le modèle apprend le dataset par cœur (overfitting, module 5).
La backpropagation, en une intuition
Comment calculer le gradient de millions de paramètres empilés en couches ? Par la règle de dérivation en chaîne, appliquée de la sortie vers l'entrée : chaque couche reçoit « l'erreur » de la suivante et transmet sa part à la précédente. PyTorch fait ça automatiquement (loss.backward()) — module 6 pour le détail.
Le gradient de la loss indique…