Aller au contenu principal

Chargement du lab visuel…

#descente-de-gradientRéseaux de neurones

La perte est un paysage. Le gradient dit où ça monte, on fait un pas dans l'autre sens.

Ce que tu vas manipuler

  1. Bienvenue dans #descente-de-gradient. La nappe que tu vois est la perte L(x, y) d'un modèle qui n'aurait que deux poids, x et y : bleu = bas, rose = haut. La boule, ce sont nos poids actuels. Le but : rejoindre le point le plus bas. Sauf que personne n'a la carte — on ne sent que la pente sous nos pieds. Cette pente, c'est le gradient ∇L.
  2. Fais rouler la boule : /pas 10. La flèche rouge indique −∇L, la direction où ça descend le plus vite. À chaque pas, on avance de lr × ∇L dans ce sens, et on recalcule la pente.
  3. Le pas d'apprentissage (learning rate, lr) fixe la longueur de chaque pas. Montons-le franchement : /lr 0.9.
  4. Maintenant, /pas 10. Avec un pas trop grand, la boule saute par-dessus le fond, retombe plus haut de l'autre côté… et finit par s'envoler : la perte diverge.
  5. À l'inverse, un pas minuscule est sûr… mais lent. Passe à /lr 0.05, puis enchaîne librement /pas 50 : la perte baisse à chaque pas, et pourtant tu es encore loin du fond.
  6. Le momentum donne de l'inertie à la boule : v ← μ·v − lr·∇L, puis p ← p + v. Les zigzags (qui changent de signe à chaque pas) s'annulent, les pas cohérents s'additionnent. Active-le : /momentum 0.9, puis /depart -2.5 2 et /pas 40 pour comparer.
  7. Les vraies pertes ne sont pas des bols. Passe sur /surface collines : deux creux, un seul est le plus bas. Lance /momentum 0 puis /pas 80, puis change le départ avec /depart -2 2 et relance /pas 80.
  8. Deux dernières expériences. /surface selle : au centre, le gradient est nul… et pourtant ce n'est pas un minimum — fais /pas 10 plusieurs fois et regarde la boule s'échapper. /surface vallee avec /momentum 0.7 puis /pas 30 : c'est là que le momentum brille, dans une vallée courbe où la descente pure rampe. Reste une question : comment obtient-on ∇L pour des millions de poids ? Réponse dans #rétropropagation.

Commandes du canal

  • /pas <n=1..200>Effectue n itérations de descente (10 par défaut).
  • /lr <0.001..2>Fixe le pas d'apprentissage (learning rate).
  • /momentum <0..0.99>Donne de l'inertie à la boule (0 = descente de gradient pure).
  • /surface <bol|vallee|selle|collines>Change le paysage de perte et remet la boule au départ.
  • /depart <x=-3..3> <y=-3..3>Replace la boule et efface la trajectoire.
  • /reinitRevient au bol, lr 0,1, sans momentum.

Glossaire

Descente de gradient
Algorithme d'optimisation : à chaque pas, on déplace les paramètres dans la direction opposée au gradient de la perte, θ ← θ − η·∇L. C'est la « bille qui roule » vers le bas.
Gradient
Vecteur des dérivées partielles de la perte par rapport à chaque paramètre. Il pointe vers la montée la plus raide ; on suit son opposé.
Taux d'apprentissage
Le pas η (eta). Trop petit : des milliers d'itérations. Trop grand : on saute par-dessus le minimum et on diverge. Le réglage le plus important en pratique.
Fonction de perte
Mesure l'écart entre les prédictions et les cibles (MSE, entropie croisée…). Apprendre, c'est la minimiser ; sa surface est le paysage que la bille descend.
Minimum local
Creux d'où toute direction remonte, sans être le point le plus bas de la surface. La descente de gradient peut s'y coincer.
Point selle
Point où le gradient est nul mais qui monte dans une direction et descend dans une autre (forme de selle de cheval). En grande dimension, plus fréquent que les vrais minima locaux.
Momentum
On garde une « vitesse » : la mise à jour accumule les gradients passés. La bille traverse les petits creux et accélère dans les longues pentes.
Descente stochastique
On calcule le gradient sur un petit lot d'exemples (mini-batch) au lieu de tout le jeu : moins coûteux et le bruit aide à sortir des minima locaux.
Convergence
Moment où les pas deviennent négligeables : la perte ne baisse plus. Ne garantit pas le minimum global.

Autres canaux du thème Réseaux de neurones

  • #neuroneDécomposons un neurone : entrées, poids, somme, activation.
  • #dropoutRégularisation par dropout : le meilleur ami des réseaux profonds.
  • #activationPourquoi une activation ? ReLU, sigmoid, tanh, Leaky ReLU, GELU et le gradient qui disparaît.
  • #descente-de-gradientLa perte est un paysage. Le gradient dit où ça monte, on fait un pas dans l'autre sens.
  • #rétropropagationLe graphe de calcul rejoué à l'envers : chaque nœud reçoit ∂L/∂(lui) et la règle de la chaîne fait le reste.
  • #sur-apprentissageUn gros modèle sur peu de données : la frontière de décision se tord jusqu'à mémoriser le bruit.
  • #cnn-filtresUne image est une grille de nombres. Un filtre 3×3 glisse dessus, multiplie, additionne : c'est une convolution.
  • #is-it-einsteinIs it Einstein ? Deux visages passent au scanner d’un réseau qui n’a appris qu’Einstein : Haythem → NON, Einstein → OUI. Regarder est gratuit ; toucher est Premium.
  • #embeddings-3dUn mot devient un vecteur : proches dans l'espace = proches en sens, et on peut calculer dessus.