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.

Par lot, par mini-lots et descente de gradient stochastique

La méthode qui calcule exactement le gradient de la perte sur l'ensemble des données d'apprentissage avant chaque mise à jour s'appelle la descente de gradient par lot ; avec beaucoup de données, chaque mise à jour prend du temps. On utilise donc la descente de gradient stochastique, qui calcule le gradient sur une partie seulement des données (un mini-lot) et répète les mises à jour. Le gradient est bruité, mais on peut effectuer bien plus de mises à jour, et les calculs sont regroupés en blocs de taille adaptée au calcul parallèle sur GPU. Un passage complet sur l'ensemble des données d'apprentissage s'appelle une époque.

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.

S'entraîner : questions sur Descente de gradient (gradient descent)

En descente de gradient, le gradient de la perte ∂L/∂w vaut 0,5 pour le poids w = 2,0, et le taux d'apprentissage vaut 0,1. Quelle est la valeur du poids après une mise à jour ?

  1. A1,5
  2. B1,95
  3. C2,05
Afficher la réponse et l'explication

Réponse : B. 1,95

La descente de gradient déplace le poids dans le sens où la perte diminue, c'est-à-dire dans le sens opposé au gradient : w ← w − η × ∂L/∂w (η étant le taux d'apprentissage). Ici, w = 2,0 − 0,1 × 0,5 = 1,95. Un taux d'apprentissage trop grand fait sauter par-dessus la vallée de la perte, ce qui provoque oscillations ou divergence ; trop petit, il fait progresser l'apprentissage très lentement. En pratique, on utilise la descente de gradient stochastique (SGD), qui répète les mises à jour avec des gradients calculés sur une partie des données (un mini-lot), ou ses variantes améliorées comme Adam.

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.

« Descente de gradient (gradient descent) » dans les explications

Questions mentionnant « Descente de gradient (gradient descent) » (1)

  1. En descente de gradient, le gradient de la perte ∂L/∂w vaut 0,5 pour le poids w = 2,0, et le taux d'apprentissage vaut 0,1. Quelle est la valeur du poids après une mise à jour ?

Termes associés

Algorithme des k-moyennes (k-means) Analyse en composantes principales (ACP) Apprentissage non supervisé Apprentissage par renforcement Apprentissage par transfert (transfer learning) Apprentissage supervisé Fonction d'activation Matrice de confusion Précision et rappel (precision and recall) Régularisation

Retour au glossaire