.cache/known_methods_snapshot.json CHANGED
@@ -176,10 +176,24 @@
176
  "score-based adam (gfdt, kgmm) (extended window)",
177
  "score-based adam (gfdt, kgmm) (parallel branches)"
178
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  }
180
  },
181
  "observed_methods": [
182
  "adam",
 
183
  "adam-kgmm",
184
  "etki",
185
  "iekf",
 
176
  "score-based adam (gfdt, kgmm) (extended window)",
177
  "score-based adam (gfdt, kgmm) (parallel branches)"
178
  ]
179
+ },
180
+ "adam-dsm": {
181
+ "abbreviation": "ADAM-DSM",
182
+ "Method": "Score-based Adam (DSM)",
183
+ "parallelism": "serial",
184
+ "update_type": "gradient",
185
+ "method_goal": "optimization",
186
+ "emulator_use": "none",
187
+ "aliases": [
188
+ "adam-dsm",
189
+ "score-based adam (gfdt, dsm) (extended window)",
190
+ "score-based adam (gfdt, dsm) (parallel branches)"
191
+ ]
192
  }
193
  },
194
  "observed_methods": [
195
  "adam",
196
+ "adam-dsm",
197
  "adam-kgmm",
198
  "etki",
199
  "iekf",
CLAUDE.md CHANGED
@@ -77,6 +77,7 @@ calibration_benchmark/
77
  │ ├── opt_kgmm_score_lm/ Score-based LM (KGMM score estimator) results (per-benchmark files)
78
  │ ├── opt_dsm_score_lm/ Score-based LM (DSM score estimator) results (per-benchmark files)
79
  │ ├── opt_kgmm_score_adam/ Score-based ADAM (KGMM score estimator) results (per-benchmark files)
 
80
  │ ├── ces-eki-dmc_results/ CES-EKI-DMC ensemble-results files (UQ source)
81
  │ ├── gboed-uq_results/ GBOED ensemble-results files (UQ source)
82
  │ ├── gnki-uq_results/ IEKF (a.k.a GNKI) ensemble-results files (UQ source)
@@ -200,6 +201,7 @@ A quick taxonomy tree is rendered on the home page (`src/streamlit_app.py`).
200
  | `lm-kgmm` | LM-KGMM | serial | gradient | optimization | none | — |
201
  | `lm-dsm` | LM-DSM | serial | gradient | optimization | none | — |
202
  | `adam-kgmm` | ADAM-KGMM | serial | gradient | optimization | none | — |
 
203
 
204
  ## How to extend
205
 
 
77
  │ ├── opt_kgmm_score_lm/ Score-based LM (KGMM score estimator) results (per-benchmark files)
78
  │ ├── opt_dsm_score_lm/ Score-based LM (DSM score estimator) results (per-benchmark files)
79
  │ ├── opt_kgmm_score_adam/ Score-based ADAM (KGMM score estimator) results (per-benchmark files)
80
+ │ ├── opt_dsm_score_adam/ Score-based ADAM (DSM score estimator) results (per-benchmark files)
81
  │ ├── ces-eki-dmc_results/ CES-EKI-DMC ensemble-results files (UQ source)
82
  │ ├── gboed-uq_results/ GBOED ensemble-results files (UQ source)
83
  │ ├── gnki-uq_results/ IEKF (a.k.a GNKI) ensemble-results files (UQ source)
 
201
  | `lm-kgmm` | LM-KGMM | serial | gradient | optimization | none | — |
202
  | `lm-dsm` | LM-DSM | serial | gradient | optimization | none | — |
203
  | `adam-kgmm` | ADAM-KGMM | serial | gradient | optimization | none | — |
204
+ | `adam-dsm` | ADAM-DSM | serial | gradient | optimization | none | — |
205
 
206
  ## How to extend
207
 
data/opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l63_2026-09-14.nc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c8331075ef213d07bfee8663720c7d60040fa97ca320913402dec3393e44178
3
+ size 15752
data/opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_const-force_2026-09-14.nc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46ef9d9bea3b5212e8633dbbd3841109da2de86a9015a5aebee4a32ebac787aa
3
+ size 15752
data/opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_flux-force_2026-09-14.nc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b2643538d8001113ab560c50f224fb05763aafb1d78e2cd6c9b996b96da6d31d
3
+ size 15752
data/opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_vec-force_2026-09-14.nc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de41e884c7c4d1b06a93d90e5ca859fbe6f695e3a106b48f1f936de3bf6620f6
3
+ size 15752
src/common/method_registry.py CHANGED
@@ -182,6 +182,19 @@ KNOWN_METHODS = {
182
  "score-based adam (gfdt, kgmm) (parallel branches)",
183
  ],
184
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  }
186
 
