#descente-de-gradient — Ré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
- 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,xety: 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. - Fais rouler la boule :
/pas 10. La flèche rouge indique−∇L, la direction où ça descend le plus vite. À chaque pas, on avance delr × ∇Ldans ce sens, et on recalcule la pente. - Le pas d'apprentissage (learning rate,
lr) fixe la longueur de chaque pas. Montons-le franchement :/lr 0.9. - 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. - À 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. - Le momentum donne de l'inertie à la boule :
v ← μ·v − lr·∇L, puisp ← 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 2et/pas 40pour comparer. - Les vraies pertes ne sont pas des bols. Passe sur
/surface collines: deux creux, un seul est le plus bas. Lance/momentum 0puis/pas 80, puis change le départ avec/depart -2 2et relance/pas 80. - Deux dernières expériences.
/surface selle: au centre, le gradient est nul… et pourtant ce n'est pas un minimum — fais/pas 10plusieurs fois et regarde la boule s'échapper./surface valleeavec/momentum 0.7puis/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∇Lpour 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./reinit— Revient 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
- #neurone — Décomposons un neurone : entrées, poids, somme, activation.
- #dropout — Régularisation par dropout : le meilleur ami des réseaux profonds.
- #activation — Pourquoi une activation ? ReLU, sigmoid, tanh, Leaky ReLU, GELU et le gradient qui disparaît.
- #descente-de-gradient — La perte est un paysage. Le gradient dit où ça monte, on fait un pas dans l'autre sens.
- #rétropropagation — Le 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-apprentissage — Un gros modèle sur peu de données : la frontière de décision se tord jusqu'à mémoriser le bruit.
- #cnn-filtres — Une image est une grille de nombres. Un filtre 3×3 glisse dessus, multiplie, additionne : c'est une convolution.
- #is-it-einstein — Is 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-3d — Un mot devient un vecteur : proches dans l'espace = proches en sens, et on peut calculer dessus.