Aller au contenu
Kudos AI

Le pas, et le bord de la stabilité

Ce qu’un pas de gradient minimise, pourquoi un gradient sur mini-lot est le gradient complet plus du bruit et non un gradient différent, et la taille de pas exacte au-delà de laquelle la descente cesse de descendre.

IntermédiaireModule 125 min · 100 XP
Une surface de perte avec ses deux directions de courbure tracées en flèches, un pas de gradient contractant l’erreur le long de chacune d’un facteur 1 − ηλ, et la même exécution à 0,99 et 1,01 fois 2/L - l’une se posant, l’autre projetée hors du cadre.

Tous les modèles de ce site sont ajustés de la même façon. Régression linéaire, régression logistique, réseau de neurones, transformeur : chacun écrit un nombre qui dit à quel point il se trompe, demande dans quel sens ce nombre descend, et se déplace. Le modèle change ; la boucle, non.

Ce qui change en revanche, et ce qui décide si la boucle prend quarante pas ou explose en trois, c’est la géométrie autour d’elle. Cette leçon porte sur le plus petit morceau de cette géométrie : un pas.

Ce que la boucle minimise

L’entraînement minimise le risque empirique - la perte moyenne sur les données dont on dispose :

f(w)  =  1n∑i=1nℓ ⁣(w;xi,yi).f(w) \;=\; \frac{1}{n}\sum_{i=1}^{n} \ell\!\left(w; x_i, y_i\right).

Les exemples de tout ce parcours utilisent un problème de moindres carrés à n=400n = 400 points et deux paramètres, parce que tout y est calculable exactement et comparable à ce que la théorie prétend. Sa perte vaut f(w)=1n∥Xw−y∥2f(w) = \frac{1}{n}\lVert Xw - y\rVert^2, son minimiseur est w⋆=(1,973613;−2,947388)w^\star = (1{,}973613 ; -2{,}947388), et la perte y vaut f⋆=0,233943f^\star = 0{,}233943. Connaître la réponse à l’avance est le principe même : cela transforme chaque affirmation ci-dessous en mesure.

Un gradient sur mini-lot est le gradient complet plus du bruit

Calculer ∇f(w)\nabla f(w) suppose de toucher les nn exemples. Un mini-lot de taille BB en touche BB et les moyenne :

gB(w)  =  1B∑i∈B∇ℓ(w;xi,yi).g_B(w) \;=\; \frac{1}{B}\sum_{i \in \mathcal{B}} \nabla \ell(w; x_i, y_i).

Comme B\mathcal{B} est un échantillon uniforme, E[gB(w)]=∇f(w)\mathbb{E}[g_B(w)] = \nabla f(w) exactement. Cela mérite d’être énoncé soigneusement, car la croyance inverse - qu’un petit lot pointe vers quelque chose de systématiquement différent - mène à de mauvaises conclusions sur la taille de lot.

À l’origine w=(0,0)w = (0, 0), le gradient complet vaut (−3,416495;0,179597)(-3{,}416495 ; 0{,}179597). Moyenner 20 000 mini-lots indépendants en ce même point donne :

taille de lot BBerreur moyennetaille typique du bruit
80,0321,4382
320,0120,7052
1280,0020,3027

La première colonne tend vers zéro parce qu’elle est un résidu de Monte-Carlo dans la moyenne, pas un biais. La seconde raconte la véritable histoire : seize fois le lot achète 1,4382/0,3027=4,751{,}4382 / 0{,}3027 = 4{,}75 fois la précision, proche du 16=4\sqrt{16} = 4 que prédit la moyenne de tirages indépendants. L’excédent de 19 % au-dessus de 4 n’est pas du bruit : ces lots sont tirés sans remise dans seulement n=400n = 400 points, et le facteur de population finie (n−B)/(n−1)(n - B)/(n - 1) réduit un lot de 128 bien plus qu’un lot de 8. Cela prédit 4392/272=4,804\sqrt{392/272} = 4{,}80, et un tirage avec remise, réellement indépendant, donne 3,89 à la place. Ce taux de change explique pourquoi les entraînements utilisent de petits lots et beaucoup de pas plutôt que l’inverse. Le calcul achète la précision à la racine carrée, et il achète les pas linéairement.

Le facteur (1 − ηλ)

Venons-en au pas. Au voisinage d’un minimum la perte ressemble à une cuvette quadratique, et la forme de cette cuvette est la hessienne HH. Écrivons l’erreur et=wt−w⋆e_t = w_t - w^\star ; un pas de gradient de taux η\eta donne

et+1  =  (I−ηH) et.e_{t+1} \;=\; (I - \eta H)\, e_t .