187
 
 
182
  "score-based adam (gfdt, kgmm) (parallel branches)",
183
  ],
184
  },
185
+ "adam-dsm": {
186
+ "abbreviation": "ADAM-DSM",
187
+ "Method": "Score-based Adam (DSM)",
188
+ "parallelism": "serial",
189
+ "update_type": "gradient",
190
+ "method_goal": "optimization",
191
+ "emulator_use": "none",
192
+ "aliases": [
193
+ "adam-dsm",
194
+ "score-based adam (gfdt, dsm) (extended window)",
195
+ "score-based adam (gfdt, dsm) (parallel branches)",
196
+ ],
197
+ },
198
  }
199
 
200
 
src/data_store.py CHANGED
@@ -38,6 +38,7 @@ DATASET_FILES = {
38
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l63_2026-09-02.nc",
39
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l63_2026-08-12.nc",
40
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l63_2026-09-11.nc",
 
41
  ],
42
  "L96": [
43
  "teki_results/leaderboard_teki_l96_const-force_2026-09-10.nc",
@@ -49,6 +50,7 @@ DATASET_FILES = {
49
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_const-force_2026-09-02.nc",
50
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_const-force_2026-08-12.nc",
51
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_const-force_2026-09-11.nc",
 
52
  ],
53
  "L96_NN_FORCING": [
54
  "teki_results/leaderboard_teki_l96_flux-force_2026-09-10.nc",
@@ -58,6 +60,7 @@ DATASET_FILES = {
58
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_flux-force_2026-09-02.nc",
59
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_flux-force_2026-08-12.nc",
60
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_flux-force_2026-09-11.nc",
 
61
  ],
62
  "L96_SPATIAL_FORCING": [
63
  "teki_results/leaderboard_teki_l96_vec-force_2026-09-10.nc",
@@ -69,6 +72,7 @@ DATASET_FILES = {
69
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_vec-force_2026-09-02.nc",
70
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_vec-force_2026-08-12.nc",
71
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_vec-force_2026-09-11.nc",
 
72
  ],
73
  }
74
 
 
38
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l63_2026-09-02.nc",
39
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l63_2026-08-12.nc",
40
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l63_2026-09-11.nc",
41
+ "opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l63_2026-09-14.nc",
42
  ],
43
  "L96": [
44
  "teki_results/leaderboard_teki_l96_const-force_2026-09-10.nc",
 
50
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_const-force_2026-09-02.nc",
51
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_const-force_2026-08-12.nc",
52
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_const-force_2026-09-11.nc",
53
+ "opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_const-force_2026-09-14.nc",
54
  ],
55
  "L96_NN_FORCING": [
56
  "teki_results/leaderboard_teki_l96_flux-force_2026-09-10.nc",
 
60
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_flux-force_2026-09-02.nc",
61
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_flux-force_2026-08-12.nc",
62
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_flux-force_2026-09-11.nc",
63
+ "opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_flux-force_2026-09-14.nc",
64
  ],
65
  "L96_SPATIAL_FORCING": [
66
  "teki_results/leaderboard_teki_l96_vec-force_2026-09-10.nc",
 
72
  "opt_kgmm_score_lm/leaderboard_sblm_kgmm_parallel_l96_vec-force_2026-09-02.nc",
73
  "opt_dsm_score_lm/leaderboard_sblm_dsm_parallel_l96_vec-force_2026-08-12.nc",
74
  "opt_kgmm_score_adam/leaderboard_sbadam_kgmm_parallel_l96_vec-force_2026-09-11.nc",
75
+ "opt_dsm_score_adam/leaderboard_sbadam_dsm_parallel_l96_vec-force_2026-09-14.nc",
76
  ],
77
  }
