Skip to content
Merged
Show file tree
Hide file tree
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)\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",
"\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

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ séries (RL, PostTraining, ML-Training-Pipeline). L'entraînement final du 2.9 e
| [3.2-Optimisateurs](3.2-Optimisateurs.ipynb) | Momentum, Adagrad, RMSProp, Adam et schedules, écrits en NumPy pur puis validés pas à pas contre `torch.optim` | **La parité exacte** : les 5 mises à jour sont celles de torch | GD/momentum/Adam à 1,11e-16, Adagrad bit-à-bit (0,00e+00), RMSProp à 2,22e-16 (float64, 1 pas) ; Beale : 5 trajectoires superposées (facteur 200 entre lr utilisables) ; MLP du 3.1 : 5 optimisateurs × 3 graines (RMSProp 0,059 < Adam 0,061 < … < GD 0,070) ; schedules : coût en full-batch déterministe, gain sous le plancher de bruit en mini-batch |
| [3.4-Attention-Transformer-From-Scratch](3.4-Attention-Transformer-From-Scratch.ipynb) | De l'attention mono-tête lisible sur l'inversion de séquence au mini-GPT de 1,25 M entraîné dans le notebook | **L'attention jusqu'au bout, sur CPU** : attention + masque causal + multi-têtes + bloc pré-norme, équivalence numérique avec `torch.nn`, mini-GPT char-level entraîné (117 s) sur le *Horla* (Maupassant, domaine public, 59 k caractères) | sac de mots A = B pour phrases opposées (1-9) ; inversion : poids requete 0 = `[0,007 0,007 0,007 0,007 0,007 0,967]` ; multi-têtes maison vs `torch.nn.MultiheadAttention` à 2,38e-07 (assert allclose 1e-5) ; mini-GPT 1 251 040 paramètres : perte ln(85)=4,44 → train 2,46 / val 2,45 en 800 étapes (117 s), perplexité val 11,5 ; 4 têtes spécialisées post-entraînement (diagonale 0,110 / 0,172 / 0,133 / 0,102) |
| [3.5-Phenomenes-de-Generalisation](3.5-Phenomenes-de-Generalisation.ipynb) | Grokking et double descente reproduits en NumPy pur (MLP à embeddings + Adam à la main), confrontés à la borne PAC du 2.8 | **Le phénomène sans la boîte noire** : mémorisation → transition abrupte, et le W de la double descente | garde gradient ≤ 1e-6 (embeddings inclus) ; grok mesuré : train saturé ~500 pas, test 100 % des dizaines de milliers de pas plus tard (wd = 1) ; contre-témoin wd = 0 ; double descente : pic au seuil M ≈ n (×5 le creux), asymptote moderne sous le creux classique, 20 graines |
| [3.6-Modeles-Generatifs](3.6-Modeles-Generatifs.ipynb) | VAE, GAN et diffusion (DDPM) écrits en NumPy pur, même cible (huit modes sur un cercle), même budget (6 000 pas, batch 256, largeur 64), face à une baseline GMM ajustée par EM | **Trois objectifs, trois échecs** : le VAE couvre mais moyenne, le GAN s'effondre, la diffusion raffine au prix de 100 passes par échantillon | garde gradient 1,4e-08 (ELBO + reparamétrisation) et 3,2e-10 (eps-net) ; multi-4-graines : GMM 8/8 disp 0,99 (2,2 s) ; VAE 8/8 disp 6,0 ; GAN 1,5 ± 0,5 modes ; DDPM 8/8 disp 1,51 ; trajectoire de denoising en 5 instantanés (t = 99 → 0) |

## Feuille de route

Expand Down
Loading