阶段总结(2026-10-03,hit)
本文汇总 2026-10-02 至 10-03 在 hit 上完成的实验。逐条记录见 STATUS.md 与 EXPERIMENTS.md;每个实验的计划、协议、预注册与完整性记录都在各自的 outputs/ 目录中。所有主判定都是预注册的,探索性分析均已标明。
13:00 修订: 加入 Core B V9、V24、V25;13:45 再加入 V27;15:05 加入 Core B V10;18:05 加入 V26(第 1 节)与 V29(第 2.2 节);10-04 01:10 加入 Core B V11、V28(第 2 节、第 2.1 节)与 V30(第 2.2 节),第 4 节随之更新;05:00 加入 V31,06:40 加入 V32 与 V33(第 1 节、第 4 节)。V24、V25 把 Core B 与使用同样帧的无模型基线比较,改变了对 Core B 实际意义的判断,第 2.1 节与第 4 节据此改写。
1. Core A:静态补全 carrier
问题: 静态 carrier 在上下文没有观测到的区域(FAR)上的补全,平均优于调和插值,但只在约 2/3 的场景上成立。能否让它更好、更一致?
| 杠杆 | 实验 | 结果 |
|---|---|---|
| 加宽(32 → 64) | V12、V15、V19、V20、GPU 试点 | 无作用 |
| 加训练场景(72 → 127) | V14、V15、V18、V20 | 无作用,6000 步时有害 |
| 加长训练(6000 → 24000 步) | V17–V20 | FAR +0.04–0.06,约 2/3 的场景变好;约 24000 步饱和 |
| 同一批场景的片段多样性 | V21 | 无作用,略有损害 |
| 训练光线集中在 FAR 像素(每个角色 75%) | V26(预注册,GPU,24000 步) | 未确立:主队列 FAR +0.020 [−0.005, +0.051],只有 42/80 个场景变好;EVAL-FAR 与 FRESH-V2 上方向相反 |
| 预训练视觉特征(DINOv2 ViT-S/14,经初值为零的旁路) | V31(预注册,GPU,24000 步) | 未确立:FAR +0.004 [−0.014, +0.024],只有 36/80 个场景变好;EVAL-FAR 与 FRESH-V2 上略差 |
| 覆盖整个体积的三维上下文(U-Net 残差分支) | V32(预注册,GPU,24000 步) | 未确立:第 24000 步 FAR −0.002(36/80 个场景变好);第 6000 步好 +0.018(57/80),只是学得更快;EVAL-FAR、FRESH-V2 上略差 |
| 深度读出(深度除以不透明度) | V22(预注册,EVAL-FAR) | 长训练增益约 2/3 来自未归一化的深度读出;远处 query 上剩约 +0.02 的真实改进 |
| 只用上下文的测试时精修 | Core B V6、V23、Core B V7 | 时有时无(TRAIN-EXT 支持,EVAL-V3/V4 与 EVAL-V5 未确立),对 FAR 补全没有帮助 |
事后诊断(探索性,outputs/EXP-3D-RGBD-POSTHOC-DIAG-V1):
- 补全在场景之间的不一致不是 seed 噪声,而是场景本身的性质:约 1/8 的难场景会被长训练稳定地变差,问题出在状态体积内部、上下文没有观测到的区域。
- 长训练增益最大的,是 FAR 表面落在状态体积之外的场景;那里的增益主要来自把不透明度补满。
2. Core B:动态写入(流式到达的新帧)
问题: 新帧到达时,往快速权重里写入,能否胜过只把新帧缓存进多视角融合?
| 实验 | 队列 | 写入方式 | 超出只缓存的增益 | 结论 |
|---|---|---|---|---|
| V1–V3 | DEV | 学到的写入规则 | ≈ 0 | C |
| V4 | DEV(8) | 梯度 TTT,10 步 | +0.0115 | A |
| V5 | EVAL-V3∪V4(83) | 10 步 | +0.0079 | A |
| V6 | TRAIN-EXT(55) | 10 步 | +0.0148 | A |
| V7 | EVAL-V5(23,全新) | 100 步 | +0.0150(10 步 +0.0068) | P2 SUPPORTED |
| V8 | EVAL-V3∪V4(83) | 100 步 | +0.0213(73/0/10;10 步 +0.0079) | P1 SUPPORTED |
| V9 | TRAIN-EXT(55) | 100 / 300 步 | +0.0355 / +0.0396(51/4、48/7) | D |
| V10 | EVAL-V3∪V4(83) | 100 步,另外三个 carrier | +0.0244 / +0.0286 / +0.0327 | A |
| V11 | EVAL-V3∪V4(83) | 每到一帧写 25 步(共 100 步) | +0.0145(68/0/15;一次性 +0.0213) | B |
| V28 | Replica(8,跨数据集) | 100 / 1000 步 | +0.0250 / +0.0450(7/0/1) | B |
- TTT 的设置: 10 步是 Core B V4 在 TRAIN 上选出的。carrier 正是在 TRAIN 场景上训练的,在那里更多的步数有害;在没见过的场景上,100 步的增益约为 10 步的两倍(V23 的剂量臂,V7 确认)。
- 场景特异性: 每一轮"写入别的场景的增量"都明显更差;100 步时,别的场景的增量甚至比只缓存还差(V7:+0.0228,22/1)。
- 增益落在哪里: 10 步时几乎都在已观测的区域(NEAR);100 步时也扩展到上下文没看到的区域(V7:FAR +0.017)。
- 新帧监督 vs 上下文监督(V8,83 个场景):
- 新帧都已缓存时,用新帧监督比用上下文监督多 +0.0114 [+0.0053, +0.0180],CI 不含 0,但只有 69% 的场景不变差(PARTIAL);V6、V7 的点估计同样为正;
- 100 步的总增益(+0.021)约一半来自对状态的一般性精修(上下文监督 +0.010),另一半来自新帧的信息;
- 在上下文没看到的区域,上下文精修的贡献为 0,改善(+0.019)全部来自新帧监督;
- V9 在 TRAIN-EXT 上重现:+0.0162 [+0.0038, +0.0296],但只有 67% 的场景不变差,仍为 PARTIAL。
- carrier 的通用性(V10): 宽度 32/64 × 训练数据 TRAIN72/TRAIN127 的四个 carrier 上,写入都稳定胜过只缓存(三个新 carrier 都 SUPPORTED);宽度越大增益越大(+0.0078,CI 不含 0),训练数据的作用不确定。
- 剂量(V9): 300 步比 100 步只多 +0.0041 [−0.0033, +0.0096](44/11),未确立,增益在 100 步附近基本饱和。
- 逐帧在线写入(V11): 每到一帧写 25 步,保住了一次性写入增益的约 2/3;回放已到达的旧帧没有帮助,只监督最新一帧同样好。
- 跨数据集(V28,Replica): 只在 Hypersim 上训练的 carrier 在 Replica 上与常数预测相当(0.445 对 0.411),写入仍稳定改进它(7/8 个场景),但归一化读出下增益只剩 +0.005(CI 跨 0)。
2.1 与使用同样帧的无模型基线比较(V24、V25,CPU 重新计分)
流帧也是测得的 RGB-D。把 3 个上下文帧与 4 个流帧(共 7 帧)的测得深度重投影到 query、再用调和插值补洞,就得到只用同样测量的无模型基线(REPROJ7_HARMONIC)。实际可用的方法是混合:距重投影命中 8 像素以内(NEAR7)用调和插值,其余像素用 carrier。
| 近处 query(V24,EVAL-V3/V4,83) | 远处 query(V25,EVAL-FAR,79) | |
|---|---|---|
| NEAR7 占有效像素 | 93.8% | 87.1% |
| 无模型基线 REPROJ7_HARMONIC | 0.175 | 0.194 |
| 只用 carrier(TTT_100) | 0.186(只在 19/83 个场景更好) | 0.214(25/79) |
| 混合 HFILL8_7(TTT_100) | 0.167 | 0.179 |
| 混合相对无模型基线 | +0.008,31/19/33,PARTIAL | +0.015 [+0.002, +0.030],35/14/30,PARTIAL |
| 写入在混合里的作用 | +0.0001,未确立 | +0.0004,未确立 |
- 新帧带着测得深度到达时,直接重投影就覆盖了 query 的绝大部分像素,单靠它就胜过带写入的 carrier。
- 写入改善的主要是测量已经覆盖的像素,所以在混合里几乎不起作用;carrier 内部的写入增益仍然稳定(远处 query 上 +0.010,58/21)。
- carrier 的实际贡献在测量覆盖不到的像素上:平均为正,但只在约 60% 的场景成立;归一化读出的混合最好(远处 query 上 +0.020,40/14/25),也未达到一致性门槛。
- V27(新队列:TRAIN-EXT 55 个场景与 EVAL-V5 23 个场景): 混合相对无模型基线只有 +0.0013(36/19/23,未确立),V24 的 PARTIAL 没有重现;在 V24、V25 数据上探索出的"FAR7 取更远深度"规则也没有重现(+0.0003)。写入在 FAR7 像素上仍然有用(+0.028,CI 不含 0),但这些像素只占约 5%。
- V28(Replica): 7 帧 NEAR 只占 70%,但 carrier 在其余像素上远不如调和插值,混合方法比无模型基线(0.062)差 0.147(1/0/7,HARMFUL)。
2.2 新帧没有深度时(V29、V30)
无模型基线依赖新帧的测得深度。V29(EVAL-V3/V4,83 个场景,GPU)让 4 个流帧只有 RGB 与相机,状态封存之前从未读取它们的深度:
| 全部像素的 AbsRel | |
|---|---|
| 不加新帧(NO_STREAM) | 0.269 |
| 只用上下文精修 100 步(CTX_TTT_100) | 0.251 |
| 缓存没有深度的新帧(OFF_RGB) | 0.308 |
| 缓存后再写入 100 步(TTT_RGB_100) | 0.295 |
| 不缓存,只用新帧 RGB 监督写入 100 步(RGB_SUP_100,V30) | 0.349 |
| 不缓存,上下文 RGB-D 与新帧 RGB 一起监督(CTX_RGB_SUP_100,V30) | 0.250 |
| 3 帧无模型基线(REPROJ3_HARMONIC) | 0.289 |
- 把没有深度的新帧缓存进融合,状态变差 0.039(32 个场景变好、51 个变差);写入挽回 0.013,仍比不加新帧差 0.026 [0.009, 0.045](P1 HARMFUL)。
- 现有 carrier 只在带深度的视图上训练过,没有深度的缓存帧对它是分布外的输入。
- V30: 新帧不缓存,只作写入的监督。只用新帧 RGB 监督时状态明显变差(−0.080 [−0.118, −0.046],63/83 个场景变差,HARMFUL);在上下文 RGB-D 监督之外再加新帧 RGB 监督没有作用(+0.0013,35/48)。只有光度监督时,写入为了拟合颜色而破坏几何。
- 探索性诊断(DEV): 把有效视角比例改为只按带深度的视角归一化,几乎没有作用(+0.002);伤害更可能来自只被 RGB 视角支持、没有深度证据的体素,这在训练中从未出现。
3. 数据与工程
- EVAL-V5: 按用户的决定放宽规则(允许 val 划分、允许与 DEV/FRESH 共享 volume),得到最后一批 23 个从未观察过的 Hypersim 场景;它们与 V17 L 的训练集按 volume 不相交。按原来的规则,Hypersim 已经没有可用的新场景。
- 事故(Core B V5): 冻结的封存屏障每次读取都重算全部状态的哈希,在 664 个状态时变成平方级开销。在写出任何结果之前停止,改用
CachedSealBarrier后重新冻结运行,记录在audit/incident_attempt1_slow_seal_barrier.md。 - 一致性检查: 每一轮都重新计算全部指标(误差 0),核对状态哈希、封存前的深度访问与旧实验产物;与模型无关的 NEAR 掩码与调和插值都与 V17 封存的数组逐一相同。
4. 结论与下一步
- Core B 在 carrier 内部成立: 新帧到达后,用新帧自己的 RGB-D 对快速权重做梯度写入,在 4 个队列(DEV、EVAL-V3/V4、TRAIN-EXT、EVAL-V5)与 4 个 carrier 上稳定胜过只缓存新帧,携带本场景的信息;增益在约 100 步时饱和;逐帧在线写入(V11)与换到 Replica(V28)也成立。
- 但实际意义有限(V24、V25): 同样的 7 帧测得深度直接重投影,就覆盖了 87–94% 的 query 像素,并胜过带写入的 carrier。在实际可用的混合方法里,写入的作用约为 0;carrier 只在测量覆盖不到的像素上有用,平均为正但只在约 60% 的场景成立,在两个新队列上(V27)连平均优势也没有确立。
- Core A 与 Core B 汇合到同一个问题: 测量覆盖不到的区域上,carrier 的补全在场景之间不一致。加宽、加数据、加长训练、加多样性、把训练光线集中到这些区域(V26)、预训练图像特征(V31)、覆盖整个体积的三维上下文(V32)、测试时写入都没有解决这一点。
- 方法上的教训: 今后每一轮 Core B 的对比,都要把只用同样测量的无模型基线作为必备的参照。
- 新帧没有深度时(V29、V30): 无模型方法用不上这些帧,现有 carrier 也用不上:缓存它们有害,只用它们的 RGB 监督写入更有害,与上下文监督一起用也没有增益。
- 跨数据集(V28): carrier 在 Replica 上与常数预测相当,无模型重投影(0.062)远远更好;只在 Hypersim 上训练的 carrier 迁移不到别的数据集。
- 方法探索的现状(10-04): 机制层面有两条站得住的结论(carrier 在没观测区域上平均优于调和插值、写入在 carrier 内部稳定胜过缓存),但 V17 以来没有一个改动让 carrier 相对无模型基线有稳定的实际提升。瓶颈更可能是结构性的:每个视角只有 8 个从零学出的图像通道,先验只来自 72 个合成场景。
- V31(预训练视觉特征,分支 C): 按用户 10-04 的选择接入冻结的 DINOv2 特征,FAR 补全没有变好(+0.004,36/80 个场景变好),描述性队列上略差。图像特征只沿光线提升到体素上,到不了没有观测支持的区域。
- V32(三维上下文,分支 C): U-Net 分支让学习更快(第 6000 步 +0.018),但第 24000 步与 G1 相同(−0.002),在其他队列上略差;按预先写定的条件,新队列上的确认(V33)未运行。
- 两个结构性改动之后的判断: 图像特征(V31)与三维感受野(V32)都不是限制最终补全的主要瓶颈。容量更大时泛化略差,更像是训练数据(72 个合成场景)的限制或任务本身的歧义;训练场景加到 127 个(V18、V20)也没有帮助,需要的数据规模可能要大一个数量级以上。
- 下一步的方向: 直接针对测量覆盖不到的区域:例如在 carrier 与无模型补洞之间按像素选择(用 TRAIN-EXT 拟合选择规则,在评价队列上检验),或寻找能预测 carrier 何时可靠的量。