La descente de gradient et le taux d'apprentissage

Tout système qui apprend à partir de données le fait en descendant une pente à petits pas. La seule vraie question est de savoir quelle taille de pas adopter. La réponse est bien plus étonnante qu'un simple « la plus grande possible » : il existe un taux qui atteint le but en un seul mouvement, et un taux au-delà duquel on n'y parvient jamais.

Chargement de la simulation interactive...

Leçon

La théorie — La descente de gradient et le taux d'apprentissage

La descente de gradient tient en une ligne répétée : placez-vous en un point, mesurez la pente, puis descendez proportionnellement à celle-ci. x ← x − η f′(x). La taille du pas η ne fait pas partie du problème. La courbe de perte est donnée et le gradient se calcule. Vous ne choisissez qu'un seul nombre : η. Sur une fonction quadratique de courbure a, l'arithmétique se résout exactement. C'est pourquoi cette page en utilise une : toute affirmation ultérieure concernant les taux d'apprentissage porte en réalité sur 1 − ηa.

Ce que signifie chaque symbole

η
le taux d'apprentissage, la seule chose que vous choisissez
a
la courbure de la perte, dictée par le problème
Suppose
Une seule variable, un pas fixe et un gradient parfaitement connu. L'entraînement réel fait voler ces trois hypothèses en éclats simultanément : des millions de paramètres, un pas planifié et un gradient estimé sur un mini-lot. La seule chose qui survit intacte est la limite à 2/a. Elle provient de la courbure dans une unique direction, et une surface de perte réelle en possède une par vecteur propre.

La limite appartient à la surface, pas à votre exécution 🖖

Faites glisser le point de départ où bon vous semble, jusqu'à 10 ou sur l'autre versant de la vallée : 2/a ne bouge pas. Le nombre de pas que vous effectuez n'y change rien non plus. Le seuil est fixé par la seule courbure. Pourquoi ? Parce que le multiplicateur de pas r = 1 − aη ne contient ni x₀, ni aucun nombre de pas. L'exécution entière correspond à x₀ multiplié par r autant de fois que vous l'avez demandé. La convergence dépend donc uniquement de r. Commencer plus près du fond ne vous offre aucune marge de manœuvre supplémentaire, cela ne fait que retarder le moment où un taux voué à l'échec devient évident. Réglez la courbure sur 1,6 et le taux sur 1,3, puis balayez toute la plage du point de départ. Le tableau indique Diverge à chaque position, y compris à une demi-unité du minimum.

Dépasser la cible ne coûte rien en soi 🖖

Réglez la courbure sur 1, ce qui place le taux en un pas à η = 1. Essayez maintenant 0,9, puis 1,1. Tous deux font passer |x| sous 10⁻⁶ en sept pas. L'un rampe le long d'une seule paroi de la vallée. L'autre saute par-dessus le fond à chaque mouvement et atterrit alternativement de part et d'autre. Ils coûtent la même chose. Le multiplicateur vaut 1 − aη dans un cas et son opposé dans l'autre, or un multiplicateur négatif réduit un nombre exactement à la même vitesse que son jumeau positif. La symétrie n'a rien d'approximatif. Essayez 0,5 et 1,5 : vingt-deux pas chacun. Un chemin en zigzag vous indique donc de quel côté du taux idéal vous vous trouvez, mais ne dit absolument rien sur le fait d'être allé trop loin ou non. Pour le savoir, le seul nombre qui compte est 2/a.

Pourquoi on continue de deviner les taux d'apprentissage réels 🖖

