From b46b7d5f60a22763c75415f39c9a6c022fbd0b5d Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 20:29:31 +0200 Subject: [PATCH 01/10] =?UTF-8?q?fix(notebooks,#15719):=20scan=20tables=20?= =?UTF-8?q?g5-residu=20=E2=80=94=200=20finding=20sur=205=20fichiers,=202?= =?UTF-8?q?=20NOOP=20justifies=20(prose)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb | 6 +++--- .../ML/DataScienceWithAgents/02-ML-Cours/README.md | 2 +- .../Argumentation-Onto-01-AIF-OWL2-Python.ipynb | 2 +- .../Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynb | 4 ++-- .../SL-1b-LogicalLearning-Lean-Native.ipynb | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb index 89f045f898..192053a1ea 100644 --- a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb +++ b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb @@ -157,9 +157,9 @@ "\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", + "| **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" ] diff --git a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/README.md b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/README.md index eb2f159706..e2c0211820 100644 --- a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/README.md +++ b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/README.md @@ -52,7 +52,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. diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb index 966a4e4ae8..6a992e3daf 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb @@ -567,7 +567,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 26/09 (`7cf4861691`). Le dépôt upstream produit **deux variantes HTML interactives** de la même carte, à choisir selon le contexte d'usage :\n", + "**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 26/09 (`7cf4861691`). 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", diff --git a/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynb index 08f098ca31..7249b80e5e 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynb @@ -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", @@ -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", diff --git a/MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-1b-LogicalLearning-Lean-Native.ipynb b/MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-1b-LogicalLearning-Lean-Native.ipynb index 433391d6f7..c7ae598212 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-1b-LogicalLearning-Lean-Native.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-1b-LogicalLearning-Lean-Native.ipynb @@ -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", From e230bd7363c3206ca1b10b84ff5d832c9bb23b52 Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 20:45:16 +0200 Subject: [PATCH 02/10] fix(notebooks,#15719): scan tables g5-residu sur base frais 01bae4db5 -- 6 fichiers a 0 finding, 2 NOOP justifies (prose |r| et |0,069|) --- .../Complexity-07-KolmogorovBornee-Sequences-Python.ipynb | 4 ++-- .../Argumentation-Onto-01-AIF-OWL2-Python.ipynb | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MyIA.AI.Notebooks/Complexity/Complexity-07-KolmogorovBornee-Sequences-Python.ipynb b/MyIA.AI.Notebooks/Complexity/Complexity-07-KolmogorovBornee-Sequences-Python.ipynb index 9c4f2e1f3b..8234e24e7d 100644 --- a/MyIA.AI.Notebooks/Complexity/Complexity-07-KolmogorovBornee-Sequences-Python.ipynb +++ b/MyIA.AI.Notebooks/Complexity/Complexity-07-KolmogorovBornee-Sequences-Python.ipynb @@ -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", diff --git a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb index 299bdb13f0..4bd50aa1a4 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb @@ -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", From b7d76232464ad3a3727abbd07cc0458da041b09f Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 21:42:33 +0200 Subject: [PATCH 03/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From 916d4354929e2b1e01c41846aeb293af78855809 Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 21:58:13 +0200 Subject: [PATCH 04/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From baeaa5130658aede5e385ed016c2d77893d8f865 Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 22:11:19 +0200 Subject: [PATCH 05/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais base d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From b8a50571150366d0c34d19e0a0f2f19d6dfc4fd6 Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 22:26:16 +0200 Subject: [PATCH 06/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From dfdfac3dd6c04e5d18a58d7c68cf659d0ebc526d Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 22:43:15 +0200 Subject: [PATCH 07/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From 8444d47529c18051a36b90d35a6dbc9c907f7744 Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 22:56:37 +0200 Subject: [PATCH 08/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From 0b2cc36b82bfe0b5b25ed746586b996794c72aad Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 6 Oct 2026 23:12:37 +0200 Subject: [PATCH 09/10] fix(notebooks,#15719): scan tables g5-residu re-scan frais d09acde1a -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY) From 202489e7efcb7860b3227b7fe6f78b9a5985cf1d Mon Sep 17 00:00:00 2001 From: jsboige Date: Wed, 7 Oct 2026 03:11:46 +0200 Subject: [PATCH 10/10] fix(notebooks,#19595): delimiter de tableau 5 -> 4 colonnes (ML 2.5d) La ligne de delimitation du tableau des types de derive portait 5 groupes pour un en-tete a 4 colonnes. En GFM une arite incompatible empeche la reconnaissance du tableau : les lignes etaient rendues en prose, pipes visibles, et l'echappement des pipes applique seul faisait APPARAITRE l'antislash (P(y\|x) lu avec le backslash). Cellule markdown index 4, une ligne. Aucune cellule de code touchee, aucune re-execution due (modification markdown seule, regle C.3). Co-Authored-By: Claude Sonnet 5.5 --- .../02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb index 192053a1ea..a48c3d9976 100644 --- a/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb +++ b/MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynb @@ -156,7 +156,7 @@ "## 2. Trois dérives, trois mondes de déploiement\n", "\n", "| Dérive | Ce qui change | Ce qui reste | Se corrige ? |\n", - "|---|---|---|---|---|\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",