EXP-3D-RGBD-DEPTHSPLAT-JEPA-OBJECTIVE-TTT-ARKIT-V1:只奖励精度的逆向 JEPA 能否改进 TTT
本文件即预注册。锁定时间与哈希见 preregistration.json。
1. 问题
此前两次尝试,逆向 JEPA 预训练都让 TTT 的起点变差:
- JBT:尺度上限 3.0,以 JA 为起点,15/65。
- JC:尺度上限 0.1,以 JC 为起点,24/56。
JC 的分析指向训练目标:它对未覆盖的像素按全深度惩罚,奖励的是覆盖而不是精度。结果前馈覆盖率从 0.73 升到 0.88,前馈误差从 0.121 升到 0.173。
本实验改用只奖励精度的目标:
- 深度项:只在状态已覆盖的像素(α ≥ 0.5,掩码不传梯度)上,计算归一化深度的相对 L1;
- 颜色项:同样只在已覆盖的像素上,计算归一化颜色的 L1;
- 未覆盖的像素不产生任何损失。
本实验检验两个变体:
- JN(3 帧): 只换目标,其余与 JC 完全相同(上下文 3 帧,目标为有重叠的非上下文帧)。它回答"损害是否来自目标"。
- JK(7 帧): 在 JN 的基础上,把训练时的 episode 改成 TTT 评估的布局:状态由上下文 3 帧加流式帧 4 帧建成,目标是第 14、15 帧。它回答"按 TTT 的用法训练,能否给出更好的起点"。
本设计受 JBT 与 JC 结果的启发,但锁定早于本实验的任何训练与评估。
2. 数据
- 训练: ARKit TRAIN,182 个扫描(EXP-3D-RGBD-ARKIT-DATA-V1)。
- JN 的目标帧沿用 OVERLAP-V1 的命中表(命中比例 ≥ 0.05)。
- JK 的流式帧用冻结的
stream_frame_ids规则预先算好(code/make_streams_train.py生成training/streams_TRAIN.json,只用帧编号)。182 个扫描都有,其中 180 个是第 5、8、10、13 帧。
- 评估: ARKIT_VAL,80 个扫描、160 个 episode、320 个查询。
- episode 与 ENSEMBLES-ARKIT、JBT、JC 完全相同(
frame_role_lock.json逐字节复制)。 - 复用以下封存(哈希核对):
- ENSEMBLES-ARKIT 的几何封存;
- 发布权重(上限 0.1)的 CACHE / TTT 封存;
- JC 的封存(上限 0.1);
- JBT 的 JA 封存(上限 3.0)。
- episode 与 ENSEMBLES-ARKIT、JBT、JC 完全相同(
- 许可: 只用于非商业研究,媒体在 git 之外。
3. 模型
两个变体都只训练 1 个种子(20261008),4000 步,学习率 5e-6(ViT 5e-7),预热 200 步后余弦衰减,AdamW(weight decay 1e-4),梯度裁剪 1.0,尺度上限 0.1,使用最后一步。
- JN1:
train_jepa_arkit_norm.py,由 OVERLAP-V1 的train_jepa_arkit_overlap.py经derive_train_norm.py逐字替换得到,只改训练目标;每步 2 个目标帧。 - JK1:
train_jepa_arkit_cache.py,由 JN 的脚本经derive_train_cache.py逐字替换得到,只改 episode 布局。 - 评估: 都用 V1 的
ds_eval.py,跑 CACHE 与 TTT_m1(100 步),尺度上限 0.1。 - 执行:
code/jn_jobs.sh让两个模型同时训练;每个模型训练结束后,立即用 2 个分片评估。锁定脚本会重新派生两个训练脚本,要求逐字节相同。
4. 读出与指标
- F7 读出: α ≥ 0.5 处取射线深度 (depth_z / α) / cos,其余用 R7。
- 集成: GEO_X = sqrt(R7 × X)。
- 指标: AbsRel,区域为 ALL、NEAR7、FAR7。场景值 = 各角色查询平均后再对角色平均。
5. 主检验
主检验用 V2 gate;统计用场景 bootstrap,10,000 次,种子 20260928。
| 编号 | 对比(> 0 表示右边更好) | 区域 | 分支 |
|---|---|---|---|
| P1 | ZS_TTT − JN_TTT | ALL | JN_IMPROVES_TTT(SUPPORTED)/ _PARTIAL / _NOT_ESTABLISHED / JN_HARMS_TTT |
| P2 | ZS_TTT − JK_TTT | ALL | JK_IMPROVES_TTT(SUPPORTED)/ _PARTIAL / _NOT_ESTABLISHED / JK_HARMS_TTT |
6. 次要分析(只给标签)
| 编号 | 对比 | 区域 | 含义 |
|---|---|---|---|
| S1 | JC_TTT − JN_TTT | ALL | 同一上限下,只换训练目标的效果 |
| S2 | JN_TTT − JK_TTT | ALL | 7 帧布局的效果 |
| S3 | ZS_CACHE − JN_CACHE | ALL | 前馈状态 |
| S4 | ZS_CACHE − JK_CACHE | ALL | 前馈状态 |
| S5 | GEO_ZS_TTT − GEO_JK_TTT | ALL | 集成后 |
| S6 | GEO_ZS_TTT − GEO_JN_TTT | ALL | 集成后 |
| S7 | ZS_TTT − JK_TTT | NEAR7 | |
| S8 | ZS_TTT − JK_TTT | FAR7 |
另外报告各构建器、各臂的覆盖率。复现检查:复用封存的均值必须与原实验相同。
7. 完整性与局限
- 完整性: 读真值之前,所有封存都必须完整且哈希不变;分析跑两次,结果文件必须逐字节相同。
- 局限: 每个变体只有一个种子;ARKIT_VAL 已多次用于评估,但 JN、JK 都是新模型,本实验不在其上选择任何设置;只有 80 个扫描。