Spatial-BEATs / docs /v13e_spatial_beats_design.md
dieKarotte's picture
Add files using upload-large-folder tool
dd39446 verified
|
Raw
History Blame Contribute Delete
2.84 kB

v13_E 设计文档 — 调整后的定位

日期:2026-05-02 (调整版) 状态:暂不运行。v13_D 已在跑且表现超预期(ep10 F=0.402),先等 v13_D 跑完 25 epoch 定位:v13_D 之后的扩展实验(可能的 v13_F),而非替代


重要前提(来自 postmortem)

之前此文档写的是 "v13_D 崩溃,v13_E 抢救"。这个前提错了。 v13_D 在 ep8 spatial loss ramp 放开后 F 从 0.19 跳到 0.40,ep10 已经超过 v12 best (0.378) 并仍在上涨。v13_D 是目前最强的实验。

v13_E 的实际价值是 在 v13_D 之后再加一层:启用 num_active head 的训练 + 让 SELD official evaluator 用 top-K̂ gate。这是 v13_D 没有做的改动,理论上正交。


v13_E 设计(保持不变,但动机重写)

改动

  • [E-1] cls warmup 8 epochs + 20 total epochs
  • [E-2] 启用 num_active head 训练(lambda_frame_num_active = 0.5)+ 推理 top-K̂ gate

和 v13_D 的关系

改动 v13_D v13_E
cls warmup 长度 8 8
cosine LR
Top-K rank loss
EMA
resume optimizer
num_active head 训练
SELD top-K̂ gate

v13_E 是一个剥离了 v13_D 的 loss/schedule 改动、只加 num_active 的对照组。不能直接比 "哪个 F 高",而是回答:

在同样 8 ep warmup 下,num_active head + top-K̂ gate 单独带来多少 F?

如果 v13_E 最终 F > v13_D,说明 num_active 是正贡献,应该在 v13_F 里合并;反之说明它和 v13_D 的 Top-K rank 路径冲突。


何时运行 v13_E

先看 v13_D 最终结果

  1. 如果 v13_D 稳定在 0.43 以上 → 写 v13_F = v13_D + num_active 做融合
  2. 如果 v13_D 最终不到 0.40 → 跑 v13_E 看 num_active 单独能达到多少
  3. 如果算力充足 → 现在就可以跑 v13_E 做独立 ablation(对照组)

预期(基于 v13_D 实测)

指标 v12 best v13_D ep10 v13_E 预期
F20 0.378 0.402 0.39~0.42
aR 0.126 0.069 0.13~0.18

v13_E 的 aR 预期比 v13_D 高(num_active 补漏报),但 F 可能持平或略低(没有 Top-K rank + cosine + EMA 的增益)。


代码状态

  • spatial_loss.py_build_frame_track_official_segment_dictsuse_num_active_gate 参数
  • train_spatial_beats.pymake_ov1_unified_v13e_config 已注册,CLI dispatch OK
  • run_ov1_unified_v13e.sh — 可运行
  • ✅ smoke test 通过

不影响其它实验

所有改动通过 config flag,默认 False。v12/v13_B/v13_C/v13_D 不受影响,照旧可跑。

参考

  • 主要错误诊断记录:docs/v13_honest_postmortem.md
  • v13_D 设计:docs/v13d_spatial_beats_design.md