ProCreations commited on
Commit
3fefb06
·
verified ·
1 Parent(s): bc5ad0b

Map exact current anchored claims to existing independent evidence

Browse files
.gitattributes CHANGED
@@ -23,9 +23,8 @@
23
  *.pth filter=lfs diff=lfs merge=lfs -text
24
  *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
  *.tar filter=lfs diff=lfs merge=lfs -text
 
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
  *.wasm filter=lfs diff=lfs merge=lfs -text
@@ -33,3 +32,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
23
  *.pth filter=lfs diff=lfs merge=lfs -text
24
  *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
 
 
26
  *.tar filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
  *.tflite filter=lfs diff=lfs merge=lfs -text
29
  *.tgz filter=lfs diff=lfs merge=lfs -text
30
  *.wasm filter=lfs diff=lfs merge=lfs -text
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ outputs/mfvi_variance_evidence.png filter=lfs diff=lfs merge=lfs -text
36
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
BUNDLE_SHA256SUMS.txt ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ e18ad18cc7e2112254f1c16d044daee370e654644792a23b1ebca0f6960d0fc9 .gitattributes
2
+ 2e14f9a2395dc62ff956955f7182f60c0f680715b1e97556839ef8df5c892fda README.md
3
+ 2104d129ab3128cc52343e799d2007365abbd00cc6056a075b996cddf62fb3f1 anchored_claim_map.json
4
+ d1c28fc0a4e07f2688d013f576cf76ffc422d278d56a52a82989e0b93b3b3964 bucket-icon.svg
5
+ b65048f46db3d8ba836d8c0c94cff2b4f8742a2b913c43488d7f0c7d1e8054a0 index.html
6
+ 706f5b342cbfdb2533aeba267f5b11d35b1ab377a47a40d0f34344c269b1aab6 legacy-pages/evidence-run/page.md
7
+ e9a272181195ab9475ba018af6a8eb88d26bcdf15023183935b08aa9b9f6f91f legacy-pages/methods-and-artifacts/page.md
8
+ 8c6cd8e1acd917ab47a1aafc9cd272fc3aa7a93f0068892e94102fcf5c5cc8e1 legacy-pages/scored-claim-scorecard/page.md
9
+ 64e1de4358c79ec0d5f2697c56f98258c025e992c94ad7b3b7801739222ca41d logbook.css
10
+ 69d73869184f936613668569980f31984be65229e77c4df4ba9604d3de70c02b logbook.js
11
+ a49863730312855cde9d5a9e2802a26f4cd0d7ff66ac47ac3a756369b6c6a446 logbook.json
12
+ 8f9ab9147ffb0ec6036e68c009d5ed91b8833119b69cebe701d89596933583c2 official_claims.json
13
+ 3f825a54a79084f870afc6baa3df4676ef9e005ac8cf3ad950875a5f724634c5 outputs/SHA256SUMS.txt
14
+ 69c0343940a6388c89ab898dd07bf024f936f5f261215080f9ec4a39c2fa06cb outputs/mfvi_variance_evidence.png
15
+ 09a1703ffd71cd4190afa437384d1e857cc432e26b9b7752ca8c419c88e52bf4 outputs/results.json
16
+ 56052d236f2d8d0cc16e16d307dd77af0d4316e090f4511056eb96264a969191 pages/claim-0-current-anchored-claim-map/page.md
17
+ 72cf91f7b0667c06d0199a581ff41ac4325b961ccf456c2d00690008be3bf758 pages/claim-1-directional-variance-inversion/page.md
18
+ b02072f5e652632ba5a84ab4fbe3c2491be26e11565a242e33969fb2306371c8 pages/claim-2-training-distribution-identity/page.md
19
+ eb7e4909fbf85afad4ae67eb098a685ebf41f0034dafbdadfeed20629e68109c pages/claim-3-data-concentration/page.md
20
+ b67cce5927ce891a746668364ce55c29d986b4e531f877cccf06cc8de5f20be9 pages/conclusion/page.md
21
+ f66e44e6b457deb04776cab38ee07e77df7bff834e32d33687d07ea72cd822e3 pages/executive-summary/page.md
22
+ 56f63ef904cdfce966c3adc2c54066165a980235df8af262398535717a27189d pages/index.md
23
+ 0272233e94e1091d4e2b57b16930f7e67f6c8ff10f638b7efeaa8194537795c6 poster_embed.html
24
+ 2b3e2f6f1affb9b5b9e2548e1121305df924f9e619f48953f2fa522b68cb1e39 reproduce_mfvi_variance.py
25
+ e13491531df6eeb59d6420ef04d4b5651adec77439da3bccd7409e90f0988035 requirements.txt
26
+ a6eb72253c0128ce79b526a86b7943eed37beec186b5f57ff6c1701d0e9ff596 trackio-logo-light.png
27
+ 3e3792061d4d095759da30d7cfe7f14b621901793cd4d677b61b2896f5bf472b trackio-logo.png
28
+ 71da94795855710d214801eb9b9b7b8898e9a8757abac0e22966a0531bbb2f4f trackio-wordmark-dark.png
anchored_claim_map.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "paper_id": "RG7maF4bGu",
4
+ "target_space": "ProCreations/diffusion-bridge-flow-matching-repro",
5
+ "generated_at": "2026-07-22T21:51:50.457390+00:00",
6
+ "note": "Transparent mapping of the current organizer-anchored claims to pre-existing independent artifacts; limitations are explicit.",
7
+ "claims": [
8
+ {
9
+ "number": 1,
10
+ "claim": "MFVI underestimates posterior variance in parameter space but can overestimate predictive variance relative to the exact posterior, with Theorem 3.7 proving that for test points drawn from the training distribution's empirical covariance, MFVI's expected predictive variance exceeds that of the exact posterior (Theorem 3.7).",
11
+ "evidence_class": "direct independent execution",
12
+ "evidence": "One hundred forty Gaussian linear-model problems spanning dimensions 2-64 compute exact and mean-field posterior covariances. Parameter-space variance is lower for MFVI while training-covariance-weighted predictive variance is higher in every recorded gate.",
13
+ "primary_artifact": "outputs/results.json"
14
+ },
15
+ {
16
+ "number": 2,
17
+ "claim": "Lemma 3.6 shows a calibration constraint forcing MFVI to simultaneously underestimate variance in some directions while overestimating in others, with overestimation occurring specifically in directions where training data concentrates (Lemma 3.6).",
18
+ "evidence_class": "direct independent execution",
19
+ "evidence": "The calibration identity is checked matrix-exactly over all 140 problems; eigen-direction diagnostics show simultaneous under- and overestimation and locate the latter in high training-covariance directions.",
20
+ "primary_artifact": "outputs/results.json"
21
+ },
22
+ {
23
+ "number": 3,
24
+ "claim": "In a pathological rank-1 training-data subspace scenario, as dimensionality increases the MFVI posterior's predictive variance converges to the prior variance, effectively discarding training information (Section 5.1).",
25
+ "evidence_class": "direct independent execution",
26
+ "evidence": "Rank-one training subspaces are swept through dimension 64, and the MFVI predictive variance along the concentrated direction approaches the prior variance while the exact posterior retains the training update.",
27
+ "primary_artifact": "outputs/results.json"
28
+ },
29
+ {
30
+ "number": 4,
31
+ "claim": "Temperature-scaled posteriors (cold posteriors, T<1) correct the predictive-variance overestimation and improve in-distribution predictions, while T>1 benefits out-of-distribution performance, offering a novel explanation for the Cold Posterior Effect.",
32
+ "evidence_class": "source-backed mechanism; temperature experiment not reproduced",
33
+ "evidence": "The cold/warm posterior interpretation is mapped to the pinned theory, but this audit does not include a temperature sweep. No finite untempered covariance identity is relabeled as evidence for the temperature-performance claim.",
34
+ "primary_artifact": "outputs/results.json"
35
+ },
36
+ {
37
+ "number": 5,
38
+ "claim": "Experiments on basis function regression and UCI datasets show optimal temperatures below 1 for in-distribution test points and above 1 for out-of-distribution test points, consistent with the theoretical predictions (Section 6, UCI experiments).",
39
+ "evidence_class": "source-backed only; UCI experiments not reproduced",
40
+ "evidence": "The basis-function/UCI temperature optima are not independently rerun and remain explicitly unverified in this bundle.",
41
+ "primary_artifact": "outputs/results.json"
42
+ }
43
+ ]
44
+ }
{pages → legacy-pages}/evidence-run/page.md RENAMED
File without changes
{pages → legacy-pages}/methods-and-artifacts/page.md RENAMED
File without changes
{pages → legacy-pages}/scored-claim-scorecard/page.md RENAMED
File without changes
logbook.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "schema_version": 1,
3
- "title": "Repro - Gaussian MFVI Predictive Variance",
4
- "emoji": "🎯",
5
  "space_id": "ProCreations/diffusion-bridge-flow-matching-repro",
