Gradient Descent
La descente de gradient entraîne les modèles en ajustant leurs poids de façon répétée selon le gradient de la fonction de perte. Découvre les taux d’apprentissage, SGD, le momentum et Adam.
La descente de gradient est l’algorithme d’optimisation itératif qui entraîne la plupart des modèles d’apprentissage automatique, de la régression linéaire aux grands réseaux de neurones. À chaque étape, elle calcule le gradient de la fonction de perte par rapport à chaque poids du modèle, puis déplace chaque poids d’un petit pas dans la direction opposée, celle où la perte diminue le plus rapidement. La règle de mise à jour est w ← w − η∇L(w), où η est le taux d’apprentissage. Une image souvent utilisée est celle d’un randonneur qui descend une montagne dans un épais brouillard : incapable de voir la vallée, le randonneur sent la pente sous ses pieds et avance vers le bas, encore et encore, jusqu’à ce que le terrain s’aplanisse.
Fonctionnement de la descente de gradient#
Chaque itération comporte trois parties. Une passe avant calcule les prédictions et la perte, la rétropropagation calcule le gradient de la perte par rapport à chaque poids, puis l’optimiseur met à jour les poids. Le gradient pointe vers le haut à la surface de la perte, selon la définition du gradient en calcul différentiel à plusieurs variables ; le soustraire déplace donc les poids vers le bas.
Les variantes diffèrent par la quantité de données utilisée à chaque étape. La descente de gradient par lots calcule le gradient exact sur l’ensemble des données d’entraînement, ce qui est précis, mais lent pour les grands jeux de données. La descente de gradient stochastique (SGD) l’estime à partir d’un seul exemple, tandis que la descente de gradient par mini-lots, méthode standard en apprentissage profond, calcule la moyenne sur une taille de lot de quelques dizaines à quelques milliers d’exemples afin de maintenir les GPU en activité. Le bruit des gradients des mini-lots aide également les poids à dépasser les points selles et les minima étroits. Un passage complet sur le jeu d’entraînement constitue une époque.
Choisir le taux d’apprentissage#
Le taux d’apprentissage définit la taille du pas et constitue généralement le premier hyperparamètre à régler pour la descente de gradient. Un taux trop faible gaspille de la puissance de calcul en avançant péniblement vers le minimum, tandis qu’un taux trop élevé le dépasse ; pour une perte quadratique, tout taux supérieur à 2 divisé par la courbure de la perte fait que chaque pas s’éloigne davantage du minimum que le précédent. L’extrait ci-dessous minimise (w − 2)², dont la courbure est 2, avec trois taux d’apprentissage dans PyTorch :
import torch
# Minimize loss(w) = (w - 2)^2, whose minimum is at w = 2, with three learning rates
for lr in [0.1, 0.5, 1.1]:
w = torch.tensor(5.0, requires_grad=True)
for step in range(20):
loss = (w - 2) ** 2
loss.backward() # w.grad now holds the slope 2 * (w - 2)
with torch.no_grad():
w -= lr * w.grad # step against the gradient
w.grad.zero_()
print(f"Learning rate {lr}: w = {w.item():.4f} after 20 steps")Avec un taux de 0.1, le poids n’est encore qu’à 2.0346 après 20 étapes ; un taux de 0.5 atteint exactement 2.0000, car il est égal à l’inverse de la courbure ; enfin, un taux de 1.1 dépasse la valeur cible d’une marge croissante à chaque étape, jusqu’à ce que w atteigne 117.0129. Les programmes d’entraînement réels commencent par un court échauffement, puis réduisent le taux, souvent selon une courbe cosinus, afin que les premières étapes restent stables et que les dernières convergent avec précision.
Momentum, Adam et optimiseurs modernes#
La descente de gradient simple zigzague dans les vallées étroites de la surface de perte ; l’entraînement utilise donc généralement des règles de mise à jour améliorées. La quantité de mouvement accumule une moyenne glissante des gradients passés et se déplace dans cette direction, ce qui amortit les oscillations et accélère la progression dans les directions cohérentes. L’optimiseur Adam suit aussi les gradients au carré de chaque paramètre afin d’attribuer à chaque poids son propre pas adaptatif, et AdamW dissocie la décroissance des poids de cette mise à jour. Muon orthogonalise la mise à jour par quantité de mouvement de chaque matrice de poids 2D à l’aide d’itérations de Newton-Schulz, afin qu’aucune direction ne domine le pas. L’entraînement d’Ultralytics YOLO26 avec optimizer="auto" sélectionne AdamW, avec un taux d’apprentissage adapté au nombre de classes, pour les exécutions allant jusqu’à 10 000 itérations, et MuSGD, qui ajoute à SGD des mises à jour orthogonalisées de type Muon pour les poids convolutifs et linéaires, pour les exécutions plus longues.
Applications concrètes#
La descente de gradient est le moteur d’entraînement de presque tous les systèmes d’apprentissage profond. Dans les véhicules autonomes, elle ajuste les réseaux de détection d’objets afin de réduire l’écart entre les boîtes prédites et les boîtes annotées pour les piétons, les panneaux et les véhicules, sur des millions d’images. En analyse d’images médicales, elle ajuste des réseaux de neurones convolutifs qui distinguent les tumeurs des tissus sains dans les IRM et les tomodensitogrammes. Les grands modèles de langage sont entraînés de la même manière, généralement avec AdamW sur des milliers de milliards de jetons.
Descente de gradient et notions connexes#
- Rétropropagation : la rétropropagation calcule les gradients à l’aide de la règle de la chaîne, et la descente de gradient les utilise pour mettre à jour les poids. Ces deux opérations s’enchaînent à chaque étape d’entraînement et sont souvent mentionnées ensemble.
- Fonction de perte : la fonction de perte mesure le degré d’erreur des prédictions du modèle, et la descente de gradient est la procédure qui réduit cette valeur.
- Gradient explosif : lorsque les gradients augmentent de façon incontrôlable dans les réseaux profonds, la descente de gradient effectue des pas destructeurs ; l’écrêtage des gradients l’évite en plafonnant la norme du gradient avant chaque mise à jour.
- Algorithmes évolutionnaires : ces méthodes sans gradient recherchent des solutions en échantillonnant et en sélectionnant des candidats sans calculer de gradients, ce qui convient aux objectifs non différentiables, comme les choix d’hyperparamètres.