Décomposons ete_t selon les vecteurs propres de HH. Chaque composante est simplement multipliée par 1−ηλ1 - \eta\lambda, où λ\lambda est la courbure de cette direction, et les directions n’interagissent pas du tout. Un pas n’est donc pas un mouvement ; c’est autant de contractions indépendantes que la courbure a de directions, chacune à son rythme.

La composante décroît lorsque ∣1−ηλ∣<1\lvert 1 - \eta\lambda \rvert < 1, soit exactement η<2/λ\eta < 2/\lambda. Toute direction doit décroître, donc la contrainte déterminante est la plus raide :

η  <  2L,L=λmax⁡(H).\eta \;<\; \frac{2}{L}, \qquad L = \lambda_{\max}(H).

La falaise, mesurée

Sur ce problème L=1,760627L = 1{,}760627, donc le seuil vaut 2/L=1,1359592/L = 1{,}135959. Deux exécutions depuis le même point, deux cents pas chacune :

taille de pasen multiple de 2/Lperte après 200 pas
1,1246000,990,236592
1,1473191,0123585,65

Deux pour cent d’écart sur le pas séparent une exécution convergée d’une autre à cinq ordres de grandeur. Ce n’est pas une dégradation douce avec une zone grise au milieu ; c’est un changement de signe dans 1−ηL1 - \eta L, et dès que ce facteur passe sous −1-1 la direction la plus raide est amplifiée d’un facteur constant à chaque pas, indéfiniment.

La forme pratique de ce phénomène est familière à quiconque a vu une courbe de perte partir en NaN en quelques dizaines de pas après un changement de taux d’apprentissage qui semblait anodin. Rien n’était stable avant de devenir instable : l’exécution a franchi un seuil qui était là depuis le début.

Interactif : le pas, et le bord de la stabilité

η = 0.6816, et la falaise est à 2/L = 1.1360.

w*direction raide →↑ direction plate
Contraction par pas
0.949667
Pas pour six décimales
> 260
Falaise à 2/L
1.1360
Essayez :

Six décimales sont hors d’atteinte en 260 pas à ce réglage. Le conditionnement vaut 23.8410 - un allongement modéré, sur un problème à deux paramètres - et il fixe le taux à lui seul. Augmentez β : le zigzag en travers de la vallée s’annule tandis que la progression le long s’accumule, et la dépendance passe de κ à √κ.

Stable n’est pas synonyme de rapide

Connaître LL ne signifie pas poser η=2/L\eta = 2/L. Stabilité et vitesse sont deux questions séparées, et leurs réponses diffèrent.

L’erreur se contracte de max⁡(∣1−ηL∣,∣1−ημ∣)\max\big(\lvert 1 - \eta L\rvert, \lvert 1 - \eta\mu \rvert\big) par pas, où μ=λmin⁡(H)\mu = \lambda_{\min}(H) est la direction la plus plate. Augmenter η\eta accélère la direction plate et ralentit la raide : le meilleur pas est donc là où les deux coûts se rejoignent,

η⋆  =  2L+μ.\eta^\star \;=\; \frac{2}{L + \mu}.

Ici μ=0,073849\mu = 0{,}073849, d’où η⋆=1,090230\eta^\star = 1{,}090230 - nettement sous le seuil de divergence. Toute taille de pas entre η⋆\eta^\star et 2/L2/L est plus lente et plus proche de la falaise.

Cette formule mérite vérification plutôt que confiance. Exécuter les mêmes 200 pas pour chacune de 2000 tailles de pas et retenir celle qui finit au plus près de w⋆w^\star donne un optimum empirique de 1,088582, contre 1,090230 pour la dérivation - un accord à 1,6×10−31{,}6 \times 10^{-3}. Ce petit écart ne vient pas de la grille : sur 200 pas seulement, le meilleur pas se situe juste sous l’optimum asymptotique, et s’en rapproche à mesure que l’exécution s’allonge. Une dérivation et une recherche sur grille sont à trois lignes l’une de l’autre, et la grille attrape les erreurs de signe que l’algèbre dissimule.

Ce que cela n’explique pas encore

Deux faits se côtoient mal. Le meilleur pas sur ce problème vaut environ 1,09, et μ\mu vaut 0,074 : la direction la plus plate ne se déplace donc que de ημ≈8 %\eta\mu \approx 8\,\% de son erreur résiduelle par pas, même au taux optimal. C’est ce rapport, et non la taille du pas, qui rend l’entraînement lent, et il a un nom et un remède.

Le nom est le conditionnement, et le remède est la leçon suivante.

Références et lectures complémentaires

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (Adaptive Computation and Machine Learning), 2016source ↗
  • Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004source ↗

Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.

Débloquez tout le parcours

Cette première leçon est gratuite. Inscrivez-vous pour passer le quiz de maîtrise, gagner de l’XP et débloquer tous les modules, avec d’autres exemples interactifs et exécutables.