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 @@ -89,10 +89,10 @@
"\n",
"| Terme | Longueur |\n",
"|---|---|\n",
"| numérale c | nombre de chiffres de c, **zéros traînants ignorés** (`|10| = 1`, `|250| = 2`) |\n",
"| numérale c | nombre de chiffres de c, **zéros traînants ignorés** (`\\|10\\| = 1`, `\\|250\\| = 2`) |\n",
"| `n` | 1 |\n",
"| `f(n−c)` | 1 |\n",
"| `t1 ⋆ t2` | `|t1| + |t2| + 1` |\n",
"| `t1 ⋆ t2` | `\\|t1\\| + \\|t2\\| + 1` |\n",
"\n",
"Un terme **décrit** la séquence `a0 … a(l−1)` si, en notant b le plus grand regard en arrière du terme : `b < l/2` (les cas de base restent minoritaires — règle du papier) et `t(i) = a_i` pour tout `i ≥ b`. Le terme **prédit** alors `t(l)`.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,10 @@
"## 2. Trois dérives, trois mondes de déploiement\n",
"\n",
"| Dérive | Ce qui change | Ce qui reste | Se corrige ? |\n",
"|---|---|---|---|---|\n",
"| **Covariable (covariate shift)** | `P(x)` | `P(y|x)` | oui, par pondération d'importance |\n",
"| **Étiquette (label shift)** | `P(y)` | `P(x|y)` | oui, par BBSE |\n",
"| **Concept (concept drift)** | `P(y|x)` | `P(x)` | **non, sans nouvelles étiquettes** |\n",
"|---|---|---|---|\n",
"| **Covariable (covariate shift)** | `P(x)` | `P(y\\|x)` | oui, par pondération d'importance |\n",
"| **Étiquette (label shift)** | `P(y)` | `P(x\\|y)` | oui, par BBSE |\n",
"| **Concept (concept drift)** | `P(y\\|x)` | `P(x)` | **non, sans nouvelles étiquettes** |\n",
"\n",
"Chaque monde de déploiement `W_dep_k` est construit à partir du même générateur, une seule composante modifiée à la fois. Pour chaque dérive : ce que la CV annonce (score en validation sur `W_train`) contre ce que le déploiement produit (score sur `W_dep_k`).\n"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ La thèse est volontairement classique : on ne peut évaluer ce qu'un agent gén
| [2.12-Donnees-Desequilibrees](2.12-Donnees-Desequilibrees.ipynb) | *Classes déséquilibrées* — la métrique qui ment (accuracy vs PR), stratégies de rééchantillonnage, seuillage par coût | **La courbe PR dit la vérité** : sur une classe à ~3 %, la ROC flatte, seule l'average precision rend l'arbitrage visible | synthétique `make_classification` (~3 % positifs) |
| [2.13-Analyse-Erreurs](2.13-Analyse-Erreurs.ipynb) | Le geste du praticien : diagnostiquer un modèle entraîné (tranches, worst-k, plan d'action) | **La poche invisible** : 67.6% d'erreur sur ~5% de la population, cachée dans un score global correct (82.2%) | synthétique télécom (churn, incident d'étiquetage) |
| [2.14-Explicabilite-SHAP-LIME-Contrefactuels](2.14-Explicabilite-SHAP-LIME-Contrefactuels.ipynb) | Expliquer une décision individuelle : SHAP (arbre + kernel), LIME, contrefactuels DiCE — et leurs limites communes | **Additivité exacte vs récits instables** : Tree SHAP se vérifie à 1e-16, LIME varie de seed en seed (σ jusqu'à 0.035), le contrefactuel est un autre récit | réel German Credit (credit-g, 1000×21, CSV vendé) |
| [2.14b-XAI-Shap-Attribution-Causal-Bridge](2.14b-XAI-Shap-Attribution-Causal-Bridge.ipynb) | *Pont attribution ↔ causalité* — Kernel SHAP marginal contre Tree SHAP conditionnel sur un DAG explicite (`age -> credit_amount -> default`), sur l'individu idx=773 ; puis LIME, DiCE et un contrefactuel `age=42` | **L'attribution reste une fonction du background dataset** : écarts marginal/conditionnel en valeur absolue mais même signe des contributions ; l'additivité se vérifie (base + somme φ = 0.9400 vs P(default|x) = 0.940) ; un contrefactuel (`age=42`, f(x') = 0.7200) n'est **pas** une intervention `do(.)` — l'exercice 3 (les distinguer) reste à compléter | DAG simulé (2 features, 1000 individus) |
| [2.14b-XAI-Shap-Attribution-Causal-Bridge](2.14b-XAI-Shap-Attribution-Causal-Bridge.ipynb) | *Pont attribution ↔ causalité* — Kernel SHAP marginal contre Tree SHAP conditionnel sur un DAG explicite (`age -> credit_amount -> default`), sur l'individu idx=773 ; puis LIME, DiCE et un contrefactuel `age=42` | **L'attribution reste une fonction du background dataset** : écarts marginal/conditionnel en valeur absolue mais même signe des contributions ; l'additivité se vérifie (base + somme φ = 0.9400 vs P(default\|x) = 0.940) ; un contrefactuel (`age=42`, f(x') = 0.7200) n'est **pas** une intervention `do(.)` — l'exercice 3 (les distinguer) reste à compléter | DAG simulé (2 features, 1000 individus) |
| [2.15-Donnee-Comme-Responsabilite-Python](2.15-Donnee-Comme-Responsabilite-Python.ipynb) | *La donnée comme responsabilité* — inférence d'appartenance (MIA) menée pour de vrai, confidentialité différentielle : mécanisme de Laplace, DP-SGD écrit à la main puis confronté au SOTA diffprivlib (IBM), datasheet et model card | **La protection se mesure, elle ne se déclare pas** : la forêt qui mémorise laisse fuir ses données (avantage d'attaque +0.439, AUC 0.719) quand la régression régularisée, qui généralise, retombe à +0.057 ; face à diffprivlib, le DP-SGD maison est « cohérent en tendance, divergent en ampleur » | réel `load_breast_cancer` |

