- La chaîne qu'on applique (p03-02) : direction −∇L, pas η < 2/courbure, convexité, conditionnement κ. Rien n'est redémontré ici : chaque marche pose la règle et la chiffre.
- D'où viennent A et b (p02-02, exemple 1 de D4) : jeu colinéaire, X⊤X de valeurs propres 0 et 70, le +λI du MAP gaussien qui translate le spectre.
- Quadratique et gradient. Pour L(β) = ½β⊤Aβ − b⊤β avec A symétrique, ∇L = Aβ − b. C'est la seule dérivation utilisée.
- Base propre d'une symétrique. Avi = λivi, vecteurs orthogonaux : un système couplé de deux équations y devient deux équations indépendantes.
Les six marches, sur le même bol
Le décor
Trois observations, deux features dont la seconde vaut le double de la première. Sans pénalité, X⊤X a une valeur propre nulle et la solution n'est pas unique. Ridge à λ = 1 ajoute I, et la loss devient une quadratique à minimum unique :
« Le jeu est colinéaire et X⊤X a une valeur propre nulle, donc le +λI du prior gaussien la relève à 1, donc la loss pénalisée est une quadratique définie positive dont on peut descendre le bol. »
Données de D4 : x1 = (1, 2, 3), x2 = (2, 4, 6) = 2x1, y = (1, 2, 3).
Vérification à la main : 1² + 2² + 3² = 14, 1·2 + 2·4 + 3·6 = 28, 2² + 4² + 6² = 56 ; et X⊤y = (14 ; 28) parce que y = x1.
Un seul objet à descendre pour tout le déroulé : A = [[15, 28], [28, 57]], b = (14 ; 28). Le minimum vaudra L = −6,901.
Le gradient, et où il pointe
Sur une quadratique, ∇L(β) = Aβ − b. Évalué en (0 ; 0) il se réduit à −b, ce qui dit d'un coup d'œil où pointe la pente. La direction de plus forte descente est −∇L normalisé.
« Le gradient d'une quadratique vaut Aβ − b, donc en zéro il vaut −b = (−14 ; −28), donc la pente y pointe exactement dans la direction (1 ; 2)/√5, celle où vit tout le signal X⊤y. »
(0,447 ; 0,894) est (1 ; 2)/√5 : √5 = 2,236, 1/2,236 = 0,447. Depuis l'origine, la descente viserait donc la droite β1 + 2β2 = 1 — la droite des solutions OLS de D4 — perpendiculairement, en (0,2 ; 0,4), le point de norme minimale de cette droite.
Les deux courbures tronc
La courbure de L dans une direction est la valeur propre de A associée. Pour une 2×2, trace et déterminant suffisent : λ1 + λ2 = 72 et λ1λ2 = 71.
« La trace vaut 72 et le déterminant 71, donc les valeurs propres sont racines de λ² − 72λ + 71, donc elles valent 1 et 71, donc le conditionnement vaut 71 et le pas admissible s'arrête à 2/71 = 0,028. »
Déterminant : 15·57 − 28·28 = 855 − 784 = 71. Trace : 15 + 57 = 72. Les deux vecteurs propres se vérifient en une multiplication :
| direction | Av | λ | nom |
|---|---|---|---|
| (1 ; 2) | (15 + 56 ; 28 + 114) = (71 ; 142) | 71 | le mur |
| (−2 ; 1) | (−30 + 28 ; −56 + 57) = (−2 ; 1) | 1 | la vallée |
La vallée est la direction de colinéarité : sa courbure valait 0 avant pénalisation, c'est λI qui l'a portée à 1 (p02-02). Le bol est 71 fois plus raide en travers qu'en long.
ηmax = 2/71 = 0,0282. Au-delà, la coordonnée raide est multipliée par un facteur de module > 1 à chaque pas.
Trois pas à la main, η = 0,02
Un pas, c'est β ← β − η(Aβ − b). Rien d'autre. Sur l'écart e = β − β, chaque coordonnée propre suit ei ← (1 − ηλi)ei, indépendamment de l'autre.
« L'écart de départ se décompose sur les deux axes propres, donc chaque composante est multipliée par son propre facteur, donc la raide est ramenée à 42 % à chaque pas quand la plate n'en perd que 2 %, donc c'est la plate qui décide du temps que ça prend. »
Écart de départ e0 = (1 ; 0) − β = (57/71 ; −28/71), de norme 0,8944. Sa décomposition est le fait central de ce déroulé :
Le rapport vaut exactement 142 : presque tout l'écart est dans la direction que la descente traite le plus mal.
β1 = (1 ; 0) − 0,02·(1 ; 0) = (0,98 ; 0).
∇L(β1) = (15·0,98 − 14 ; 28·0,98 − 28) = (14,7 − 14 ; 27,44 − 28) = (0,7 ; −0,56), donc β2 = (0,98 ; 0) − 0,02·(0,7 ; −0,56) = (0,966 ; 0,0112).
∇L(β2) = (14,49 + 0,3136 − 14 ; 27,048 + 0,6384 − 28) = (0,8036 ; −0,3136), donc β3 = (0,9499 ; 0,0175).
| k | βk | écart à β | dont vallée |
|---|---|---|---|
| 0 | (1 ; 0) | 0,8944 | 0,8944 |
| 1 | (0,9800 ; 0) | 0,8765 | 0,8765 |
| 2 | (0,9660 ; 0,0112) | 0,8590 | 0,8590 |
| 3 | (0,9499 ; 0,0175) | 0,8418 | 0,8418 |
0,8944 × 0,98 = 0,8765, puis × 0,98 = 0,8590 : le facteur plat se lit directement dans la colonne des écarts. Trois pas ont grignoté 6 %. La composante raide, elle, est déjà tombée de 0,0063 à 0,00047 — réglée, et invisible.
Combien de pas, et pourquoi la forme fermée gagne tronc
La composante raide est réglée en une dizaine de pas : elle ne compte pas. Tout le temps part dans la vallée, qui ne se contracte que de 0,98 par pas.
Pour la diviser par dix : ln 0,1 / ln 0,98 = 113,97, soit 114 pas. Par cent : 228. Et le système ∇L = 0 est linéaire — une résolution 2×2 donne la réponse exacte, sans η à régler.
« La direction plate ne perd que 2 % par pas, donc il en faut 114 pour un facteur dix, donc le nombre d'itérations est fixé par le conditionnement et non par l'optimiseur ; et comme le gradient est linéaire en β, annuler ∇L est un système 2×2, donc ici on le résout au lieu de l'itérer. »
La forme fermée. Annuler le gradient, c'est résoudre [[15, 28], [28, 57]]β = (14 ; 28), système 2×2 de déterminant 71 :
C'est (0,2 ; 0,4) × 70/71 : le point de norme minimale de la droite OLS, rétréci d'un facteur 70/(70 + λ).
Le prix de l'itération, à η = 0,02 depuis (1 ; 0) :
| k | 0,98k | écart restant | chemin parcouru |
|---|---|---|---|
| 10 | 0,817 | 0,7308 | 18 % |
| 30 | 0,545 | 0,4879 | 45 % |
| 60 | 0,298 | 0,2661 | 70 % |
| 114 | 0,100 | 0,0894 | 90 % |
Après 60 itérations il reste encore 30 % du chemin. La résolution 2×2, elle, tient en une ligne et donne 0,197 et 0,394 exactement.
Lignes de niveau de L : des ellipses huit fois et demie plus longues que larges (√71), d'axe long la vallée. Le point bleu creux est la forme fermée (0,197 ; 0,394), le trait ambre la droite des solutions OLS de D4, le point violet le départ (1 ; 0) et la ligne rouge les 60 itérations : elle rampe le long de la vallée et n'arrive pas — après 60 pas il reste 30 % du chemin. Clique départ (0 ; 0) pour voir le mirage : la trajectoire s'y réduit à un segment sur l'axe raide, converge en six pas, et le bol allongé ne se voit plus. Monte η : à 0,0282 = 2/71 le facteur raide passe sous −1 et la trajectoire finit par quitter le cadre.
Un pas par direction : préconditionner
Le pas unique est un compromis entre deux courbures. Dans la base propre, les deux coordonnées sont indépendantes : rien n'oblige à leur donner le même η. Avec ηi = 1/λi, le facteur 1 − ηiλi vaut zéro : la coordonnée est réglée en une itération.
« Dans la base propre les deux coordonnées sont indépendantes, donc un pas de 1/λi annule chacune d'un coup, donc multiplier le gradient par A−1 fait les deux à la fois et retombe sur la forme fermée en une itération. »
| η | facteur raide | facteur plat | lecture |
|---|---|---|---|
| 1/71 = 0,0141 | 0 | 0,9859 | le mur réglé, la vallée figée |
| 1/1 = 1 | −70 | 0 | la vallée réglée, le mur explose |
| les deux à la fois : A−1 à la place de η | un seul pas | ||
C'est Newton sur une quadratique : A est la hessienne, et un pas de Newton depuis n'importe quel point tombe sur β. Le prix est A entière — O(p³) et p² coefficients.
Où ça casse casse
Deux valeurs propres, deux façons de se faire piéger : par le haut, la divergence ; par le bas, l'attente. Et une troisième, plus sournoise, quand le point de départ cache les deux.
« Une seule direction suffit à faire diverger, donc le pas est borné par la plus raide ; la plus plate n'est alors contractée au mieux que de 70/72, donc le nombre d'itérations suit le conditionnement, donc un seul essai de learning rate depuis un seul point de départ ne prouve rien. »
- η au-delà de 2/λmax diverge. À η = 0,03, le facteur raide vaut 1 − 0,03·71 = −1,13. Depuis (1 ; 0) l'écart raide ne pèse que 0,0063 au départ : la divergence met une soixantaine de pas à se voir, puis β60 = (4,64 ; 8,95) est onze fois plus loin de β que le point de départ — pendant que la coordonnée plate, elle, converge sagement. Une direction sur deux suffit à faire exploser la loss, et c'est toujours la plus raide qui fixe le plafond, même quand elle porte un millième de l'erreur.
- κ = 71 rend la vallée interminable. Même avec le meilleur pas fixe, η = 2/(1 + 71) = 0,0278, la contraction plate ne descend pas sous (κ − 1)/(κ + 1) = 70/72 = 0,9722 : il faut encore 82 pas pour diviser l'écart par dix. Le nombre d'itérations est proportionnel à κ, et κ vient des données, pas de l'optimiseur.
- Un départ chanceux masque tout. Depuis (0 ; 0), b étant colinéaire à (1 ; 2), la composante sur la vallée est exactement nulle : la descente reste sur l'axe raide et converge en six pas. On mesurerait κ = 1 sans le savoir. C'est pour cela que ce déroulé part de (1 ; 0) et non de l'origine — et pour cela qu'un seul essai de η depuis un seul point de départ ne mesure pas le conditionnement. Le bouton « départ (0 ; 0) » de la figure montre le mirage.
Résumé
- Le bol. A = X⊤X + I = [[15, 28], [28, 57]], b = (14 ; 28), ∇L = Aβ − b. Trace 72, déterminant 71.
- Les deux courbures. λ = 71 sur (1 ; 2) — le mur — et λ = 1 sur (−2 ; 1) — la vallée, la colinéarité relevée de 0 par λI. κ = 71, ηmax = 2/71 = 0,0282.
- Trois pas à η = 0,02 depuis (1 ; 0) : (0,98 ; 0), (0,966 ; 0,0112), (0,9499 ; 0,0175). L'écart 0,8944 est porté à 142 contre 1 par la vallée, et s'y contracte de 0,98 par pas.
- La forme fermée. Une résolution 2×2 : β = (14/71 ; 28/71) = (0,197 ; 0,394), soit (0,2 ; 0,4) × 70/71.
- Le coût de l'itération. Facteur plat 0,98 ⇒ 114 pas pour diviser l'écart par dix ; 82 pas même au meilleur pas fixe 2/72. Après 60 pas il reste encore 30 % du chemin.
- Préconditionner. ηi = 1/λi règle chaque coordonnée en un pas ; les deux à la fois, c'est A−1∇L, c'est-à-dire Newton, et Adam l'approche par coordonnée.
Chaîne verbalisée — le déroulé à voix haute
- Écris la loss ridge du jeu colinéaire de D4 et son gradient.L(β) = ½βᵀAβ − bᵀβ avec A = XᵀX + I = [[15, 28], [28, 57]] et b = Xᵀy = (14, 28). ∇L = Aβ − b : en (0, 0) il vaut −b = (−14, −28), et au départ retenu (1 ; 0) il vaut (1 ; 0).
- Quelles sont les courbures de ce bol, et quel pas maximal en découle ?Trace 72, déterminant 71 ⇒ λ = 1 et 71. Le mur (1, 2) à 71, la vallée (−2, 1) à 1 — celle que λI a relevée de 0. κ = 71, η_max = 2/71 = 0,0282.
- Fais le premier pas à η = 0,02, et dis ce que devient l'écart.β₁ = (1 ; 0) − 0,02·(1 ; 0) = (0,98 ; 0). L'écart 0,8944 est à 142 contre 1 sur la vallée, de facteur 1 − 0,02×1 = 0,98 : il passe à 0,8765. β₂ = (0,966 ; 0,0112), β₃ = (0,9499 ; 0,0175).
- Combien d'itérations, et pourquoi préfère-t-on résoudre ?Facteur plat 0,98 ⇒ ln0,1/ln0,98 = 114 pas par facteur dix. La forme fermée est un système 2×2 de déterminant 71 : β̂ = (14/71 ; 28/71) = (0,197 ; 0,394), soit (0,2 ; 0,4) × 70/71.
- Que ferait un pas par direction propre ?η = 1/λᵢ annule le facteur 1 − ηλᵢ : une itération par coordonnée. Les deux ensemble, c'est β − A⁻¹∇L = A⁻¹b = β̂ — Newton. Adam en fait une version diagonale dans la base canonique.
Ponts et cartes
ml::optimisation (pas maximal 2/courbure, conditionnement, préconditionnement, forme fermée contre itération).
Une carte qui résiste après ce déroulé est une carte à refondre, pas une section à relire.