精读笔记
Problem Setting
这篇论文真正处理的不是一般 long-horizon manipulation,而是接触丰富任务里由历史交互造成的部分可观测性。当前视觉帧可能看起来相同,但正确动作依赖于之前尝试过哪个孔、推过哪个目标、移动过哪个物体、失败发生在哪里。困难点在于隐藏变量不是静态语义状态,而是由 robot-environment interaction 累积出来的行为状态。
以前方法卡住的地方在于:memoryless visuomotor policy 只能在 aliased observations 上拟合条件动作分布,结果往往变成多模态平均、循环尝试或重复失败;简单堆 observation history 又成本高,并且未必保留接触过程中的关键事件;VLA / prompt memory 则需要人指定“该记什么”,不适合作为可扩展的低层控制记忆。任务的关键矛盾是:对控制最关键的信息低维但隐藏,而原始视觉历史高维但大部分无关。
Motivation
作者的动机很明确:既然接触操作中的进展经常无法从当前图像读出,那么继续扩大视觉编码器或给 VLA 更多 prompt 并不能从根本上解决 aliasing。缺的是一个能从交互轨迹中抽取 latent progress / failed-attempt state 的机制,而且这个机制最好不依赖人工标签、语言模板或昂贵的视觉未来预测。
核心观察是动作历史本身是非常强的自监督信号。机器人做过的动作序列往往隐含了它接触过哪里、已经完成了哪些子目标、哪些尝试失败、当前处于哪个阶段。相比视觉历史,动作历史低维、时间连续、与控制决策直接同构;相比语言记忆,它不需要人类预先定义状态变量。因此论文想补的缺口是:把“行为轨迹”而不是“视觉帧”作为长期记忆学习的监督来源。
Core Idea
CAMP 的核心思想是把 policy 的历史依赖从“存储外部观测”改成“压缩自身行为”。记忆模块不是直接为了预测下一步动作训练,而是先被迫从当前 hidden state 重构过去一段动作轨迹的压缩表示。这样做相当于给 hidden state 加了一个约束:如果它能解释过去行为,它就必须保留足够的任务进展、交互尝试和失败信息;这些信息再用于条件化 diffusion action head。
本质区别在于建模对象变了。prior memory 方法多在视觉 token、关键帧、语言描述或 retrieval buffer 上做文章,试图把历史原样保存或检索出来;CAMP 则假设对接触操作来说,过去动作的低频结构已经是一个足够好的 behavioral sufficient statistic。它引入的 inductive bias 是:长期记忆应当是低维、行为态、阶段化、可泛化的,而不是高维视觉缓存。这使它在工程上更轻,也更适合高频低层控制。
Method
方法里真正必要的机制只有几层。第一,recurrent memory 读入过去动作、proprioception 和固定第三视角特征,目标是形成一个随时间更新的 history state;它解决的是当前观测无法识别历史阶段的问题,而不是提升视觉表征本身。
第二,用 DCT 低频系数重构过去动作,而不是直接预测 raw actions。这个设计的作用是把 memory 从逐步记忆器压成行为轮廓编码器:保留轨迹形状、阶段切换、尝试顺序,丢掉不稳定的高频执行细节。这里的关键不是 DCT 这个变换本身多新,而是“用有损低频目标限制记忆容量”这个 bias。
第三,VQ 离散化 hidden state。论文的解释是连续 hidden state 容易让 action head 过拟合 demonstration identity 或细粒度轨迹差异;离散码本迫使历史表示聚成有限个 behavioral modes。这一点很重要,因为它把 memory 从连续 trajectory embedding 推向类似 latent task phase / attempt state 的表示。
第四,staged training:先让 memory 学会保留长时程行为信息,再让 action head 适配冻结 memory,最后小学习率联合微调。这个 schedule 解决的是 action loss 的短视性:如果一开始端到端训练,hidden state 会被下一步动作预测牵引,长期信息会被擦掉。Diffusion Policy 在这里主要提供强的连续动作分布建模,不是 memory claim 的核心。
Key Insight / Why It Works
最关键 insight 是:在很多接触操作任务中,隐藏状态并不需要通过视觉重建来恢复,动作历史已经携带了足够的因果痕迹。比如“试过哪个孔”“推过哪个目标”“哪个抽屉已经打开过”都可以从行为序列中读出来;当前图像只负责局部几何和精确执行,memory 负责 disambiguate phase。这是更好的 inductive bias,而不是单纯 scaling。
真正有效的部分很可能是“动作历史自监督 + 有损压缩 + 离散 behavioral state”三者组合。动作历史提供监督,DCT 防止记忆变成 buffer,VQ 防止连续 embedding 记住 demonstration-specific quirks。warm-up schedule 是工程上必要但概念上也重要,因为它避免 action objective 把长期记忆压缩成短期 reactive feature。
论文里一个有价值的发现是:最好的 memory 不是最好的 reconstructor。finetune 后 reconstruction loss 变差但 policy success 变好,说明 reconstruction objective 只是 scaffold,最终有用的是与 action distribution 对齐的 latent state。这比“学会完整历史表示”更接近实际控制需要:policy 只要知道当前应该处于哪个行为模式,不需要重放所有过去动作。
需要直接指出的是,论文里的“learning from failure”更像 latent retrieval / state disambiguation,不是显式因果推理。它并没有形成 symbolic record,也没有规划器;它学到的是 demonstrations 中失败尝试后的典型后续行为。如果测试时失败模式超出数据覆盖,或者历史动作不能唯一指示失败原因,能力可能迅速下降。增益来源主要不是 test-time compute,也不是大模型 scaling,而是更合适的 representation alignment。
Relation To Prior Work
它最接近三条线:Diffusion Policy 的 visuomotor imitation、LSTM / recurrent policy 的历史编码、以及 recent VLA memory / retrieval 方法。看似新的是 CAMP 架构,实质上是把旧的 recurrent memory 用一个更适合接触操作的自监督目标重新约束了。新意不在“给策略加记忆”,而在“用压缩动作重构来定义该记什么”。
相对 visual-token memory / keyframe retrieval,CAMP 不试图保存视觉证据,而是保存行为后果;这使它更贴近低层控制里的 hidden progress。相对 Past-Token Prediction 或 full-history encoding,它避免高维历史预测,把监督压到动作空间。相对 TraceVLA 这类把动作轨迹画回图像的方法,CAMP 的 memory 是 latent 且可长期维护,不依赖视觉 overlay。
不过很多元素本身并不新:LSTM、DCT 压缩、VQ、diffusion action head、staged finetuning 都是已有技术。实质创新是把这些组合成一个针对 contact-rich POMDP 的信息瓶颈:动作历史作为自监督标签,低频压缩作为 inductive bias,离散码作为 behavioral abstraction。
Dataset / Evaluation
evaluation 的设计基本围绕核心 claim 展开:构造当前观测无法区分但历史动作能区分的任务,包括 tracking progress 和 learning from failure 两类;再比较 memoryless DP、大 VLA 和 memory VLA。这个设置能较好验证“动作记忆能缓解 partial observability”,尤其是 Memory-T-Bench 中 Markovian Push-T 几乎无额外收益,而隐藏历史需求越强增益越大,这个模式比单个平均成功率更有说服力。
3D simulation 和真机实验增加了可信度,尤其真机任务中 memoryless baselines 大面积崩溃,说明这不是纯 toy benchmark。但评价也有明显限制:任务仍然是每任务训练,更多是在验证 task-specific behavioral memory,而不是跨任务泛化记忆;真实任务数量少,trial 数也不大;VLA baselines 的输入模态、wrist view、深度/精细操作能力不完全匹配,因此不能把结果解读为 CAMP 普遍强于 VLA memory。
benchmark 本身可能偏向 CAMP:很多任务的 hidden state 正好可由动作尝试序列恢复,例如试过哪个目标、哪个孔、哪个物体。这很好地验证了方法适用域,但也意味着 claim 的边界较清晰:它验证的是 action-history-sufficient 的 POMDP,而不是所有部分可观测 manipulation。
Limitation
最核心前提是动作历史近似足以恢复任务相关 hidden state。如果隐藏变量来自未观测外部扰动、对象内部状态、随机物理变化,或者同一动作序列可导致多个不同结果,CAMP 的记忆会不够。它依赖“自己做过什么”能代表“世界变成什么样”,这在封闭、可重复、专家示范覆盖充分的 manipulation 里成立,但不是一般 POMDP 的充分统计量。
第二个上限是 horizon 和容量。DCT 低频压缩适合平滑、阶段化动作,但对极长时程、稀疏关键事件、非周期/非平滑行为可能丢失关键信息。作者也承认 extremely-long-horizon memory 仍困难。VQ 码本能提升泛化,但也可能把罕见状态合并掉;码本大小和任务复杂度的 scaling law 文中未充分说明。
第三,泛化能力不要过度解读。多数结果是 per-task imitation learning,CAMP 学到的很可能是 demonstration distribution 中的 latent phase machine,而不是可组合的长期状态模型。所谓 recovery from failure 可能主要来自数据覆盖:只要专家示范包含“失败后换下一个尝试”的模式,memory 就能检索到相应行为;若失败类型、对象布局或接触动力学超出训练分布,是否还能恢复文中未充分说明。
第四,增益归因仍有不清之处。CAMP 相对 DP 多了 memory、额外预训练、VQ、不同训练 schedule 和有效容量;虽然 ablation 做得比较针对,但没有完全分离“更多优化阶段 / 更强正则 / 更大模型容量”与“动作记忆”本身的贡献。VLA 对比尤其不能作为强证据,因为 modality 和 low-level precision 差异太大。
Takeaway
- 第一,接触操作里的长期记忆不一定要从视觉历史学;动作历史可能是更干净、更低维、更接近控制因果链的监督源。
- 这一 insight 可以迁移到其他 embodied domains,例如 locomotion recovery、tool use、deformable manipulation、closed-loop assembly。
- 第二,memory objective 最好是 scaffold,而不是最终目标。
- 先用自监督任务强迫模型吸收历史,再通过 policy loss 对齐决策需求,比端到端让 policy 自己“顺便学记忆”更可靠。
一句话总结
CAMP 是一篇把机器人长期记忆从视觉/语言缓存转向“压缩行为历史”的工作,真正贡献在于为 contact-rich POMDP 提供了一个低维、自监督、带信息瓶颈的 behavioral state learning 方案。
