Qu'est-ce que Descente de gradient (gradient descent) ?
Méthode d'optimisation qui calcule le gradient de la fonction de perte (dérivées partielles par rapport à chaque paramètre) et répète de petits déplacements des paramètres dans le sens opposé au gradient, pour trouver des paramètres qui réduisent la perte. La mise à jour s'écrit w ← w − η∇L, où η est le taux d'apprentissage. La descente de gradient stochastique (SGD), qui utilise des gradients calculés sur une partie des données (un mini-lot), et ses variantes améliorées comme le momentum ou Adam sont très utilisées pour entraîner les réseaux de neurones.
Nom japonais: 勾配降下法
« Descente de gradient (gradient descent) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Bases de l'apprentissage automatique.
Domaine: Bases de l'apprentissage automatique
Formule de mise à jour et taux d'apprentissage
Si l'on considère la perte L comme une fonction du poids w, le gradient ∂L/∂w indique dans quel sens et de combien L augmente quand on augmente légèrement w. On déplace donc w dans le sens opposé au gradient : w ← w − η × ∂L/∂w. Par exemple, avec L = (w − 3)² et un départ en w = 0, le gradient vaut 2 × (0 − 3) = −6, si bien qu'avec η = 0,1, w avance à 0,6. Dans cet exemple, avec η = 0,1, la distance restante jusqu'au minimum w = 3 est multipliée par 0,8 à chaque mise à jour et diminue ; avec η = 1,1, chaque mise à jour fait sauter par-dessus le minimum, la distance est multipliée par 1,2 à chaque fois et l'algorithme diverge.
Méthodes améliorées
La SGD simple progresse lentement sur une perte en forme de vallée étroite et allongée, car elle fait des allers-retours en travers de la vallée. Le momentum reprend la direction des mises à jour passées, comme une inertie, pour amortir ces oscillations. Adam et RMSProp ajustent automatiquement le pas de chaque paramètre à partir de l'historique de la taille de ses gradients. On utilise aussi souvent un échauffement (warm-up), qui augmente progressivement le taux d'apprentissage au début, et un calendrier qui le réduit à mesure que l'apprentissage progresse.
Questions fréquentes
Quelle est la différence entre la descente de gradient et la rétropropagation du gradient ?
La rétropropagation est une méthode qui calcule efficacement le gradient de la perte par rapport à tous les poids d'un réseau de neurones. La descente de gradient est une méthode qui met à jour les poids à l'aide de ce gradient. L'apprentissage répète le cycle suivant : calcul de la perte par propagation avant, calcul du gradient par rétropropagation, mise à jour des poids par descente de gradient.
La descente de gradient trouve-t-elle la meilleure solution ?
Si la fonction de perte est convexe (une seule vallée), on s'approche du minimum en choisissant correctement le taux d'apprentissage. La perte d'un réseau de neurones n'est pas convexe, et la solution trouvée est souvent locale ; mais on sait par expérience que, pour des réseaux à nombreux paramètres, elle donne souvent des performances suffisantes en pratique.