Laboratoire interactif

Optimiseurs : gradient, moment, Adam

Trois optimiseurs partent du même point sur une surface à deux variables. Comparez leurs trajectoires sur les lignes de niveau : zigzag, élan, pas adaptatif.

Niveau
Intermédiaire
Notions
Momentum · Adam · Lignes de niveau
−4 −2 0 2 4 −2 −1 0 1 2
Figure 1 — Lignes de niveau de f et trajectoire de chaque optimiseur. Les croix marquent les minimums. Pas 0. Glissez le point de départ sur la carte, ou utilisez les curseurs x₀ et y₀.
  • Descente de gradient
  • Moment
  • Adam
10^-8 10^-6 10^-4 10^-2 10^0 10^2 0 20 40 60 80 100 120 pas t
Figure 2 — f(θₜ) à chaque pas, échelle logarithmique : une droite descendante est une convergence géométrique.
Surface
Optimiseurs comparés
0,09
0,02
0,3
0,9
Point de départ
−4
1,5
120
20
Relevé au pas affiché (t = 0)
optimiseurηf(θ)distance au minimum
Descente de gradient0,09 30,5 4,272
Moment0,02 30,5 4,272
Adam0,3 30,5 4,272
f(x,y)=12x2+10 y2f(x, y) = \tfrac{1}{2}x^2 + 10\,y^2

Trois façons de descendre

Sur une surface à deux variables, le gradient ∇f(θ)\nabla f(\theta) est un vecteur qui pointe vers la plus forte montée. Les trois optimiseurs l'utilisent différemment.

Descente de gradient

θt+1=θt−η ∇f(θt)\theta_{t+1} = \theta_t - \eta\,\nabla f(\theta_t)

Chaque pas suit la pente locale, sans mémoire. Dans une vallée étroite, la pente est forte en travers et faible le long du fond : le point zigzague d'un flanc à l'autre et progresse lentement vers le minimum. Augmenter η\eta accélère le fond mais fait diverger le travers.

Moment

vt+1=β vt+∇f(θt)θt+1=θt−η vt+1v_{t+1} = \beta\,v_t + \nabla f(\theta_t) \qquad \theta_{t+1} = \theta_t - \eta\,v_{t+1}

La vitesse vv accumule les gradients passés. Les composantes qui changent de signe à chaque pas (le travers de la vallée) s'annulent ; celles qui gardent le même signe (le fond) s'additionnent. Avec β=0,9\beta = 0{,}9, un gradient constant est amplifié jusqu'à dix fois. Le prix : la trajectoire peut dépasser le minimum et y revenir en spirale.

Adam

mt=β1mt−1+(1−β1) gtvt=β2vt−1+(1−β2) gt2m_t = \beta_1 m_{t-1} + (1-\beta_1)\,g_t \qquad v_t = \beta_2 v_{t-1} + (1-\beta_2)\,g_t^2
θt+1=θt−η m^tv^t+ε\theta_{t+1} = \theta_t - \eta\,\frac{\hat m_t}{\sqrt{\hat v_t} + \varepsilon}

Adam divise chaque coordonnée du pas par une estimation de l'amplitude récente de son gradient (m^t\hat m_t et v^t\hat v_t sont les moyennes corrigées de leur biais de départ). Chaque direction reçoit ainsi son propre pas effectif, de l'ordre de η\eta quelle que soit la raideur : la vallée étroite ne le gêne presque plus.

Ce qu'il faut regarder

  • Vallée étroite : le zigzag de la descente simple, l'élan du moment, la trajectoire presque directe d'Adam.
  • Rosenbrock : tous atteignent vite le fond de la vallée courbe ; la différence se fait ensuite, sur le fond presque plat.
  • Himmelblau : déplacez le point de départ. Les optimiseurs n'arrivent pas toujours au même minimum : l'élan peut franchir une crête que la descente simple ne franchit pas.

Aucun optimiseur n'est « le meilleur » : sur la figure 2, comparez la vitesse (pente de la courbe) et la stabilité (oscillations).

Autres démonstrations

  • K-Means pas à pas

    Intelligence artificielle, Débutant

    Affectation, mise à jour, affectation… Suivez les centres jusqu’à la convergence, et découvrez les cas où K-Means se trompe : mauvais départ, groupes étirés, anneaux.

  • Régression linéaire

    Intelligence artificielle, Débutant

    Déplacez les points et regardez la droite des moindres carrés suivre. Puis apprenez la même droite par descente de gradient et comparez.

  • Convolution et filtres

    Vision par ordinateur, Débutant

    Faites glisser un noyau 3 × 3 sur une image : flou, netteté, détection d’arêtes. Modifiez les poids et suivez le calcul d’un pixel, terme à terme.