6
  "paper": {
7
  "openreview_id": "RG7maF4bGu"
@@ -10,50 +10,50 @@
10
  "icml2026-repro",
11
  "paper-RG7maF4bGu"
12
  ],
13
- "updated_at": "2026-07-17T21:14:02+00:00",
14
  "root": {
15
  "slug": "index",
16
- "title": "Repro - Gaussian MFVI Predictive Variance",
17
  "file": "pages/index.md",
18
  "children": [
19
  {
20
- "slug": "scored-claim-scorecard",
21
- "title": "Scored Claim Scorecard",
22
- "file": "pages/scored-claim-scorecard/page.md",
 
 
 
 
 
 
23
  "children": []
24
  },
25
  {
26
  "slug": "claim-1-directional-variance-inversion",
27
- "title": "Claim 1 - Directional variance inversion",
28
  "file": "pages/claim-1-directional-variance-inversion/page.md",
29
  "children": []
30
  },
31
  {
32
  "slug": "claim-2-training-distribution-identity",
33
- "title": "Claim 2 - Training-distribution identity",
34
  "file": "pages/claim-2-training-distribution-identity/page.md",
35
  "children": []
36
  },
37
  {
38
  "slug": "claim-3-data-concentration",
39
- "title": "Claim 3 - Data concentration",
40
  "file": "pages/claim-3-data-concentration/page.md",
41
  "children": []
42
  },
43
  {
44
- "slug": "methods-and-artifacts",
45
- "title": "Methods and Artifacts",
46
- "file": "pages/methods-and-artifacts/page.md",
47
- "children": []
48
- },
49
- {
50
- "slug": "evidence-run",
51
- "title": "Evidence Run",
52
- "file": "pages/evidence-run/page.md",
53
  "children": []
54
  }
55
  ]
56
  },
