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 @@ -1261,7 +1261,7 @@
"| Exécuter la définition | §1 | $n!$ compté exactement ; perm(0/1) = couplages parfaits vérifié contre énumération brute (règle d'or du comptage) |\n",
"| Mesurer le fossé | §2 | Comptes canoniques par formules fermées validées par instrumentation ($n \\le 7$) ; à $n=20$ : définition $4{,}9 \\times 10^{19}$ opérations, Gauss 5 149 ; Ryser/det $\\approx 1{,}6 \\times 10^4$ en temps à $n=16$ |\n",
"| Nommer la théorie | §3 | #P-difficulté (Valiant 1979) maintenue au niveau **Cité** ; FPRAS non négatif (JSV 2004) comme exception qui désigne les signes |\n",
"| Faire tourner la loi | §4 | Distribution $\u000bert \\mathrm{perm} \u000bert^2$ exacte sur 56 / 924 / 12 870 sorties ; TV(échantillon, exact) $\\to 0$ ; coût d'énumération extrapolé $6 \\times 10^{13}$ opérations à $(14, 28)$ |\n",
"| Faire tourner la loi | §4 | Distribution $\\vert \\mathrm{perm} \\vert^2$ exacte sur 56 / 924 / 12 870 sorties ; TV(échantillon, exact) $\\to 0$ ; coût d'énumération extrapolé $6 \\times 10^{13}$ opérations à $(14, 28)$ |\n",
"| Sonder Mathlib | §5 | `Matrix.permanent` **existe** (114 lignes, forme $n!$) contre un dossier `Determinant/` entier — l'objet du notebook vit dans Mathlib à l'état de définition, sans sa couche algorithmique ni complexité |\n",
"\n",
"**Ce que 2011 a fondé ici.** Deux formules sœurs séparées par des signes : l'une est le\n",
Expand Down Expand Up @@ -1317,8 +1317,8 @@
"end_time": "2026-09-19T09:10:44.972522",
"environment_variables": {},
"exception": null,
"input_path": "D:\\Dev\\CoursIA-complexity03\\MyIA.AI.Notebooks\\Complexity\\Complexity-03-AaronsonArkhipov-PermanenteBosonSampling.ipynb",
"output_path": "D:\\Dev\\CoursIA-complexity03\\MyIA.AI.Notebooks\\Complexity\\Complexity-03-AaronsonArkhipov-PermanenteBosonSampling_output.ipynb",
"input_path": "Complexity-05-AaronsonArkhipov-PermanenteBosonSampling.ipynb",
"output_path": "Complexity-05-AaronsonArkhipov-PermanenteBosonSampling.ipynb",
"parameters": {
"BATCH_MODE": "true"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -927,7 +927,7 @@
"« compression implies understanding ». On le rend ici **explicite et falsifiable**.\n",
"\n",
"**Hypothèse** : le modèle qui atteint le MDL minimal sur le train doit aussi minimiser le coût de codage\n",
"(*negative log-likelihood*, NLL) d'un **held-out** de même loi — autrement dit, l'ordre $k^\\*$ sélectionné\n",
"(*negative log-likelihood*, NLL) d'un **held-out** de même loi — autrement dit, l'ordre $k^*$ sélectionné\n",
"par le MDL doit coïncider avec celui qui généralise. On fait varier l'ordre du modèle $k$ (le coût de\n",
"code du modèle croît comme $k_{states}^k$) et on confronte $\\mathrm{MDL}_{train}(k)$ à\n",
"$\\mathrm{NLL}_{held-out}(k)$.\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1400,7 +1400,7 @@
"prédicteur ne peut battre.\n",
"\n",
"Ce plancher se calcule en forme fermée. Le meilleur prédicteur possible est\n",
"$\\varepsilon^\\*(x_t, t) = \\big(x_t - \\sqrt{\\bar\\alpha(t)}\\,\\mathbb{E}[x_0 \\mid x_t]\\big)/\\sqrt{1-\\bar\\alpha(t)}$,\n",
"$\\varepsilon^*(x_t, t) = \\big(x_t - \\sqrt{\\bar\\alpha(t)}\\,\\mathbb{E}[x_0 \\mid x_t]\\big)/\\sqrt{1-\\bar\\alpha(t)}$,\n",
"et comme $p(x_t \\mid x_0)$ est gaussienne en $x_0$, la loi a posteriori\n",
"$p(x_0 \\mid x_t)$ reste un **mélange de gaussiennes** : la précision de chaque composante\n",
"du prior s'ajoute à celle de la vraisemblance. C'est cette forme fermée qu'on implémente\n",
Expand Down Expand Up @@ -1646,7 +1646,7 @@
"Ce profil est **imposé par le problème**, pas par l'optimisation. À chaque $t$, $x_t$ ne\n",
"détermine pas $\\varepsilon$ : il subsiste une variance conditionnelle irréductible, dont la\n",
"cellule précédente donne la forme fermée — avec son contrôle indépendant\n",
"$\\varepsilon^\\* = -\\sqrt{1-\\bar\\alpha}\\,s$, vérifié à $10^{-13}$. C'est ce plancher que\n",
"$\\varepsilon^* = -\\sqrt{1-\\bar\\alpha}\\,s$, vérifié à $10^{-13}$. C'est ce plancher que\n",
"trace la colonne `plancher` du tableau, et le rapport `mesuree/plancher` est la seule\n",
"lecture qui ait un sens :\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1311,7 +1311,7 @@
"\n",
"3. **La diversité doit baisser.** Si elle ne baisse pas, la guidance mesurée n'extrapole rien. Une interpolation strictement entre $w=0$ et $w=1$ ne peut pas non plus expliquer une adhérence qui monte *au-delà* de celle de $w=1$ : c'est la signature de l'extrapolation.\n",
"\n",
"4. **La MMD est un compromis, pas un classement.** Elle agrège fidélité et variété dans un seul nombre. Il est normal — et attendu — que son minimum ne tombe pas au même $w$ que le maximum d'adhérence. Un notebook qui ne présenterait que la MMD conclurait « $w^\\*$ est optimal » ; les trois axes ensemble disent « $w^\\*$ arbitre entre deux biens ».\n",
"4. **La MMD est un compromis, pas un classement.** Elle agrège fidélité et variété dans un seul nombre. Il est normal — et attendu — que son minimum ne tombe pas au même $w$ que le maximum d'adhérence. Un notebook qui ne présenterait que la MMD conclurait « $w^*$ est optimal » ; les trois axes ensemble disent « $w^*$ arbitre entre deux biens ».\n",
"\n",
"5. **Le rang dépend du noyau, et il faut le dire.** La dernière boucle revérifie le classement à trois bandes passantes. Si le meilleur $w$ change avec $\\sigma$, alors **le classement des poids est sous-déterminé par l'instrument** — exactement la limite que le 3.6c a rencontrée sur les schedules et qui a ouvert l'issue #16137. Ici, elle est mesurée dès le premier passage au lieu d'être découverte après coup.\n",
"\n",
Expand Down Expand Up @@ -1410,8 +1410,8 @@
"end_time": "2026-09-19T13:47:17.561591",
"environment_variables": {},
"exception": null,
"input_path": "D:\\Dev\\CoursIA-16795-qc\\MyIA.AI.Notebooks\\ML\\DataScienceWithAgents\\03-DeepLearning\\3.6e-Modeles-Generatifs-Conditionnels-from-scratch.ipynb",
"output_path": "D:\\Dev\\CoursIA-16795-qc\\MyIA.AI.Notebooks\\ML\\DataScienceWithAgents\\03-DeepLearning\\3.6e-Modeles-Generatifs-Conditionnels-from-scratch_output.ipynb",
"input_path": "3.6e-Modeles-Generatifs-Conditionnels-from-scratch.ipynb",
"output_path": "3.6e-Modeles-Generatifs-Conditionnels-from-scratch.ipynb",
"parameters": {},
"start_time": "2026-09-19T13:45:31.356815",
"version": "2.7.0"
Expand Down
4 changes: 2 additions & 2 deletions MyIA.AI.Notebooks/ML/ML.Net/ML-1-Introduction-Python.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -591,9 +591,9 @@
"source": [
"### Interprétation : perfection apparente et sur-apprentissage\n",
"\n",
"L'accuracy de 100 % et l'AUC de 1,000 sont **parfaits** — et c'est précisément le problème. Avec 12 exemples et 2 features (montant, heure), les classes sont **linéairement séparables par construction** : les transactions suspectes ont toutes un montant > 2000 $ et une heure < 6 h, les normales < 500 $ et > 8 h. La régression logistique n'a aucune difficulté à trouver une frontière qui les sépare sans erreur.\n",
"L'accuracy de 100 % et l'AUC de 1,000 sont **parfaits** — et c'est précisément le problème. Avec 12 exemples et 2 features (montant, heure), les classes sont **linéairement séparables par construction** : les transactions suspectes ont toutes un montant > 2000 \\$ et une heure < 6 h, les normales < 500 \\$ et > 8 h. La régression logistique n'a aucune difficulté à trouver une frontière qui les sépare sans erreur.\n",
"\n",
"Ce score parfait sur le **jeu d'entraînement** ne dit rien sur la généralisation : en production, une transaction à 1 800 $ à 7 h du matin (proche de la frontière) serait classée avec une probabilité bien inférieure à 100 %, et potentiellement mal. La leçon : un score parfait sur des données synthétiques séparables est un **signal d'alerte**, pas de succès. Il faut des données plus bruitées, ou une évaluation sur un jeu de test indépendant, pour mesurer la performance réelle."
"Ce score parfait sur le **jeu d'entraînement** ne dit rien sur la généralisation : en production, une transaction à 1 800 \\$ à 7 h du matin (proche de la frontière) serait classée avec une probabilité bien inférieure à 100 %, et potentiellement mal. La leçon : un score parfait sur des données synthétiques séparables est un **signal d'alerte**, pas de succès. Il faut des données plus bruitées, ou une évaluation sur un jeu de test indépendant, pour mesurer la performance réelle."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1284,9 +1284,7 @@
"source": [
"### Lecture — l'attribution L3 est propre à l'unité, l'attribution L2 est une moyenne\n",
"\n",
"Les deux unités reçoivent le **même** effet interventionnel moyen (+0.50 : c'est une propriété du modèle, pas de l'individu) mais des **L3 SV différentes** : l'unité à SES élevé et l'unité à SES faible ne doivent pas la même chose à $A$ — leur contexte $Z^*$ et leurs bruits $\u000b\n",
"arepsilon_W, \u000b\n",
"arepsilon_Y$, conservés par l'abduction, pèsent dans la décomposition. C'est exactement la hiérarchie de Pearl rendue visible dans l'attribution : **L2 ne peut pas dire ça** (le `do` moyen efface l'unité), L1 non plus (le conditionnement mélange association et effet — écart +0.34 de la section 8).\n",
"Les deux unités reçoivent le **même** effet interventionnel moyen (+0.50 : c'est une propriété du modèle, pas de l'individu) mais des **L3 SV différentes** : l'unité à SES élevé et l'unité à SES faible ne doivent pas la même chose à $A$ — leur contexte $Z^*$ et leurs bruits $\\varepsilon_W, \\varepsilon_Y$, conservés par l'abduction, pèsent dans la décomposition. C'est exactement la hiérarchie de Pearl rendue visible dans l'attribution : **L2 ne peut pas dire ça** (le `do` moyen efface l'unité), L1 non plus (le conditionnement mélange association et effet — écart +0.34 de la section 8).\n",
"\n",
"La vérification imprimée (somme des $\\phi^{L3}$ = $NTE(Z,A,W \\mid v)$ à la précision Monte-Carlo) est le Théorème 6.2.1 en action : la décomposition en GDE est exacte pour **chaque** ordre, la moyenne sur les ordres hérite de l'exactitude — la propriété d'efficacité de Shapley, obtenue causalement.\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -539,7 +539,7 @@
"Les effets directs/indirects **naturels** (Pearl ; R-90 déf. 4.2) sont des contrefactuels **imbriqués** —\n",
"X prend deux valeurs différentes dans le même contraste :\n",
"\n",
"$$NDE_{x_0,x_1}(y) = P(y_{x_1, W_{x_0}}) - P(y_{x_0}) \\qquad \\text{(Eq. 4.7 : direct, médiateur figé « comme si x_0 »)}$$\n",
"$$NDE_{x_0,x_1}(y) = P(y_{x_1, W_{x_0}}) - P(y_{x_0}) \\qquad \\text{(Eq. 4.7 : direct, médiateur figé « comme si } x_0 \\text{ »)}$$\n",
"$$NIE_{x_1,x_0}(y) = P(y_{x_1, W_{x_0}}) - P(y_{x_1}) \\qquad \\text{(Eq. 4.8 : indirect, par différence)}$$\n",
"\n",
"$y_{x_1, W_{x_0}}$ se lit : « le score si $A{:=}1$ **et** si la formation restait celle qu'elle aurait\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8828,9 +8828,9 @@
"\n",
"Le choix du nombre de composantes K est un problème central en melange de Gaussiennes. Le **BIC (Bayesian Information Criterion)** penalise la vraisemblance par le nombre de paramètres :\n",
"\n",
"865BIC_K = -2 \\ln(\\hat{L}_K) + p_K \\ln(n)865\n",
"$$BIC_K = -2 \\ln(\\hat{L}_K) + p_K \\ln(n)$$\n",
"\n",
"ou $\\hat{L}_K$ est la vraisemblance maximisee, $ le nombre de paramètres du modèle a K composantes, et $ le nombre de données.\n",
"ou $\\hat{L}_K$ est la vraisemblance maximisee, $p_K$ le nombre de paramètres du modèle a K composantes, et $n$ le nombre de données.\n",
"\n",
"**Objectif** : Pour un jeu de données melange, comparer le BIC pour K=1,2,3,4 et identifier le K optimal.\n",
"\n",
Expand Down
12 changes: 6 additions & 6 deletions MyIA.AI.Notebooks/RL/rl_12_distributional_rl.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@
"\n",
"L'opérateur de Bellman distributionnel transporte la distribution de retour :\n",
"\n",
"$$T Z(s,a) \\;\\stackrel{D}{=}\\; R(s,a) + \\gamma\\, Z(s', a^\\*),\\qquad a^\\* = \\arg\\max_{a'} Q(s', a').$$\n",
"$$T Z(s,a) \\;\\stackrel{D}{=}\\; R(s,a) + \\gamma\\, Z(s', a^*),\\qquad a^* = \\arg\\max_{a'} Q(s', a').$$\n",
"\n",
"Problème : appliquer $z \\mapsto r + \\gamma z$ **deplace les atomes hors du support fixe** $\\{z_i\\}$. C51 resout cela par une **projection categorielle** $\\Phi$ : on clippe chaque atome transforme $\\hat{T}z_j = \\mathrm{clip}(r + \\gamma z_j,\\, V_{\\min}, V_{\\max})$, on calcule sa position fractionnaire $b_j = (\\hat{T}z_j - V_{\\min})/\\Delta z$, et on **repartit sa masse de probabilite** sur les deux atomes voisins $\\lfloor b_j\\rfloor$ et $\\lceil b_j\\rceil$ au prorata de la distance. La perte est ensuite l'**entropie croisee** entre la cible projetee et la distribution predite.\n",
"\n",
Expand Down Expand Up @@ -530,8 +530,8 @@
"### 4.3 La perte distributionnelle\n",
"\n",
"A chaque pas d'apprentissage :\n",
"1. on choisit l'action greedy $a^\\*$ a l'etat suivant **selon l'esperance du target network** ;\n",
"2. on recupere sa distribution $p(s', a^\\*)$ et on la **projette** via $\\Phi$ pour obtenir la cible $m$ ;\n",
"1. on choisit l'action greedy $a^*$ a l'etat suivant **selon l'esperance du target network** ;\n",
"2. on recupere sa distribution $p(s', a^*)$ et on la **projette** via $\\Phi$ pour obtenir la cible $m$ ;\n",
"3. la perte est l'**entropie croisee** $-\\sum_i m_i \\log p_i(s,a)$ entre cible projetee et distribution predite pour l'action jouee."
]
},
Expand Down Expand Up @@ -876,7 +876,7 @@
"| Aspect | DQN ([RL-6](rl_6_dqn_policy_gradient.ipynb)) | C51 (ce notebook) |\n",
"|--------|------|-----|\n",
"| Sortie par action | un scalaire $Q(s,a)$ | une distribution $p(s,a)$ sur 51 atomes |\n",
"| Cible de Bellman | $r + \\gamma \\max_{a'} Q(s',a')$ | $\\Phi\\big(r + \\gamma Z(s',a^\\*)\\big)$ (projetee) |\n",
"| Cible de Bellman | $r + \\gamma \\max_{a'} Q(s',a')$ | $\\Phi\\big(r + \\gamma Z(s',a^*)\\big)$ (projetee) |\n",
"| Perte | erreur quadratique (Huber) | entropie croisee distributionnelle |\n",
"| Information apprise | esperance seule | esperance **+ variance, modes, asymetrie** |\n",
"| Politique greedy | $\\arg\\max_a Q$ | $\\arg\\max_a \\mathbb{E}[Z]$ (mais on peut faire mieux : voir Exercice 3) |\n",
Expand Down Expand Up @@ -1234,8 +1234,8 @@
"end_time": "2026-09-19T10:03:45.684465",
"environment_variables": {},
"exception": null,
"input_path": "D:\\Dev\\CoursIA-16795\\MyIA.AI.Notebooks\\RL\\rl_12_distributional_rl.ipynb",
"output_path": "D:\\Dev\\CoursIA-16795\\MyIA.AI.Notebooks\\RL\\rl_12_distributional_rl_output.ipynb",
"input_path": "rl_12_distributional_rl.ipynb",
"output_path": "rl_12_distributional_rl.ipynb",
"parameters": {},
"start_time": "2026-09-19T10:02:02.475771",
"version": "2.7.0"
Expand Down
1 change: 1 addition & 0 deletions scripts/notebook_tools/twin_pairs.d/ml-1-introduction.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: "Modele nominal lib-vs-lib #10382 (moteurs distincts, chacun prod) : C# = Microsoft.ML (NuGet officiel Microsoft.ML, native .NET : Microsoft.ML.Transforms/Regression/Clustering/TimeSeries) et Python = scikit-learn (pip sklearn, native Python) -- chaque cote atteint le moteur SOTA ML de son ecosysteme, ni pont intermediaire ni reimplementation. Aucune asymetrie de machinerie a corriger. Verifie firsthand : C# Microsoft.ML refs + execution_count, Python sklearn imports."
known_differences:
- "2026-09-25 (drift unilateral myia-po-2026:CoursIA, PR #17755) : tranche « residuel » du rollout de rendu mathematique #17498, markdown-only cote Python. Trois devises non echappees (1 800 $, > 2000 $, < 500 $) corrigees en devise echappee : le dollar de devise ouvrait un scope math que rien ne fermait (un orphelin mesure, plus un faux scope de prose forme par les deux autres, invisibles a la detection d'orphelins de l'organe). Le jumeau C# (ML-1-Introduction.ipynb) mesure 0 defaut de check_math_render, jambe KaTeX on, et n'a pas ete touche : la correction est unilaterale a juste titre. Aucun strip outile en attente (probe banner 0, papermill 0, machine paths 0)."
- "2026-08-15 : correction d'auteurs falsifies (issue #11044, tranche W3C SPARQL / ML.NET KDD) — citations remises a leurs auteurs reels (Amizadeh S., DOI KDD, Protocol et al., etc.), markdown-only, aucun changement d'engine/outputs. Parite semantique conservee ; rebaseline content SHA (re-audit 2026-08-15, myia-po-2026:CoursIA-2)."
- "Socle pedagogique commun : regression lineaire (R2, MAE) + regression logistique (accuracy, ROC-AUC). Dataset : prediction de prix / classification binaire."
- "Idiomes framework : C# = `Microsoft.ML` (API imperative MLContext -> PredictionEngine, schema via classes [ColumnName]). Python = `sklearn.linear_model` (LinearRegression, LogisticRegression) fonctionnel (estimator.fit/predict), metrics `r2_score, mean_absolute_error, accuracy_score, roc_auc_score`."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-25'
by: myia-po-2026:CoursIA
python_sha: d70a0e5e02956f260512db3eae72a9b1e24f9db5
csharp_sha: 0aa813e2da6ef0fa5afac9ad7e98d557cc2d9dd4
content_python_sha: 39d4d8b2b65e605e276f44b9eb56cf442716d87bd6d7b7341c7cf35fa28fd434
content_csharp_sha: b52736f474751642d6afac107f15c3b7d83ce6a8e33d962895c61948381e6d62
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: "Modele nominal lib-vs-lib cite par owner #10382 (\"PyMC vs Infer, 2 moteurs qui brillent\") : C# = Microsoft Infer.NET (Microsoft.ML.Probabilistic, NuGet officiel, native .NET, inférence variationnelle EP/VMP) et Python = PyMC (pip pymc, native Python, NUTS/HMC + ADVI). Chaque cote atteint le moteur SOTA de son ecosysteme probabiliste -- ni pont intermediaire ni reimplementation. Aucune asymetrie de machinerie a corriger. Verifie firsthand : C# Microsoft.ML.Probabilistic refs + execution_count, Python pymc imports."
known_differences:
- "2026-09-25 (drift unilateral myia-po-2026:CoursIA, PR #17755) : tranche « residuel » du rollout de rendu mathematique #17498, markdown-only cote C# (Infer-2-Gaussian-Mixtures.ipynb, le cote csharp de cette paire). Trois corrections dans la meme cellule : une formule nue encadree en affichage, le retrait du marqueur d'ecriture 865 (une seule occurrence dans tout le corpus balaye, 11 608 carnets) et les deux symboles p_K puis n reperdus par la phrase voisine (reconstruction declaree au body de la PR). Le jumeau Python (PyMC-02-Gaussian-Mixtures.ipynb) mesure 0 defaut d'organe et ne porte aucun bloc BIC : la correction est unilaterale a juste titre. Aucun strip outile en attente (probe banner 0, papermill 0, machine paths 0)."
- '2026-08-21 (rebaseline asymetrique myia-po-2024:CoursIA-2) : PR #12065 corrige heading_in_list cote C# (Infer-2-Gaussian-Mixtures.ipynb, 1 finding) tandis que le jumeau Python (PyMC-02-Gaussian-Mixtures.ipynb) etait deja a 0 finding. La convergence unilaterale est legitime (cf ai-01 arbitrage 2026-08-21 15:00Z, DM msg-20260821T130006-lc9u2c) : la parite reelle s''ameliore, elle n''est pas enshrinee. Aucun strip outille en attente (probe banner 0, papermill 0, machine paths 0).'
- 'Socle pedagogique commun : melanges de distributions gaussiennes (GMM) modelise dans les deux stacks.'
- 'Moteurs d''inference distincts : C# Infer.NET = inference deterministe approchee (Expectation Propagation / Variational
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-25'
by: myia-po-2026:CoursIA
python_sha: 7001a984014ec790b09ea947cf0ded17647630e9
csharp_sha: 256abd27e087bfec399fc01d9783c1a2531c4309
content_python_sha: 07c3c57571e9fe14f7cb4e7da6298b7316b8540ed55b425a165188f5abc81bdc
content_csharp_sha: 6ad93d79962c259841b8d992a652c10fd9f885e064188ff95d513cad2cb91d11
Loading