精读笔记
Problem Setting
【Improving Robustness to Out-of-Distribution States in Imitation Learning via Deep Koopman-Boosted Diffusion Policy】(IEEE Transactions on Robotics / 2025)
这篇论文真正处理的是 diffusion/action-chunking imitation policy 在部署时遇到 OOD robot state 后缺乏恢复能力的问题。具体说,机器人在执行中间子目标失败时,例如没有抓到抽屉把手,视觉上的任务状态仍然显示“尚未完成、应重新尝试”,但 proprioception 显示的关节配置已经偏离训练轨迹;常规视觉+本体融合策略容易把这个异常关节状态当作主要条件,从而收敛到振荡或错误固定点。
困难点在于 proprioception 是双刃剑。它对精细控制、接触状态、视觉歧义消解非常重要,但它也是 imitation learning 中最容易被模型利用的 shortcut:训练数据中关节状态与专家动作高度相关,模型可以不用真正理解视觉任务进展,只要拟合 joint-to-action mapping。这个 shortcut 在 i.i.d. 轨迹内表现很好,一旦执行偏离 demo manifold,就会变成灾难。
以前的 Diffusion Policy / ACT 主要把 action chunking 当作减少 compounding error 和建模多步动作相关性的工具,但没有解决“多模态输入中哪一个模态在当前状态下更可信”的问题。它们默认融合表示总是更好,而本文指出这个假设在 OOD state 下不成立。关键矛盾是:视觉提供 task-level progress 和 recovery signal,本体感觉提供 motor-level precision;单一融合策略无法稳定地区分两者何时该主导。
Motivation
作者的动机不是泛泛地说 diffusion policy temporal dependency 不够,而是来自一个很有价值的失败案例:在 Open Drawer 中,DP 使用视觉+proprioception 反而失败恢复差;纯视觉 DP 虽然没有显式 recovery demonstrations,却会反复尝试抓把手。这说明视觉条件下的 policy 更倾向于根据外部任务状态重新生成“接近—抓取—拉开”的动作,而不是被当前关节状态绑定。
但纯视觉也不是答案。Push Button 任务中,视觉很难判断按钮是否真正被按下,proprioception 类似 muscle memory,提供接触深度和执行阶段信息。也就是说,缺口不是“去掉 proprioception”,而是“避免 proprioception 在不该主导时主导”。
因此论文要补的机制是 test-time 的模态依赖切换:当 fused branch 由于 proprioceptive OOD 变得不可靠时,策略应能退回到更 task-progress-oriented 的视觉行为;当任务需要精细接触时,又应保留 fused branch 的优势。这是一个比单纯改网络结构更本质的问题:如何在 imitation policy 中引入对不同感知条件可靠性的动态判断。
Core Idea
D3P 的核心思想是把 imitation policy 从“一个融合表示生成一个 action chunk”改成“两个语义不同的 proposal 生成器 + 一个基于置信度的 action aggregation”。visual branch 只看视觉,倾向于编码任务进展和可重复尝试的行为;fused branch 看视觉+proprioception,倾向于执行精确操控。最终动作不是固定采用某个 branch,而是在当前与历史重叠 action chunks 中,根据 diffusion test-time loss 估计的可靠性进行选择/加权。
这个建模方式引入了一个明确 inductive bias:不同模态不是简单互补,而是承担不同因果角色。视觉对应外部世界状态和子目标达成情况;proprioception 对应身体配置和局部执行精度。prior work 通常把二者早期或中期融合,寄希望于网络学会自动解耦;D3P 则显式保留两条条件路径,让 test-time selection 来处理冲突。
Deep Koopman 的作用是进一步强化视觉分支。它假设视觉表征空间中存在近似线性 affine dynamics,当前视觉 latent 加上 latent action 可以预测下一视觉 latent。这个约束迫使视觉 encoder 关注能解释状态转移的因素,而不是背景、外观或静态相关特征。理论上这会让 visual branch 更像 task dynamics representation,而不是普通 image encoder。
本质区别在于,D3P 没有通过更大模型或更多历史上下文去“学会一切”,而是重新组织信息流:把 recovery-oriented visual policy 与 precision-oriented fused policy 分离,再用 generative model 自身的 loss 在 test time 做 proposal arbitration。
Method
1. 双分支 action proposal:解决的是模态 shortcut 和模态冲突。visual branch 生成只依赖视觉的 action chunk,保留基于任务进展的 retry 行为;fused branch 生成视觉+本体条件下的 action chunk,保留精细操控能力。它带来的核心变化是:策略不再被迫在一个 latent 中同时编码 recovery 与 precision,而是允许两类行为在 test time 竞争。
2. DKO 视觉动态约束:解决的是纯视觉表示可能只学到静态判别特征、缺少 transition-level structure 的问题。DKO 用近似线性 latent dynamics 约束视觉特征,使其能被 latent action 解释为从当前视觉状态到未来视觉状态的变化。这里的 Koopman 更像 representation regularizer,而不是实际部署时的 planner;部署时并不做未来状态预测。
3. diffusion test-time loss aggregation:解决的是 action chunking 中多个 overlapping chunks 以及双 branch 输出如何选择的问题。作者把 diffusion loss 作为 generated action 在当前条件下是否落在训练分布附近的 proxy,高 loss 表示不可信,再结合 temporal weighting 从当前和历史 chunk 中选动作。核心变化是 temporal ensembling 从固定平滑变成 uncertainty-aware selection。
4. switching training:训练时随机选择 fused representation 或 latent visual-action representation 作为 diffusion condition,让同一个 DDPM 能处理两种条件输入。这主要是工程上减少模型数量、共享 action decoder,同时让两个 branch 对齐到同一动作空间。其必要性相对较弱;消融中不使用 switching 也能达到类似甚至部分更好性能,因此这部分更像 training efficiency / parameter sharing,而不是核心创新。
Key Insight / Why It Works
最关键的 insight 是:在机器人 IL 中,“更多模态”不一定更鲁棒。本体感觉在训练分布内是高信噪比 shortcut,但在偏离 demo manifold 后会成为错误吸引子;视觉虽然低精度,却更接近任务完成状态的因果变量。D3P 的有效性主要来自显式保留这两种偏置,并在 test time 让它们竞争,而不是强迫一个融合网络内部解决冲突。
我认为真正核心贡献是 dual-branch + confidence-aware AC aggregation。它把 recovery 问题转化为 proposal selection:当 fused branch 给出的动作因 proprioceptive OOD 变得异常时,visual branch 的动作可能仍接近 demo 中某个“未完成子目标”的状态,从而重新拉回 in-distribution。这更像 memory reuse / retrieval from demonstration manifold,而不是产生了真正的错误诊断或规划能力。
DKO 是有意义的辅助贡献,但它的作用更像 better inductive bias / representation regularization。它让视觉 branch 不只是做图像到动作映射,而是被迫捕捉视觉状态变化中的可控因素。消融显示换 LSTM 不如 DKO,说明“线性动态一致性”比普通 temporal modeling 更有效。但增益来源仍不完全清楚:可能来自 Koopman 结构,也可能来自额外时序监督、stop-gradient 设计、augmentation consistency 和正则化共同作用。文中未充分隔离这些因素。
aggregation 的 diffusion loss proxy 是实用但脆弱的。它本质依赖生成模型 loss 与执行可靠性之间的相关性;这个相关性在 benchmark 中成立,但不保证在严重分布外、视觉遮挡、接触突变或多解动作场景中成立。它不是 learned value,也不是 calibrated uncertainty,更接近一个 heuristic OOD score。
这篇不是 scaling paper。模型和数据规模都不大,提升主要来自 inductive bias、test-time compute、以及更合理的信息流组织。它也不是 planning paper:action chunk 仍是短程闭环生成,所谓 recovery 多半来自 demo manifold 中已有行为片段的重新触发。
Relation To Prior Work
它最接近 Diffusion Policy / ACT 这条 generative imitation + action chunking 谱系。相对于这些方法,D3P 的核心新增不是 diffusion 生成动作,而是对 action chunk 来源和可信度的重新组织:从单一 policy 输出变成 dual proposal,再从固定 temporal ensembling 变成 loss-aware aggregation。
与普通多模态融合工作相比,D3P 的不同点在于不相信网络能自动学会何时使用 proprioception。它把视觉-only 和 fused 两种条件分开保留,这一点比“加 attention 融合”更实质。channel attention 等模块本身没有新意,真正重要的是 branch-level separation。
与 world model / video-action unified models 相比,D3P 没有在 pixel space 做显式视频预测,也不试图学习大规模通用 dynamics。它只用 Koopman-like latent dynamics 约束视觉表示,因此更轻,但表达能力也更有限。它避免了视频预测中 task-irrelevant variation 的负担,这是合理选择。
与 ILPO / LAPO / KOAP 等 latent action 路线相比,本文的 latent action 更像服务于视觉 branch 的表示约束和 diffusion condition,而不是完整的 observation-only policy learning 或 plan-then-control。KOAP 需要未来状态预测和 latent action decoding,D3P 则把 latent action 直接接到 diffusion action decoder,部署更简单。
与 BID、value-guided sample selection、temporal ensembling 等 AC aggregation 工作相比,D3P 的实质创新是把 branch-level uncertainty 也纳入 aggregation,而不是只处理同一 policy 在时间上的 overlapping chunks。但 test-time loss selection 的思想并非全新,更像把已有 generative uncertainty heuristic 移植到 dual-branch action chunking。
Dataset / Evaluation
评估覆盖了 RLBench 六个桌面操作任务和三个真机任务,任务类型包括开抽屉、按按钮、滑块、清扫、转水龙头、物体重定位等,基本能覆盖准静态 manipulation 中视觉进展与精细控制的冲突。真机实验是加分项,说明方法不是纯仿真技巧。
最能支撑 claim 的实验不是平均成功率,而是固定初始关节 vs 随机关节扰动的对比:融合 proprioception 的 DP 在随机扰动下明显掉性能,而 D3P 基本保持,这直接验证了 proprioceptive shortcut/OOD joint state 的问题。visual-only DP 在某些恢复场景更强,也支持作者的动机。
消融比较充分地证明 dual branch、DKO、aggregation 都有贡献;尤其是单 branch 不如聚合,说明不是简单选择 visual 或 fused 即可。不过增益归因仍有不清处:DKO、augmentation、额外 temporal loss、共享 diffusion decoder 的耦合效应没有完全分开。
评估的边界也明显:每个任务单独训练,demo 数量较小,场景结构简单,主要是 quasi-static manipulation。没有证明多任务泛化、跨物体类别泛化、长程任务泛化,也没有证明在严重遮挡、动态环境、复杂接触下可靠。真实世界中 Reposition Box 这类高精度任务 D3P 甚至低于 DP,说明核心 claim 对精密抓取并不稳。
Limitation
第一,方法依赖视觉能可靠表达任务进展。如果视觉观测存在遮挡、视角不足、细粒度接触不可见,visual branch 的 recovery signal 就会失效。Push Button 和 Reposition Box 已经暴露了这一点。
第二,所谓 OOD robustness 主要针对 joint-state perturbation 和中间失败后的 retry,不等于广义分布外泛化。它没有学习显式因果模型,也没有真正推理失败原因;更多是当 fused policy 卡住时,用 visual policy 重新触发训练分布中类似“尚未完成”的动作片段。
第三,diffusion test-time loss 作为置信度没有严格校准。高 loss 是否一定意味着动作不可执行,低 loss 是否一定意味着任务会成功,文中未充分说明。在多模态动作分布、多个可行解、或视觉输入 OOD 但动作仍可行的情况下,这个 proxy 可能误导 aggregation。
第四,计算成本是实质问题。双 branch 生成、diffusion denoising、test-time loss 计算叠加后推理慢,作者用 consistency model 蒸馏能提速但性能下降。这说明当前鲁棒性部分来自 test-time compute,而非免费泛化。
第五,DKO 的 scalability 有上限。线性 latent dynamics 对短间隔、准静态视觉变化可行;长程、多物体交互、强接触动力学下,Koopman 近似可能变差。作者也承认采样间隔需要折中,长 horizon 需要更大数据才可能稳定。
第六,当前实验是 per-task policy,不是开放场景策略。语言、多任务、不同对象类别和组合任务都没有验证。把这个方法扩展到 generalist robot policy 时,dual branch 的数量、aggregation 规则和 uncertainty calibration 都会变复杂。
第七,方法可能把问题从 policy learning 转移到了 aggregation heuristic。规则式 aggregation 在当前 benchmark 有效,但它没有学习任务层面的价值函数,也不理解 action chunk 之间的长期后果,因此在需要 delayed consequence 的任务中可能失败。
Takeaway
- 1. 多模态 IL 中,显式拆分模态角色可能比更强的融合网络更重要。
- 尤其是 proprioception 这种训练内强相关、部署时易 OOD 的输入,应该被当作可能的 shortcut source,而不是无条件收益。
- 2. Recovery 不一定需要专门的 failure demonstrations;如果视觉条件能把当前状态映射回 demo manifold 中“任务未完成”的区域,policy 可能自然重试。
- 这个 insight 可以迁移到 grasp retry、tool use、drawer/door opening 等中间子目标容易失败的任务。
一句话总结
D3P 是 Diffusion Policy 系列中一次有价值的“模态解耦 + test-time proposal selection”演化:它没有解决长期规划,但清楚地指出并缓解了视觉-本体融合 imitation policy 中 proprioception shortcut 导致的 OOD 恢复失败。