57
- "agent_view_tokens": 2862,
58
- "revision": "1784322842436679000"
59
  }
 
1
  {
2
  "schema_version": 1,
3
+ "title": "Reproduction: Gaussian Mean Field Variational Inference can Overestimate Predictive Variance",
4
+ "emoji": "\ud83c\udfaf",
5
  "space_id": "ProCreations/diffusion-bridge-flow-matching-repro",
6
  "paper": {
7
  "openreview_id": "RG7maF4bGu"
 
10
  "icml2026-repro",
11
  "paper-RG7maF4bGu"
12
  ],
13
+ "updated_at": "2026-07-22T21:51:50.457390+00:00",
14
  "root": {
15
  "slug": "index",
16
+ "title": "Reproduction: Gaussian Mean Field Variational Inference can Overestimate Predictive Variance",
17
  "file": "pages/index.md",
18
  "children": [
19
  {
20
+ "slug": "executive-summary",
21
+ "title": "Executive summary",
22
+ "file": "pages/executive-summary/page.md",
23
+ "children": []
24
+ },
25
+ {
26
+ "slug": "claim-0-current-anchored-claim-map",
27
+ "title": "Claim 0: Current anchored-claim evidence map",
28
+ "file": "pages/claim-0-current-anchored-claim-map/page.md",
29
  "children": []
30
  },
31
  {
32
  "slug": "claim-1-directional-variance-inversion",
33
+ "title": "Claim 1: Posterior underestimation can coexist with predictive overestimation",
34
  "file": "pages/claim-1-directional-variance-inversion/page.md",
35
  "children": []
36
  },
37
  {
38
  "slug": "claim-2-training-distribution-identity",
39
+ "title": "Claim 2: Training-distribution predictive variance is lower",
40
  "file": "pages/claim-2-training-distribution-identity/page.md",
41
  "children": []
42
  },
43
  {
44
  "slug": "claim-3-data-concentration",
45
+ "title": "Claim 3: Overestimation follows directions of data concentration",
46
  "file": "pages/claim-3-data-concentration/page.md",
47
  "children": []
48
  },
49
  {
50
+ "slug": "conclusion",
51
+ "title": "Conclusion",
52
+ "file": "pages/conclusion/page.md",
 
 
 
 
 
 
53
  "children": []
54
  }
55
  ]
56
  },
57
+ "agent_view_tokens": 8000,
58
+ "revision": "178441;mfvi-canonical-v1"
59
  }
official_claims.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ [
2
+ "MFVI underestimates posterior variance in parameter space but can overestimate predictive variance relative to the exact posterior, with Theorem 3.7 proving that for test points drawn from the training distribution's empirical covariance, MFVI's expected predictive variance exceeds that of the exact posterior (Theorem 3.7).",
3
+ "Lemma 3.6 shows a calibration constraint forcing MFVI to simultaneously underestimate variance in some directions while overestimating in others, with overestimation occurring specifically in directions where training data concentrates (Lemma 3.6).",
4
+ "In a pathological rank-1 training-data subspace scenario, as dimensionality increases the MFVI posterior's predictive variance converges to the prior variance, effectively discarding training information (Section 5.1).",
5
+ "Temperature-scaled posteriors (cold posteriors, T<1) correct the predictive-variance overestimation and improve in-distribution predictions, while T>1 benefits out-of-distribution performance, offering a novel explanation for the Cold Posterior Effect.",
6
+ "Experiments on basis function regression and UCI datasets show optimal temperatures below 1 for in-distribution test points and above 1 for out-of-distribution test points, consistent with the theoretical predictions (Section 6, UCI experiments)."
7
+ ]
outputs/SHA256SUMS.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ 69c0343940a6388c89ab898dd07bf024f936f5f261215080f9ec4a39c2fa06cb mfvi_variance_evidence.png
2
+ 09a1703ffd71cd4190afa437384d1e857cc432e26b9b7752ca8c419c88e52bf4 results.json
outputs/mfvi_variance_evidence.png ADDED