78
 
src/pages/MethodDetails.py CHANGED
@@ -422,6 +422,31 @@ method_meta = {
422
  ],
423
  "notes": "**Inherits Adam's local-minimum susceptibility** (no trust region, restart, or ensemble diversity to escape a bad basin) **and LM-KGMM's cheaper-than-DSM score estimation** — the k-means/Gaussian-mixture score fit is far less costly than training a neural score network, so ADAM-KGMM stayed tractable on problems where a DSM-based Adam variant would not.",
424
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  }
426
 
427
  # KNOWN_METHODS is the source of truth for the abbreviation/full-name list,
 
422
  ],
423
  "notes": "**Inherits Adam's local-minimum susceptibility** (no trust region, restart, or ensemble diversity to escape a bad basin) **and LM-KGMM's cheaper-than-DSM score estimation** — the k-means/Gaussian-mixture score fit is far less costly than training a neural score network, so ADAM-KGMM stayed tractable on problems where a DSM-based Adam variant would not.",
424
  },
425
+ "ADAM-DSM": {
426
+ "citation": "Giorgini, Bischoff & Souza, arXiv:2509.19660, 2025",
427
+ "url": "https://arxiv.org/abs/2509.19660",
428
+ "source": "`opt_experiments/score_based_adam` — Adam with a GFDT/DSM gradient surrogate.",
429
+ "math": "Identical Adam + GFDT scheme as ADAM-KGMM (see that entry's update equation), but the score `s(x)=∇log p(x)` is estimated by Denoising Score Matching (DSM) instead of KGMM.",
430
+ "guardrails": (
431
+ "Same DSM training scheme as LM-DSM: a neural network is trained to denoise samples perturbed "
432
+ "by Gaussian noise at a single fixed scale `σ`, whose optimal denoiser equals the noised "
433
+ "density's score (Vincent, 2011); `σ` is fixed per benchmark rather than annealed, chosen "
434
+ "empirically as the smallest noise level at which the network still receives a usable learning "
435
+ "signal. Same Stein recalibration and collapsed-window `ForwardDiff.jl` fallback, and the same "
436
+ "Tukey-tapered response integral and evaluation-budget cap as LM-DSM/ADAM-KGMM. Same per-case "
437
+ "step size `α` (shared `β₁`/`β₂`/`ε`) as ADAM-KGMM — sized to ~0.25× the case's prior standard "
438
+ "deviation, since a single global value tuned for one benchmark's residual scaling left Adam "
439
+ "unable to traverse even the L63/L96-const prior within its iteration budget."
440
+ ),
441
+ "params": [
442
+ {"Parameter": "α (step size)", "Value": "Per-case, ~0.25× prior std (0.025–0.75 across benchmarks)"},
443
+ {"Parameter": "β₁, β₂", "Value": "0.9, 0.999"},
444
+ {"Parameter": "σ (DSM noise scale)", "Value": "0.2 (L63) / 0.025 (L96 variants)"},
445
+ {"Parameter": "tukey_alpha (response taper)", "Value": "0.75"},
446
+ {"Parameter": "budget_total (outer_iter × N_ens)", "Value": "500"},
447
+ ],
448
+ "notes": "**Inherits both LM-DSM's slow DSM-training cost and Adam's local-minimum susceptibility** — training the DSM score network is the binding wall-clock cost (as with LM-DSM), and Adam's lack of a trust region or ensemble diversity leaves it as prone to getting stuck in a bad basin as ADAM-KGMM.",
449
+ },
450
  }
451
 
452
  # KNOWN_METHODS is the source of truth for the abbreviation/full-name list,