Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"source": [
"# 3.5 — Grokking et double descente : quand la généralisation défie le manuel\n",
"\n",
"**Navigation** : [<< 2.9-Grokking (boîte noire)](../02-ML-Cours/2.9-Grokking-Generalisation.ipynb) · [2.8-Théorie-PAC](../02-ML-Cours/2.8-Theorie-PAC.ipynb) · [Feuille de route de la série](README.md) · [3.6-Modeles-Generatifs >](3.6-Modeles-Generatifs.ipynb)\n",
"**Navigation** : [<< 2.9-Grokking (boîte noire)](../02-ML-Cours/2.9-Grokking-Generalisation.ipynb) · [2.8-Théorie-PAC](../02-ML-Cours/2.8-Theorie-PAC.ipynb) · [Feuille de route de la série](README.md) · [3.6-Modèles-Generatifs >](3.6-Modeles-Generatifs.ipynb)\n",
"\n",
"Le notebook [2.9](../02-ML-Cours/2.9-Grokking-Generalisation.ipynb) vous a montré un réseau PyTorch qui mémorise pendant des milliers de pas, puis généralise **d'un coup** — le *grokking*. Le notebook [2.8](../02-ML-Cours/2.8-Theorie-PAC.ipynb) vous a donné l'outil théorique classique : une borne qui dit qu'ajouter de la capacité **coûte** en généralisation.\n",
"\n",
Expand Down Expand Up @@ -236,7 +236,7 @@
"tags": []
},
"source": [
"**Lecture.** Le backward écrit à la main reste exact sur ce montage : écart relatif de l'ordre de $10^{-7}$ à $10^{-9}$, cinq ordres de grandeur sous le seuil — la chaîne des gradients traverse désormais la **table d'embeddings** (`np.add.at` accumule le gradient des deux occurrences de chaque nombre). Le socle du 3.1 s'étend sans réécriture : une couche de plus, une entrée indexée, et le même test de garde le prouve.\n",
"**Lecture.** Le backward écrit à la main reste exact sur ce montage : écart relatif max de $2\\times 10^{-7}$, cinq fois sous le seuil de $10^{-6}$ — la chaîne des gradients traverse désormais la **table d'embeddings** (`np.add.at` accumule le gradient des deux occurrences de chaque nombre). Le socle du 3.1 s'étend sans réécriture : une couche de plus, une entrée indexée, et le même test de garde le prouve.\n",
"\n",
"***\n",
"\n",
Expand Down Expand Up @@ -621,10 +621,10 @@
"tags": []
},
"source": [
"**Lecture.** Les trois régimes sont là, et le pic tombe au seuil $M \\approx n$ :\n",
"**Lecture.** Les trois régimes sont là, et le pic tombe juste au-delà du seuil d'interpolation ($M = 105$ mesuré, pour $n = 80$) :\n",
"\n",
"1. **La descente classique** ($M < n$) : chaque feature ajoutée réduit le biais, l'erreur de test descend — c'est la branche que la théorie de 2.8 explique très bien.\n",
"2. **Le pic** ($M \\approx n$) : le modèle a *exactement* la capacité d'interpoler les $n$ points — le bruit compris — sans aucun degré de liberté pour lisser. C'est le point le plus **fragile** du paysage : chaque graine y est une loterie (l'écart-type y est maximal), et c'est précisément là que la sagesse classique (« arrête-toi avant le surajustement ») place son optimum… à un cheveu du précipice.\n",
"2. **Le pic** (juste au-delà du seuil, $M = 105$ mesuré pour $n = 80$) : le modèle vient d'atteindre la capacité d'interpoler les $n$ points — le bruit compris — avec presque aucun degré de liberté pour lisser. C'est le point le plus **fragile** du paysage : chaque graine y est une loterie (l'écart-type y est maximal), et c'est précisément là que la sagesse classique (« arrête-toi avant le surajustement ») place son optimum… à un cheveu du précipice.\n",
"3. **La redescente moderne** ($M \\gg n$) : toutes les solutions qui interpolent sont désormais multiples ; le minimum de norme en choisit une **douce**, qui étale le bruit plutôt que de le coller point à point. L'erreur redescend — sous le creux classique, dans ce montage.\n",
"\n",
"Le message n'est pas « les gros modèles sont magiques » : c'est que la courbe en U du manuel est la **moitié gauche** d'une courbe en W, et que le pire endroit — celui qu'un réglage naïf de capacité touche en premier — est le seuil d'interpolation. Les réseaux modernes vivent largement à droite de ce seuil : surparamétrés *par construction*, et sauvés par la sélection implicite de solutions de petite norme.\n",
Expand Down
Loading