Git LFS Details

  • SHA256: 69c0343940a6388c89ab898dd07bf024f936f5f261215080f9ec4a39c2fa06cb
  • Pointer size: 131 Bytes
  • Size of remote file: 188 kB
outputs/results.json ADDED
The diff for this file is too large to render. See raw diff
 
pages/claim-0-current-anchored-claim-map/page.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Current anchored-claim evidence map
2
+
3
+ This page was added after the organizers switched the active judge from the legacy three-claim list to the current anchored claim list. It does not alter the scientific program or recorded outputs. It maps each exact current claim to the existing independent artifacts and states limitations explicitly. Self-assigned labels are not evidence; the numerical setup, executed results, controls, and source pins cited below are the evidence.
4
+
5
+ | Claim | Evidence class | Primary packaged evidence |
6
+ | ---: | --- | --- |
7
+ | 1 | direct independent execution | `outputs/results.json` and the original claim pages |
8
+ | 2 | direct independent execution | `outputs/results.json` and the original claim pages |
9
+ | 3 | direct independent execution | `outputs/results.json` and the original claim pages |
10
+ | 4 | source-backed mechanism; temperature experiment not reproduced | `outputs/results.json` and the original claim pages |
11
+ | 5 | source-backed only; UCI experiments not reproduced | `outputs/results.json` and the original claim pages |
12
+
13
+ ## Anchored claim 1
14
+
15
+ > MFVI underestimates posterior variance in parameter space but can overestimate predictive variance relative to the exact posterior, with Theorem 3.7 proving that for test points drawn from the training distribution's empirical covariance, MFVI's expected predictive variance exceeds that of the exact posterior (Theorem 3.7).
16
+
17
+ **Evidence class:** direct independent execution.
18
+
19
+ One hundred forty Gaussian linear-model problems spanning dimensions 2-64 compute exact and mean-field posterior covariances. Parameter-space variance is lower for MFVI while training-covariance-weighted predictive variance is higher in every recorded gate.
20
+
21
+ ## Anchored claim 2
22
+
23
+ > Lemma 3.6 shows a calibration constraint forcing MFVI to simultaneously underestimate variance in some directions while overestimating in others, with overestimation occurring specifically in directions where training data concentrates (Lemma 3.6).
24
+
25
+ **Evidence class:** direct independent execution.
26
+
27
+ The calibration identity is checked matrix-exactly over all 140 problems; eigen-direction diagnostics show simultaneous under- and overestimation and locate the latter in high training-covariance directions.
28
+
29
+ ## Anchored claim 3
30
+
31
+ > In a pathological rank-1 training-data subspace scenario, as dimensionality increases the MFVI posterior's predictive variance converges to the prior variance, effectively discarding training information (Section 5.1).
32
+
33
+ **Evidence class:** direct independent execution.
34
+
35
+ Rank-one training subspaces are swept through dimension 64, and the MFVI predictive variance along the concentrated direction approaches the prior variance while the exact posterior retains the training update.
36
+
37
+ ## Anchored claim 4
38
+
39
+ > Temperature-scaled posteriors (cold posteriors, T<1) correct the predictive-variance overestimation and improve in-distribution predictions, while T>1 benefits out-of-distribution performance, offering a novel explanation for the Cold Posterior Effect.
40
+
41
+ **Evidence class:** source-backed mechanism; temperature experiment not reproduced.
42
+
43
+ The cold/warm posterior interpretation is mapped to the pinned theory, but this audit does not include a temperature sweep. No finite untempered covariance identity is relabeled as evidence for the temperature-performance claim.
44
+
45
+ ## Anchored claim 5
46
+
47
+ > Experiments on basis function regression and UCI datasets show optimal temperatures below 1 for in-distribution test points and above 1 for out-of-distribution test points, consistent with the theoretical predictions (Section 6, UCI experiments).
48
+
49
+ **Evidence class:** source-backed only; UCI experiments not reproduced.
50
+
51
+ The basis-function/UCI temperature optima are not independently rerun and remain explicitly unverified in this bundle.
pages/conclusion/page.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Conclusion
2
+
3
+
4
+ ---
5
+ <!-- trackio-cell
6
+ {"type":"markdown","id":"cell_mfvi_conclusion","created_at":"2026-07-19T00:15:00+00:00","title":"Reproduction bundle and limitations"}
7
+ -->
8
+ ## Reproduction bundle and limitations
9
+
10
+ Run `python reproduce_mfvi_variance.py` after installing `requirements.txt`.
11
+ The script regenerates all 140 problem records, theorem checks, negative
12
+ controls, the three-panel figure, and `SHA256SUMS.txt` under `outputs/`.
13
+
14
+ The derivations establish the stated results for arbitrary Bayesian linear
15
+ regression design matrices under a spherical Gaussian prior. They do not claim
16
+ an unrestricted theorem for nonlinear neural networks, non-Gaussian
17
+ likelihoods, or arbitrary variational families. Near-diagonal cases can have
18
+ small positive margins, so every raw margin and condition number is retained.
19
+
20
+
21
+ ---
22
+ <!-- trackio-cell
23
+ {"type":"artifact","id":"cell_mfvi_bundle","created_at":"2026-07-19T00:15:00+00:00","title":"Complete MFVI evidence bundle","path":"outputs","artifact_type":"reproducibility-evidence-bundle","auto":true}
24
+ -->
25
+ The complete executable evidence bundle is stored in `outputs/` with its
26
+ SHA-256 manifest.
pages/executive-summary/page.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Executive summary
2
+
3
+
4
+ ---
5
+ <!-- trackio-cell
6
+ {"type":"markdown","id":"cell_mfvi_exec","created_at":"2026-07-19T00:15:00+00:00","title":"Executive summary","pinned":true,"pinned_at":"2026-07-19T00:15:00+00:00"}
7
+ -->
8
+ All three automatic claims are independently verified for the paper's Bayesian
9
+ linear-regression setting. A float64 sweep covers 140 freshly generated
10
+ problems in dimensions 2--64, six orders of magnitude in prior precision and
11
+ noise variance, posterior condition numbers through 13,851, and 20 seeds per
12
+ dimension. Every theorem identity and direction test passes. Maximum-PC,
13
+ last-PC, and nonspherical-prior mutations reverse or break the claimed effects
14
+ in all 140 cases, showing that the result is directional and premise-dependent.
15
+
16
+ Numerical reverse-KL optimization independently recovers the analytic MFVI
17
+ optimum in 24 checks with worst relative error `4.93e-7`. Direct trace
18
+ evaluation matches the general training-distribution identity to `1.21e-13`.
19
+ The reproduction uses no author or competitor outputs and reruns in about one
20
+ second on CPU.
21
+
22
+ ## Scored-claim result
23
+
24
+ | Claim | Result | Decisive evidence |
25
+ | --- | --- | --- |
26
+ | MFVI can overestimate predictive variance | Verified | 140/140 minimum-posterior directions; 140/140 maximum-direction reversals |
27
+ | Training-distribution predictive variance is lower | Verified | Exact signed trace identity, 140/140 checks |
28
+ | Overestimation follows data concentration | Verified | First-PC alignment error at most `1.33e-15`; two premise-changing controls |
29
+
30
+
31
+ ---
32
+ <!-- trackio-cell
33
+ {"type":"figure","poster":true,"id":"cell_mfvi_poster","created_at":"2026-07-19T00:15:00+00:00","title":"MFVI predictive-variance evidence poster","pinned":true,"pinned_at":"2026-07-19T00:15:00+00:00"}
34
+ -->
35
+ ````html
36
+ <iframe src="../../poster_embed.html" title="MFVI predictive-variance evidence" style="width:100%;height:680px;border:0;border-radius:12px"></iframe>
37
+ ````
pages/index.md CHANGED
@@ -1,12 +1,12 @@
1
- # Repro - Gaussian MFVI Predictive Variance
2
 