Cette page ne présente qu'une seule courbure car elle n'a qu'une dimension. Un réseau réel compte des millions de paramètres et sa surface de perte se courbe différemment dans chaque direction. Le raisonnement survit cependant, en remplaçant a par la plus forte courbure de toute la surface, c'est-à-dire la valeur propre maximale du Hessien. Un taux d'apprentissage unique doit être sûr dans toutes les directions à la fois. La direction la plus abrupte décide donc du moment où tout explose. La direction la plus plate détermine votre temps d'attente, car la progression y est régie par sa propre petite courbure. Le rapport entre les deux correspond au conditionnement, ce qui explique pourquoi un taux ajusté sur un problème se transpose si mal à un autre. Rien dans la perte n'annonce l'une ou l'autre valeur propre à l'avance. Et calculer la plus grande d'entre elles pour cent millions de paramètres n'est pas une tâche que l'on accomplit avant le petit-déjeuner. Le momentum, tout comme les méthodes par paramètre telles qu'Adam, existent précisément pour creuser l'écart entre ce qui est stable et ce qui est rapide.

Problème entièrement résolu

  1. Votre taux d'apprentissage de 0,4 fonctionne. Trouvez la courbure exacte à laquelle il cesse de fonctionner, et décrivez à quoi ressemble l'échec de part et d'autre de ce point. Démarrez avec l'outil à η = 0,4, a = 1, x₀ = 8. La ligne Multiplicateur de pas indique 0,6000 et le chemin descend tranquillement le long d'une paroi.

    Ouvrez ce problème dans l'outil

    1. Sur cette page, chaque question se résume à |r| < 1, où r = 1 − aη. Le taux est fixé à 0,4 et vous pouvez modifier la courbure. Écrivez donc la condition en fonction de a plutôt que de η.

    2. |1 − 0,4a| < 1 se déploie en −1 < 1 − 0,4a < 1, puis en 0 < 0,4a < 2, d'où a < 5. Le taux survit à toute courbure inférieure à 5, mais à aucune au-delà. C'est l'habituel η < 2/a lu dans l'autre sens, sous la forme a < 2/η. L'inégalité reste la même, et cette seconde disposition est celle qui répond à la question.

    3. Réglez a = 5 exactement et lisez le tableau. r = −1,0000, et Position après 20 pas affiche 8,000, le nombre de départ. La fraction de la perte initiale est de 1,000. C'est la frontière elle-même : chaque pas atterrit aussi loin du minimum que le précédent, sur le versant opposé. Le chemin rebondit donc entre 8 et −8 tant que vous le laissez tourner.

    4. Passez maintenant à a = 5,1. r = −1,0400, et après vingt pas, x vaut 17,529 au lieu de 8. C'est une vraie divergence, et il est utile de voir à quel point elle paraît bénigne : vingt pas ont à peu près doublé la distance. Une exécution située juste de ce côté de la frontière peut passer pour simplement bruitée pendant un long moment, avant que les nombres ne deviennent manifestement absurdes.

    5. Dans l'autre sens, a = 4,9 converge toujours. r = −0,9600, |r| est inférieur à 1, et le tableau indique Dépasse et converge. Toutefois, Pas pour |x| sous 10⁻⁶ affiche désormais 390, contre 32 à a = 4. Être presque stable ne sert quasiment à rien.

    Réponse

    a = 5, ce qui correspond à 2/η. En deçà, le taux converge. À cette valeur précise, la perte ne change jamais. Au-delà, la perte croît sans limite. L'approche est la phase coûteuse. Près de la frontière, |r| vaut 1 − a·g (en notant g l'écart 2/a − η). On a donc log|r| ≈ −a·g et le nombre de pas correspond grosso modo à log(|x₀|/tolérance) divisé par a·g. Ce nombre évolue comme l'inverse de la distance à la limite : divisez l'écart par deux et vous doublez le travail. À a = 5 en partant de x₀ = 8, des écarts de 0,05, 0,025 et 0,0125 nécessitent 56, 120 et 247 pas. En multipliant chaque décompte par son propre écart, on obtient 2,8, 3,0 et 3,1, se rapprochant de log(8 × 10⁶)/5 = 3,18. Voilà pourquoi un taux d'apprentissage optimisé ne se situe jamais à la limite de la stabilité. La dernière infime portion sûre avant la frontière est aussi l'une des zones les plus lentes de tout l'axe, tandis que le taux le plus rapide de tous se trouve au milieu, à 1/a.

Parcours

Ajustement d'une droite aux données

Références (3)