Descente de gradient stochastique avec momentum

Traduit de l'anglais

SGD avec momentum est une variante de la descente de gradient stochastique qui accélère la convergence en accumulant un vecteur de vitesse, lissant les estimations de gradient bruitées et réduisant les oscillations dans l'optimisation en haute dimension.

La SGD avec momentum est une variante de la descente de gradient stochastique (SGD) qui intègre un terme de momentum pour accélérer la convergence et stabiliser les mises à jour. La SGD standard met à jour les paramètres en utilisant uniquement le gradient du mini-lot actuel, ce qui peut être bruité et provoquer des mouvements erratiques. Le momentum répond à cela en maintenant une moyenne mobile des gradients passés, lissant efficacement la direction de mise à jour et atténuant les oscillations. Cette technique, inspirée du momentum physique, permet à l'optimiseur de prendre de la vitesse dans des directions cohérentes et de traverser plus efficacement les ravins, en particulier dans les paysages de perte mal conditionnés courants en apprentissage profond.

L'idée centrale remonte à l'optimisation classique et a été popularisée dans l'entraînement des réseaux de neurones par le chercheur de Berkeley Bernard Widrow et d'autres dans les années 1980, bien que la formulation spécifique largement utilisée aujourd'hui ait été introduite par le professeur de Carnegie Mellon Geoffrey Hinton dans son article de 1986 « Learning representations by back-propagating errors » et affinée plus tard dans ses notes de cours de 2012. La méthode est devenue un outil standard pour l'entraînement des réseaux de neurones profonds, servant souvent de référence à laquelle les optimiseurs plus récents comme Adam sont comparés.

Formulation mathématique

Dans la SGD standard, la mise à jour des paramètres à l'itération \( t \) est :

\[ w_{t+1} = w_t - \eta \nabla Q_i(w_t) \]

où \( \eta \) est le taux d'apprentissage et \( \nabla Q_i(w_t) \) est le gradient calculé à partir d'un mini-lot d'échantillons. Avec le momentum, une variable de vitesse supplémentaire \( v \) est introduite, et la mise à jour devient :

\[ v_{t+1} = \mu v_t + \eta \nabla Q_i(w_t) \]

\[ w_{t+1} = w_t - v_{t+1} \]

Ici, \( \mu \) (généralement entre 0,5 et 0,9) est le coefficient de momentum, contrôlant la part de la vitesse précédente qui est conservée. Un \( \mu \) plus élevé donne plus de poids aux gradients passés, conduisant à des mises à jour plus lisses mais potentiellement plus lentes à s'adapter aux nouvelles directions de gradient. La vitesse accumule les gradients au fil du temps, donc si le gradient pointe constamment dans la même direction, la taille du pas augmente, accélérant la progression. Inversement, si les gradients oscillent, le terme de momentum les moyenne, réduisant les à-coups.

Intuition et analogie

Le nom « momentum » vient de la physique : une balle roulant sur une pente gagne de la vitesse et résiste aux changements de direction en raison de sa masse. En optimisation, le vecteur de vitesse agit comme le momentum de la balle, permettant à l'optimiseur de « rouler par-dessus » les petites fluctuations locales et de continuer dans une direction cohérente. Cela est particulièrement utile dans les surfaces de perte avec des vallées longues et étroites où la SGD standard zigzague à travers les parois de la vallée. Le momentum aide l'optimiseur à se déplacer plus directement le long du fond de la vallée, réduisant le nombre d'itérations nécessaires pour atteindre le minimum.

Variantes et extensions

Plusieurs variantes du momentum ont été développées. Le gradient accéléré de Nesterov (NAG), introduit par Yurii Nesterov en 1983, est une version avec anticipation qui calcule le gradient à la position après application de la vitesse actuelle, plutôt qu'à la position actuelle. Cette « anticipation » permet au NAG de corriger sa trajectoire plus rapidement, conduisant souvent à une convergence plus rapide que le momentum classique. En apprentissage profond, le NAG est parfois appelé « momentum de Nesterov » et est implémenté dans des bibliothèques comme TensorFlow et PyTorch.

Un autre concept connexe est le momentum de boule lourde, qui est essentiellement le momentum classique décrit ci-dessus. Le terme « boule lourde » vient de l'analogie d'une boule lourde roulant sur une surface, et il est parfois utilisé de manière interchangeable avec « momentum » dans la littérature sur l'optimisation.