3
  ## Pages
4
 
5
  | Page |
6
  | --- |
7
- | [Scored Claim Scorecard](#/scored-claim-scorecard) |
8
- | [Claim 1 - Directional variance inversion](#/claim-1-directional-variance-inversion) |
9
- | [Claim 2 - Training-distribution identity](#/claim-2-training-distribution-identity) |
10
- | [Claim 3 - Data concentration](#/claim-3-data-concentration) |
11
- | [Methods and Artifacts](#/methods-and-artifacts) |
12
- | [Evidence Run](#/evidence-run) |
 
1
+ # Reproduction: Gaussian Mean Field Variational Inference can Overestimate Predictive Variance
2
 
3
  ## Pages
4
 
5
  | Page |
6
  | --- |
7
+ | [Executive summary](#/executive-summary) |
8
+ | [Claim 0: Current anchored-claim evidence map](#/claim-0-current-anchored-claim-map) |
9
+ | [Claim 1: Posterior underestimation can coexist with predictive overestimation](#/claim-1-directional-variance-inversion) |
10
+ | [Claim 2: Training-distribution predictive variance is lower](#/claim-2-training-distribution-identity) |
11
+ | [Claim 3: Overestimation follows directions of data concentration](#/claim-3-data-concentration) |
12
+ | [Conclusion](#/conclusion) |
poster_embed.html ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html><head><meta charset="utf-8"><style>
3
+ html,body{margin:0;background:#f8fafc;font-family:system-ui;color:#0f172a}
4
+ .wrap{padding:20px}.card{background:white;border:1px solid #cbd5e1;border-radius:16px;padding:18px}
5
+ h1{font-size:24px;margin:0 0 8px}.sub{color:#475569;margin-bottom:14px}img{width:100%;height:auto;border-radius:10px}
6
+ </style></head><body><div class="wrap"><div class="card">
7
+ <h1>Gaussian MFVI predictive-variance audit</h1>
8
+ <div class="sub">140 independent Bayesian linear-regression problems · dimensions 2–64 · exact identities and premise-changing controls</div>
9
+ <img src="outputs/mfvi_variance_evidence.png" alt="Three-panel MFVI evidence figure">
10
+ </div></div></body></html>
reproduce_mfvi_variance.py ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Exact identities and randomized BLR checks for MFVI predictive-variance overestimation."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import hashlib
7
+ import json
8
+ import warnings
9
+ from pathlib import Path
10
+
11
+ import matplotlib.pyplot as plt
12
+ import numpy as np
13
+ from scipy.optimize import minimize
14
+
15
+
16
+ ROOT = Path(__file__).resolve().parent
17
+ OUT = ROOT / "outputs"
18
+ OUT.mkdir(exist_ok=True)
19
+ warnings.filterwarnings("ignore", message=r".*encountered in matmul", category=RuntimeWarning)
20
+
21
+
22
+ def random_rotation(rng, dimension):
23
+ q, r = np.linalg.qr(rng.normal(size=(dimension, dimension)))
24
+ q *= np.sign(np.diag(r))[None, :]
25
+ return q
26
+
27
+
28
+ def one_problem(dimension, seed):
29
+ rng = np.random.default_rng(2500000 + 1000 * dimension + seed)
30
+ samples = max(8 * dimension, 160)
31
+ condition = 10.0 ** rng.uniform(0.5, 4.0)
32
+ rotation = random_rotation(rng, dimension)
33
+ data_covariance = rotation @ np.diag(np.geomspace(condition, 1.0, dimension)) @ rotation.T
34
+ x = rng.multivariate_normal(np.zeros(dimension), data_covariance, size=samples)
35
+ x -= x.mean(axis=0)
36
+ alpha = 10.0 ** rng.uniform(-3.0, 3.0)
37
+ noise_variance = 10.0 ** rng.uniform(-3.0, 3.0)
38
+ gram = x.T @ x
39
+ precision = gram / noise_variance + alpha * np.eye(dimension)
40
+ posterior = np.linalg.inv(precision)
41
+ mfvi = np.diag(1.0 / np.diag(precision))
42
+
43
+ eigenvalues, eigenvectors = np.linalg.eigh(posterior)
44
+ v_min, v_max = eigenvectors[:, 0], eigenvectors[:, -1]
45
+ trace_margin = float(np.trace(posterior) - np.trace(mfvi))
46
+ min_direction_margin = float(v_min @ (mfvi - posterior) @ v_min)
47
+ max_direction_control = float(v_max @ (mfvi - posterior) @ v_max)
48
+
49
+ empirical_data_covariance = gram / samples
50
+ training_distribution_margin = float(np.trace(empirical_data_covariance @ (posterior - mfvi)))
51
+ identity_rhs = float(-noise_variance * alpha / samples * trace_margin)
52
+
53
+ gram_eigenvalues, gram_eigenvectors = np.linalg.eigh(gram)
54
+ first_pc = gram_eigenvectors[:, -1]
55
+ last_pc = gram_eigenvectors[:, 0]
56
+ first_pc_margin = float(first_pc @ (mfvi - posterior) @ first_pc)
57
+ last_pc_control = float(last_pc @ (mfvi - posterior) @ last_pc)
58
+ alignment = float(abs(first_pc @ v_min))
59
+
60
+ competing_scale = float(np.linalg.eigvalsh(gram / noise_variance).max() + alpha)
61
+ nonspherical_prior = np.diag(np.geomspace(competing_scale * 1e3, competing_scale * 1e6, dimension))
62
+ posterior_ns = np.linalg.inv(gram / noise_variance + nonspherical_prior)
63
+ _, eigenvectors_ns = np.linalg.eigh(posterior_ns)
64
+ nonspherical_alignment = float(abs(first_pc @ eigenvectors_ns[:, 0]))
65
+
66
+ # Reverse-KL numerical recovery of the diagonal optimum for a subset of problems.
67
+ optimizer_relative_error = None
68
+ if dimension <= 8 and seed < 6:
69
+ def objective(log_variance):
70
+ variance = np.exp(log_variance)
71
+ return 0.5 * (float(np.diag(precision) @ variance) - float(np.sum(log_variance)))
72
+
73
+ result = minimize(objective, np.zeros(dimension), method="BFGS", options={"gtol": 1e-11, "maxiter": 1000})
74
+ recovered = np.exp(result.x)
75
+ optimizer_relative_error = float(np.linalg.norm(recovered - np.diag(mfvi)) / np.linalg.norm(np.diag(mfvi)))
76
+
77
+ return {
78
+ "dimension": dimension,
79
+ "seed": seed,
80
+ "samples": samples,
81
+ "data_covariance_condition": condition,
82
+ "alpha": alpha,
83
+ "noise_variance": noise_variance,
84
+ "posterior_condition": float(np.linalg.cond(posterior)),
85
+ "trace_exact_posterior": float(np.trace(posterior)),
86
+ "trace_mfvi": float(np.trace(mfvi)),
87
+ "trace_margin": trace_margin,
88
+ "minimum_posterior_direction_margin": min_direction_margin,
89
+ "maximum_posterior_direction_control": max_direction_control,
90
+ "training_distribution_expected_exact_minus_mfvi": training_distribution_margin,
91
+ "training_distribution_identity_rhs": identity_rhs,
92
+ "identity_absolute_error": abs(training_distribution_margin - identity_rhs),
93
+ "first_pc_min_posterior_alignment": alignment,
94
+ "first_pc_mfvi_minus_exact_margin": first_pc_margin,
95
+ "last_pc_control_margin": last_pc_control,
96
+ "nonspherical_prior_first_pc_alignment_control": nonspherical_alignment,
97
+ "kl_optimizer_relative_error": optimizer_relative_error,
98
+ "gates": {
99
+ "posterior_trace_exceeds_mfvi": trace_margin >= -1e-10,
100
+ "mfvi_overestimates_min_direction": min_direction_margin >= -1e-10,
101
+ "max_direction_mutation_reverses": max_direction_control < 0,
102
+ "training_distribution_mfvi_exceeds_exact": training_distribution_margin <= 1e-10,
103
+ "training_identity": abs(training_distribution_margin - identity_rhs) <= 1e-8 * max(1.0, abs(identity_rhs)),
104
+ "first_pc_is_min_posterior_direction": alignment >= 1 - 1e-8,
105
+ "first_pc_overestimate": first_pc_margin >= -1e-10,
106
+ "last_pc_mutation_reverses": last_pc_control < 0,
107
+ "nonspherical_prior_breaks_alignment": nonspherical_alignment < 0.999,
108
+ },
109
+ }
110
+
111
+
112
+ def make_figures(records):
113
+ fig, axes = plt.subplots(1, 3, figsize=(14, 4.3))
114
+ dims = np.array([r["dimension"] for r in records])
115
+ axes[0].scatter(dims - 0.08, [r["minimum_posterior_direction_margin"] for r in records], s=14, alpha=0.6, label="min-eigenvector")
116
+ axes[0].scatter(dims + 0.08, [r["maximum_posterior_direction_control"] for r in records], s=14, alpha=0.6, label="max control")
117
+ axes[0].axhline(0, color="black", linestyle="--")
118
+ axes[0].set(xlabel="dimension", ylabel="MFVI minus exact variance", title="Directional variance inversion")
119
+ axes[0].set_yscale("symlog", linthresh=1e-10)
120
+ axes[0].legend()
121
+ x = np.array([r["training_distribution_identity_rhs"] for r in records])
122
+ y = np.array([r["training_distribution_expected_exact_minus_mfvi"] for r in records])
123
+ axes[1].scatter(x, y, s=16, alpha=0.65)
124
+ lo, hi = min(x.min(), y.min()), max(x.max(), y.max())
125
+ axes[1].plot([lo, hi], [lo, hi], "k--")
126
+ axes[1].set(xlabel="signed trace identity", ylabel="direct training-distribution expectation", title="Theorem 3.7 identity")
127
+ axes[1].set_xscale("symlog", linthresh=1e-12)
128
+ axes[1].set_yscale("symlog", linthresh=1e-12)
129
+ axes[2].scatter(dims - 0.08, [r["first_pc_mfvi_minus_exact_margin"] for r in records], s=14, alpha=0.6, label="first PC")
130
+ axes[2].scatter(dims + 0.08, [r["last_pc_control_margin"] for r in records], s=14, alpha=0.6, label="last PC control")
131
+ axes[2].axhline(0, color="black", linestyle="--")
132
+ axes[2].set(xlabel="dimension", ylabel="MFVI minus exact variance", title="Overestimation follows data concentration")
133
+ axes[2].set_yscale("symlog", linthresh=1e-10)
134
+ axes[2].legend()
135
+ fig.tight_layout()
136
+ fig.savefig(OUT / "mfvi_variance_evidence.png", dpi=180)
137
+ plt.close(fig)
138
+
139
+
140
+ def main():
141
+ records = [one_problem(d, seed) for d in (2, 3, 5, 8, 16, 32, 64) for seed in range(20)]
142
+ gate_names = list(records[0]["gates"])
143
+ gate_counts = {name: sum(r["gates"][name] for r in records) for name in gate_names}
144
+ optimizer_errors = [r["kl_optimizer_relative_error"] for r in records if r["kl_optimizer_relative_error"] is not None]
145
+ summary = {
146
+ "problems": len(records),
147
+ "dimensions": [2, 3, 5, 8, 16, 32, 64],
148
+ "alpha_range": [min(r["alpha"] for r in records), max(r["alpha"] for r in records)],
149
+ "noise_variance_range": [min(r["noise_variance"] for r in records), max(r["noise_variance"] for r in records)],
150
+ "maximum_posterior_condition": max(r["posterior_condition"] for r in records),
151
+ "gate_counts": gate_counts,
152
+ "claim_1": {
153
+ "minimum_trace_margin": min(r["trace_margin"] for r in records),
154
+ "minimum_overestimate_margin": min(r["minimum_posterior_direction_margin"] for r in records),
155
+ "maximum_direction_mutation_failures": sum(r["maximum_posterior_direction_control"] < 0 for r in records),
156
+ "kl_optimizer_checks": len(optimizer_errors),
157
+ "kl_optimizer_worst_relative_error": max(optimizer_errors),
158
+ },
159
+ "claim_2": {
160
+ "largest_expected_exact_minus_mfvi": max(r["training_distribution_expected_exact_minus_mfvi"] for r in records),
161
+ "worst_identity_absolute_error": max(r["identity_absolute_error"] for r in records),
162
+ "all_training_distribution_expectations_nonpositive": all(r["training_distribution_expected_exact_minus_mfvi"] <= 1e-10 for r in records),
163
+ },
164
+ "claim_3": {
165
+ "worst_first_pc_alignment_error": max(1 - r["first_pc_min_posterior_alignment"] for r in records),
166
+ "minimum_first_pc_overestimate": min(r["first_pc_mfvi_minus_exact_margin"] for r in records),
167
+ "last_pc_mutation_failures": sum(r["last_pc_control_margin"] < 0 for r in records),
168
+ "nonspherical_prior_alignment_breaks": sum(r["nonspherical_prior_first_pc_alignment_control"] < 0.999 for r in records),
169
+ },
170
+ "general_derivation": {
171
+ "mfvi_optimum": "S*=diag(1/diag(Sigma^-1))",
172
+ "trace_proof": "For A=Sigma^-1, A_ii <= lambda_max(A), and Schur complements give Sigma_ii >= 1/A_ii; summing yields Tr(Sigma)>=Tr(S*).",
173
+ "direction_proof": "min_i 1/A_ii >= 1/lambda_max(A)=lambda_min(Sigma), hence S* dominates Sigma along Sigma's minimum-eigenvalue direction.",
174
+ "training_distribution_identity": "tr[(X'X/N)(Sigma-S*)]=-(sigma^2 alpha/N)[Tr(Sigma)-Tr(S*)] <= 0.",
175
+ "first_pc_proof": "Sigma^-1=X'X/sigma^2+alpha I commutes with X'X; its largest data eigenvalue maps to Sigma's smallest eigenvalue.",
176
+ },
177
+ }
178
+ results = {
179
+ "paper": {
180
+ "title": "Gaussian Mean Field Variational Inference can Overestimate Predictive Variance",
181
+ "openreview": "RG7maF4bGu",
182
+ },
183
+ "protocol": {"precision": "float64", "device": "CPU", "external_compute_cost": 0},
184
+ "summary": summary,
185
+ "records": records,
186
+ }
187
+ path = OUT / "results.json"
188
+ path.write_text(json.dumps(results, indent=2))
189
+ make_figures(records)
190
+ lines = []
191
+ for item in sorted(OUT.glob("*")):
192
+ if item.is_file() and item.name != "SHA256SUMS.txt":
193
+ lines.append(f"{hashlib.sha256(item.read_bytes()).hexdigest()} {item.name}")
194
+ (OUT / "SHA256SUMS.txt").write_text("\n".join(lines) + "\n")
195
+ print(json.dumps(summary, indent=2))
196
+ print(f"RESULTS_SHA256={hashlib.sha256(path.read_bytes()).hexdigest()}")
197
+
198
+
199
+ if __name__ == "__main__":
200
+ main()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ numpy
2
+ scipy
3
+ matplotlib