> **Épilogue — au-delà du socle scikit-learn.** Les huit chapitres ci-dessus posent le socle canonique. Le notebook [2.9](2.9-Grokking-Generalisation.ipynb) fait un pas de côté vers le **deep learning** : il entraîne le premier réseau de neurones de la série (PyTorch, quelques minutes sur CPU) pour montrer le **grokking** — la généralisation qui surgit longtemps *après* la mémorisation parfaite, un phénomène que la borne PAC (2.8) ne laissait pas prévoir — et réutilise l'ACP du 2.6 pour révéler la structure apprise. Il joue le rôle d'**amorce** : le traitement canonique — montage réécrit en NumPy pur (gradient à la main), contre-témoin isolant le weight-decay, double descente — est le [3.5 — Phénomènes de généralisation](../03-DeepLearning/3.5-Phenomenes-de-Generalisation.ipynb) de la série Deep Learning, dont les exercices portent les leviers classiques (weight-decay, seuil de données) ; ceux du 2.9 lui sont propres (horloge, modulus, dimension d'embedding). Son accrétion [2.9b](2.9b-GenEFT-Theorie-Effective.ipynb) apporte la contrepartie théorique — **GenEFT**, la théorie effective de la généralisation : la longueur en bits de la relation fixe la **fraction critique** de données, et la dynamique encodeur/décodeur (les « repons », leur quantité conservée) prédit une **frontière arctan** entre mémorisation et généralisation qui ne dépend que du ratio des learning rates — le grokking devient un régime calculable. Son accrétion [2.9c](2.9c-Grokking-Diagrammes-Phases.ipynb) fait la **cartographie** : les quatre phases de l'apprentissage définies par la théorie effective de R02 (Liu, Michaud & Tegmark 2022) — compréhension, grokking, mémorisation, confusion — mesurées sur un toy à decoder appris multi-seed (le grokking y apparaît comme une **zone frontière** entre compréhension et mémorisation, pas un régime à rechercher), confirmées sur MNIST (App J), puis relues par le **ticket de loterie aux axes** (App K) — où le ticket se révèle **forgé par l'entraînement** plutôt qu'hérité de l'initialisation.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@
},
"source": [
"**Guide — les deux variantes post-traitées du traitement par Argumentum.** Le stub code `c.13` ne produit aucune carte : la mindmap de référence est **exportée par le sous-module [`ArgumentumGames/Argumentum`](https://github.com/ArgumentumGames/Argumentum) (sous-module épinglé)** au pin du 04/10 (`6bc573f`, incluant la de-curation `9e765e4b`). Le dépôt upstream produit **deux variantes HTML interactives** de la même carte, à choisir selon le contexte d'usage :\n",
"\n",
"| Variante | Chemin submodule | Mode d'intégration | Idéal pour |\n",
"|---|---|---|---|\n",
"| `Fallacies_cards_fr.html` (included) | `Cards/Fallacies/Mindmaps/fr/Fallacies_cards_fr.html` | SVG inline + `svg-pan-zoom` + Hammer pinch | Notebook Jupyter local |\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@
"| `tprSuperpos` | une matrice `p × q`, somme des bindings | définition |\n",
"| `RoleFamily` | une `Prop` : $r_i \\cdot r_j = 1$ si $i = j$, $0$ sinon | **hypothèse** d'indépendance |\n",
"| `tprReadout` | un vecteur `Fin k → ℝ` : `A *ᵥ (tprUnbind T r) + b` | **hypothèse** de décodeur affine |\n",
"| `TprApproxEntrywise` | une `Prop` : $\\forall i\\, j,\\ |S_{ij} - T_{ij}| \\le \\epsilon$ | **hypothèse** d'approximation |\n",
"| `TprApproxEntrywise` | une `Prop` : $\\forall i\\, j,\\ \\vert S_{ij} - T_{ij} \\vert \\le \\epsilon$ | **hypothèse** d'approximation |\n",
"\n",
"**Points clés** :\n",
"\n",
Expand Down Expand Up @@ -2066,7 +2066,7 @@
"| `tprUnbind_superpos` | la lecture au rôle `j` rend exactement `fs j` | `RoleFamily rs` |\n",
"| `tprSurgery` | remplacer le binding de `j` par `f'` puis relire rend exactement `f'` | `RoleFamily rs` |\n",
"| `tprSurgery_readout` | l'effet sur la sortie affine est exactement `A.mulVec (f' - fs j)` (rendu kernel, notation `*ᵥ` dans le source) | `RoleFamily rs` + décodeur affine |\n",
"| `tprUnbind_approx` | erreur de lecture bornée par `ε * ∑ |r j|` | `TprApproxEntrywise S T ε` |\n",
"| `tprUnbind_approx` | erreur de lecture bornée par `ε * ∑ \\|r j\\|` | `TprApproxEntrywise S T ε` |\n",
"\n",
"**Enseignements** :\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2010,7 +2010,7 @@
"| `EffectiveTheory.CircleOfDays` | Engels, Liao & Tegmark (R10) | le « cercle des jours » du LLM est la représentation **irréductible** 2D de `C₇` |\n",
"| `EffectiveTheory.Grokking` | Liu, Michaud & Tegmark (R02) | parallélogrammes des embeddings et lois de conservation (App. F) |\n",
"| `EffectiveTheory.GrokkingLemmas` | Liu, Michaud & Tegmark (R02) | conservation de `C = Σ E k` et hyperplan centré invariant |\n",
"| `EffectiveTheory.InfoBits` | Baek, Liu & Tegmark (R06) | contenu informationnel `b = log₂(n!/|Aut G|)` par orbit-stabilizer |\n",
"| `EffectiveTheory.InfoBits` | Baek, Liu & Tegmark (R06) | contenu informationnel `b = log₂(n!/\\|Aut G\\|)` par orbit-stabilizer |\n",
"| `EffectiveTheory.Repons` | Baek, Liu & Tegmark (R06) | clustering par classe et quantité hyperbolique conservée |\n",
"\n",
"Ces modules étaient jusqu'ici **dans l'ombre** du dépôt : leurs preuves étaient vérifiées\n",
Expand Down
Loading