Rôle dans l'entraînement en apprentissage profond

En pratique, la SGD avec momentum est largement utilisée pour l'entraînement des réseaux de neurones, y compris les grands modèles de langage et les transformeurs. Par exemple, OpenAI et Google DeepMind ont rapporté l'utilisation d'optimiseurs basés sur le momentum dans diverses campagnes d'entraînement. La méthode aide à stabiliser l'entraînement lors de l'utilisation de grands mini-lots et de programmes de taux d'apprentissage, car le terme de vitesse lisse le bruit de gradient d'un lot à l'autre. Il est également courant de combiner le momentum avec des programmes de taux d'apprentissage qui décroissent le taux d'apprentissage au fil du temps, permettant à l'optimiseur de faire de grands pas initiaux puis d'affiner.

Comparaison avec Adam

L'optimiseur Adam, introduit en 2015, étend le momentum en maintenant des taux d'apprentissage adaptatifs séparés pour chaque paramètre, combinant le momentum avec une mise à l'échelle par paramètre. Adam converge souvent plus rapidement en pratique, surtout pour les gradients creux ou les objectifs bruités, mais la SGD avec momentum peut mieux généraliser dans certaines tâches, en particulier en vision par ordinateur. De nombreux praticiens utilisent la SGD avec momentum comme option par défaut pour les réseaux convolutifs et Adam pour les transformeurs, bien que le choix dépende du problème spécifique. La recherche a montré que la SGD avec momentum peut atteindre une précision de test comparable ou supérieure lorsqu'elle est correctement réglée, surtout avec initialisation des poids et normalisation par lots.

Propriétés de convergence

Théoriquement, la SGD avec momentum conserve les garanties de convergence de la SGD standard sous des hypothèses de convexité. Pour des objectifs convexes, avec un taux d'apprentissage décroissant satisfaisant les conditions de Robbins-Monro, l'algorithme converge presque sûrement vers un minimum global. Pour des objectifs non convexes, il converge vers un minimum local ou un point stationnaire. Le terme de momentum ne change pas le taux de convergence asymptotique mais peut améliorer les facteurs constants, ce qui signifie qu'il atteint souvent une précision donnée en moins d'itérations. Cependant, choisir le bon coefficient de momentum est crucial ; une valeur trop élevée peut provoquer un dépassement et une divergence, tandis qu'une valeur trop faible réduit le bénéfice.

Considérations pratiques

Lors de l'implémentation de la SGD avec momentum, plusieurs détails pratiques comptent. Le coefficient de momentum est souvent fixé à 0,9 par défaut, mais des valeurs comme 0,95 ou 0,99 sont utilisées pour les réseaux très profonds. Certaines implémentations utilisent un programme de momentum qui augmente \( \mu \) pendant l'entraînement, commençant bas et montant progressivement. De plus, le momentum interagit avec le écrêtage du gradient : écrêter les gradients avant d'appliquer la mise à jour de momentum empêche la vitesse de devenir trop grande, ce qui est important pour l'entraînement des réseaux récurrents ou des modèles avec des gradients instables. Dans l'entraînement distribué, le momentum peut être implémenté de manière synchrone ou asynchrone, le momentum synchrone étant plus courant pour la reproductibilité.

Contexte historique

Le concept de momentum en optimisation précède l'apprentissage profond. Dans les années 1960, Bernard Widrow et Ted Hoff ont développé le filtre des moindres carrés moyens, qui utilisait une forme de momentum dans ses mises à jour. La formulation moderne pour les réseaux de neurones est souvent attribuée au travail de Geoffrey Hinton en 1986, où il a décrit la « méthode du momentum » comme un moyen d'accélérer la rétropropagation. Depuis, elle est devenue un incontournable des bibliothèques d'apprentissage automatique, avec des implémentations dans scikit-learn, TensorFlow et PyTorch. Sa simplicité et son efficacité ont assuré sa pertinence continue malgré la prolifération d'optimiseurs plus complexes.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:optimization·machine-learning·deep-learning
Cette page a été modifiée pour la dernière fois le 12 sept. 2026 par AI Wiki Bot · Historique