Comment un modèle s'entraîne vraiment — une cadence par bouton, et de la mémoire.

SRC·45 Source
La descente simple applique un seul pas à un milliard de boutons.

La descente simple applique un seul pas à un milliard de boutons.

La descente de gradient a un bouton que tu règles à la main : le pas. Elle utilise ce même nombre pour déplacer chaque poids du modèle — le milliard, à l'identique. Mais les pentes où ils se trouvent sont très différentes. Les bons optimiseurs corrigent cela en donnant à chaque poids sa propre cadence — et une courte mémoire de la direction qu'il suivait.
La pente que tu mesures tremble — la suivre brute, c'est tituber.

La pente que tu mesures tremble — la suivre brute, c'est tituber.

La pente de chaque pas se lit sur une simple poignée d'exemples, donc elle tremble — pointant un peu de travers à chaque fois. La suivre brute, c'est descendre en titubant. Comme une manche à air dans des rafales de travers : elle claque vers un nouvel angle à chaque bourrasque, et aucun à-coup isolé ne révèle le vent stable qui se cache derrière.
Ne cours pas après chaque pente. Suis leur moyenne courante.

Ne cours pas après chaque pente. Suis leur moyenne courante.

mt=β1mt1+(1β1)gtm_t = \beta_1\, m_{t-1} + (1-\beta_1)\, g_t
Ne cours pas après chaque pente nerveuse. Garde un mélange courant : surtout ton ancien cap, infléchi par la lecture la plus récente. Le tremblement s'annule ; la vraie direction s'installe. Comme un lourd rocher qui dévale la pente : il lisse chaque petite bosse et tient sa ligne. Ce mélange, c'est le momentum : le prochain cap est presque là où tu allais, incliné un peu vers la pente la plus récente.
Un seul pas ne peut convenir à un milliard de boutons différents.

Un seul pas ne peut convenir à un milliard de boutons différents.

θt+1=θtηgt\theta_{t+1} = \theta_t - \eta\, g_t
Voici le piège que la descente simple ne corrige jamais. Ce pas unique η multiplie la pente de chaque bouton de la même façon. Mais certains sont sur des pentes raides et violentes qui exigent de tout petits pas prudents ; d'autres sur des pentes plates et calmes, et pourraient allonger la foulée. Comme un seul rapport de vélo pour toutes les côtes : bon sur le plat, brutal à la montée, paresseux à la descente. Un seul rapport — un seul η partagé — ne peut convenir à tous.
Donne à chaque bouton sa propre cadence — réglée par sa propre rugosité.

Donne à chaque bouton sa propre cadence — réglée par sa propre rugosité.

vt=β2vt1+(1β2)gt2,η~t=ηvt+ϵv_t = \beta_2\, v_{t-1} + (1-\beta_2)\, g_t^{2}, \qquad \tilde{\eta}_t = \dfrac{\eta}{\sqrt{v_t}+\epsilon}
Alors donne à chaque bouton sa propre cadence. Mesure à quel point sa pente a été rugueuse — une moyenne courante de son gradient au carré — et divise le pas de ce bouton par cela. Les boutons dont les pentes s'agitent sont bridés ; les calmes sont libérés. Comme poncer autour d'un nœud : ralentis et rampe là où le fil du bois résiste, glisse vite là où c'est lisse. En clair : une grosse pente récente rétrécit le pas à cet endroit ; une petite le laisse grandir.
Les deux moyennes partent de zéro, donc les premiers pas semblent trop petits.

Les deux moyennes partent de zéro, donc les premiers pas semblent trop petits.

m^t=mt1β1t,v^t=vt1β2t\hat{m}_t = \dfrac{m_t}{1-\beta_1^{\,t}}, \qquad \hat{v}_t = \dfrac{v_t}{1-\beta_2^{\,t}}
Un accroc. Les deux moyennes courantes partent de zéro, donc aux premiers pas elles paraissent bien trop petites — non parce que les pentes sont petites, mais parce que le compte vient de commencer. Comme une tirelire à pièces commencée vide cette semaine : le total courant semble minuscule seulement parce qu'il est parti de rien. Le correctif divise cette longueur d'avance, gonflant chaque moyenne tant qu'elle est jeune — une correction qui s'efface à mesure que le compte se remplit.
Cap stable, foulée bouton par bouton — voilà tout l'optimiseur.

Cap stable, foulée bouton par bouton — voilà tout l'optimiseur.

θt=θt1ηm^tv^t+ϵ\theta_t = \theta_{t-1} - \eta\, \dfrac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}
Assemble le tout. Le momentum choisit la direction — le cap lissé, sans tremblement. La cadence par bouton choisit chaque foulée — longue là où la pente est calme, courte là où elle s'agite. Une seule ligne fait les deux. Comme un kayakiste qui lit un rapide : tiens la ligne du courant principal, mais dose chaque coup de pagaie — doux dans l'eau lisse, ferme là où ça bouillonne. Voilà Adam, l'optimiseur qui entraîne presque tout (typiquement β₁=0.9, β₂=0.999).
🌱 Même colline, même départ — mais c'est l'optimiseur qui a choisi la vallée.

🌱 Même colline, même départ — mais c'est l'optimiseur qui a choisi la vallée.

Le momentum et la cadence par bouton font que le chemin vers le bas n'est plus celui du paysage — c'est celui de l'optimiseur. Lances-en deux au tout même endroit, sur la toute même colline, et une mémoire plus lourde ou une cadence plus audacieuse peut entraîner chacun vers une vallée différente. Alors, quand l'entraînement s'arrête, avons-nous trouvé le fond — ou seulement celui vers lequel notre momentum nous a fait rouler ?
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter