松田研究室
FindingID: p1-mcmc-fix3-negative
Status: stable / task G3 MCMC fix3 (7 月実行プラン)
← Findings Index
P1 G3 · MCMC fix3 · 5 連敗確定 · scale_l1 犯人特定

G3 MCMC fix3 — 5 連敗確定、scale_l1 犯人 + relocation 30k で 14.6 dB 頭打ち

fix2 (17.38 dB / 30k / capacity 1M 満タン) の敗因を、既実装の 3 欠陥修正版で再挑戦。calibration doc §案 A に沿った noise weight sweep (5e1/5e2/5e3、Lego 500 iter + 2000 iter) は完走したが PSNR 10-12 dB で頭打ち。<strong>Component ablation (2000 iter) で scale_eigen_l1=0.001 単独で -4.4 dB の毒性を実測</strong>、これが犯人と特定。しかし scale_l1=0 で relocation + growth schedule のみを Lego 30k で回しても <strong>14.65 dB (2h12m, 1.3M splats)</strong>、noise 5e2 + relocation でも <strong>14.69 dB (2h38m, 1.8M splats)</strong>、Phase I baseline (36.11 dB / 11m48s / 285k splats) に <strong>-21 dB 大敗</strong>。growth schedule で splats が 1.3-1.8M まで肥大化するが PSNR が付いてこない = MCMC relocation の probability-preserving 実装 (Eq.9) と本実装の SoA parameterization が結合していない可能性大。G3 は 5 連敗として卒論 §5.4 negative finding に確定、future work 送り。

negativerank: high5-consecutive-failure-scope-out第 1 軸mcmcg3fix3negative5-consecutive-failurescale-eigen-l1ablationlego-30k
Δ PSNR
Phase I 36.11 dB 比 -21 dB (relocation-only) / -21 dB (noise-relocation)、fix2 17.38 dB 比 -2.7 dB (更に劣化)
Δ Wallclock
Phase I 11m48s 比 +11x (relocation-only 2h12m) / +13x (noise-relocation 2h38m)
Impact
G3 MCMC fix3 = 5 連敗確定。fix2 (17.38 dB) 敗因の calibration ズレを、既実装の 3 欠陥修正版で再挑戦。500 iter smoke で crash なし完走、2000 iter で 10-12 dB 頭打ち、ablation で scale_eigen_l1 の毒性を -4.4 dB と測定、scale_l1 除去した relocation + growth schedule の 30k full 2 パターンで PSNR 14.65 / 14.69 dB (Phase I baseline 36.11 dB 比 -21 dB)。犯人は複合: (1) scale_eigen_l1 実装が過剰罰化 or 符号ミス、(2) relocation の Eq.9 probability-preserving 実装が本実装の SoA parameterization と結合していない (splats 1.3-1.8M まで肥大化するが PSNR が付いてこない)。7 月実行プラン G3 の timebox 判定基準通り即撤退、卒論 §5.4 negative finding として 5 連敗目に確定、future work 送り。ただし本 negative finding は従来の 4 連敗より格段に強い evidence (component ablation で犯人を数値で切り分け、30k full の decisive failure まで到達)、卒論 measurement contribution として §5.4 で厚く記述可能。
01

本文

G3 MCMC fix3 は 3 段階 (smoke → iter2000 sweep → ablation → final 30k) を timebox 内で完遂し、scale_eigen_l1 が -4.4 dB の毒性を持つと 2000 iter ablation で決定的に切り分けた。しかし scale_l1 除去版の relocation + growth schedule を Lego 30k full で回しても PSNR 14.65 dB (Phase I 比 -21 dB)、noise 追加版でも 14.69 dB で MCMC は本実装の scope 外と確定。5 連敗目として卒論 §5.4 に格上げ。

Headline (G3 MCMC = 5 連敗確定、scale_l1 犯人特定 + relocation 30k で頭打ち)

3 段階 timebox 実験の結果: (1) 500 iter smoke sweep (noise 5e1/5e2/5e3) は完走 & no NaN で fix2 敗因の calibration bug は解決確認、(2) 2000 iter sweep で PSNR 10-12 dB 頭打ち、weight 依存なし、(3) ablation (A baseline / B scale_l1 only / C relocation only、各 2000 iter) で B が 10.85 dB と A/C の 15.2/15.7 dB より -4.4 dB 劣化、scale_eigen_l1 が犯人と特定。(4) scale_l1=0 で 30k full を 2 パターン (relocation-only / noise-relocation) 実施、両方とも 14.65-14.69 dB で Phase I baseline 36.11 dB に -21 dB 大敗、splats は 1.3-1.8M まで肥大化するが PSNR が付いてこない。G3 は 5 連敗として scope-out、卒論 §5.4 で「MCMC 3 欠陥修正 + component ablation + 30k final の decisive failure」という format で future work 化。

1. 実験 timeline (2026-07-21、~5h total)

段階configiterPSNRsplatswallclock判定
1. smokenoise5e1-smoke500-n/a8s完走 & no NaN、trajectory non-monotonic だが健全
1. smokenoise5e2-smoke50011.929,1238s完走
1. smokenoise5e3-smoke50011.9710,0607s完走、fix2 と同 weight で crash なし
2. iter2000noise5e1-iter200020009.7453,58756s頭打ち、weight 依存なし
2. iter2000noise5e2-iter2000200010.0361,37476s同上
2. iter2000noise5e3-iter2000200010.2954,18159s同上
3. ablation**A baseline (all-OFF)**2000**15.23**149,72563s**refine 経路健全性確認**
3. ablation**B scale_l1 only**2000**10.85**63,35846s**scale_l1 単独で -4.4 dB 毒性、犯人特定**
3. ablation**C relocation only**2000**15.68**205,61375s**relocation + growth は 2000 iter では健全**
4. final 30k**relocation-only**30000**14.65**1,315,6052h12m**scale_l1=0 でも 30k で頭打ち、Phase I 比 -21 dB**
4. final 30k**noise-relocation**30000**14.69**1,840,6042h38m**noise 5e2 追加も改善なし、splats 肥大化のみ**
参考Phase I baseline (fast conv.)1250036.11285,00011m48s本実装の勝ちパターン、比較基準
参考fix2 (2026-05-23 敗)3000017.381,000,0001h10mcapacity 満タン、scale_l1=0.001 + noise=5e3 の複合毒
5h の timebox 内で 3 段階 (smoke → iter2000 → ablation → final 30k) を実施。ablation で scale_eigen_l1 の -4.4 dB 毒性を決定的に切り分け、しかし scale_l1 除去でも 30k で 14.65 dB で頭打ち、5 連敗確定。

2. 敗因の分解 (2 つの独立した bug)

  1. Bug (a): scale_eigen_l1 の実装が過剰罰化 or 符号ミス — ablation B で 2000 iter 10.85 dB (A: 15.23 dB) と、他 component OFF でも scale_l1=0.001 単独で -4.4 dB の毒性。regularize.rs::apply_mcmc_scale_l1 の勾配符号 or scaling factor の再検証が必要。論文 §3.4 は ‖Σ‖_eig_L1 の subgradient を sign(exp(log_scale)) = 常に +1 として mean_scale が単調減少するはずだが、本実装は logit space で計算しており挙動が微妙にずれている可能性。次に MCMC を再挑戦する場合の primary suspect。
  2. Bug (b): relocation + growth schedule が Phase I に劣る — ablation C 2000 iter で 15.68 dB (A: 15.23 dB) と一見拮抗するが、30k full まで伸ばすと 14.65 dB で頭打ち、Phase I 36.11 dB に -21 dB 大敗。relocate.rs::apply_mcmc_relocation の Eq.9 probability-preserving (o_new = 1-(1-o_t)^(1/N_t)) は unit test で pin しているが、本実装の SoA parameterization (raw_opacities, log_scales, rot_quats を独立 buffer) との rotation-aware Σ 補正が単純化されており、cluster が多数生成される 30k で品質が付いてこない。splats 1.3-1.8M まで肥大化するが PSNR が上がらないのはこの兆候。
  3. Bug (a) と (b) は独立: fix2 (2026-05-23) の PSNR 17.38 dB は両者の合成毒 (scale_l1 -4.4 dB + relocation 収束不良) で、component ablation でようやく分離可能に。この分解結果が本 finding の卒論 §5.4 での decisive evidence。

3. 5 連敗の詳細 (卒論 §5.4 用の年表)

失敗 #日付tag内容PSNR (Lego)決着
12026-05-22`!G#4.31.G.1`3DGS-MCMC noise を prune 便乗経路で移植3-5 dB 発散commit 857012a で future work 化
22026-05-22`!G#4.31.G.2`capacity 100k cap で再挑戦OOM / crash同上
32026-05-22`!G#4.31.G.3`max_scale_cap=0.05 追加22 dB 停滞同上
42026-05-23`!G#4.31.G.4` (fix2)3 欠陥全部入り、scale_l1=0.001 + noise=5e317.38 dBcalibration doc `mcmc-noise-calibration.md` 起草、次回課題送り
**5****2026-07-21****`!G#4.31.G.5` (fix3)****smoke → iter2000 → ablation → 30k final の 4 段階 timebox 実験****14.65 dB****本 finding、5 連敗確定 + component ablation で犯人特定**
MCMC 5 連敗の年表。本 fix3 (5 連敗目) は ablation で scale_eigen_l1 の -4.4 dB 毒性を切り分けた点で従来 4 連敗より格段に強い negative finding。卒論 §5.4 で「measurement-driven negative finding」の pattern として厚く記述可能。

4. 卒論 §5.4 への組み込み方針

  • Sub-section 5.4.X: MCMC 3 欠陥修正の実装と 5 連敗
  • Motivation: 論文 Kheradmand et al. 2024 の 3DGS-MCMC は brush + gsplat が未実装、本実装が axis 1 hard contribution 候補として着手。
  • 実装: `docs/findings/mcmc-3-defects.md` に沿って `McmcConfig` + `relocate.rs::apply_mcmc_relocation` + `train_loop` 独立 tick + growth schedule を実装。unit test で Eq.9 probability-preserving を pin。
  • 敗因 4 連続 (2026-05-22〜23): OOM / crash / 22 dB 停滞 / fix2 17.38 dB。calibration doc で次回課題送り。
  • fix3 実験 (2026-07-21、本 finding): 4 段階 timebox (smoke → iter2000 → ablation → 30k final)。component ablation で scale_eigen_l1 の -4.4 dB 毒性を測定、scale_l1 除去した relocation + growth を 30k full で 14.65 dB。
  • 敗因の分解: (a) scale_eigen_l1 実装の勾配符号 or scaling factor に bug、(b) relocation Eq.9 と SoA parameterization の結合不足。
  • 卒論 contribution: 「MCMC 3 欠陥修正の 5 連続失敗 + component ablation + 30k final の decisive failure」という measurement-driven negative finding として、Apple Silicon native 実装の scope 境界を明示化。ROI 階層 calibration narrative (`docs/strategy/2026-06-25-next-steps-deep-dive-v2.md`) の A (Reframing) 補強 evidence。

5. Future work

  • scale_eigen_l1 の勾配符号 audit: `regularize.rs::apply_mcmc_scale_l1` の実装を論文 Eq.11 と 1 対 1 で照合、logit space vs linear space の scaling を確認。1 日工数で fix 可能性あり、卒論 body 執筆と並走可能。
  • relocation Eq.9 の rotation-aware Σ 補正: 現状は scale 1/sqrt(N_t) の単純近似、論文補遺の完全 Σ_new (rotation 含む) 実装は 2-3 日工数。fix3 敗因 (b) の直接対処。
  • msplat (rayanht) の MCMC 経路との比較: msplat は densify + refine のみで MCMC 未実装、gsplat も同じ。MCMC 実装は open fieldで、本実装の 5 連敗 + ablation 結果は community contribution としても価値がある (E track の PR ネタ)。
  • W2 (Mip-NeRF 360 実写) に workstream 切替: G3 撤退により 7 月残り時間を全て G1 に投入可能、W2 前倒しで 7/8 以前に着手検討。

6. 関連

  • 3 欠陥仕様: docs/findings/mcmc-3-defects.md
  • fix2 敗因 calibration doc: docs/findings/mcmc-noise-calibration.md
  • Phase I baseline (比較対照): docs/findings/p1-axis1-phase-i-scene-adaptive.toml
  • 7 月実行プラン (G3 timebox 判定基準): docs/strategy/2026-07-execution-plan.md
  • reframing narrative: docs/strategy/2026-06-25-next-steps-deep-dive-v2.md
  • 3 実装アーキ比較 (msplat/brush/splat): docs/architecture/three-impls-arch.md
  • Config 一覧 (11 本、smoke×3 + iter2000×3 + ablation×3 + final30k×2): splat/configs/2026-07-mcmc-*.toml
  • Runner scripts (4 本): splat/scripts/run-mcmc-*.sh
  • Run logs: runs-logs/mcmc-*-20260721-*.log
02

関連する run

この finding が観測された / 言及している実験 run。

03

関連 finding

© 2026 大竹律輝 — 松田研究室