UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)

💡 原文中文,约9300字,阅读约需23分钟。
📝

内容提要

本文解读了Columbia University、Toyota Research Institute、MIT联合发布的《Diffusion Policy:Visuomotor Policy Learning via Action Diffusion》论文,介绍了扩散策略的原理和优势。扩散策略通过学习梯度场将噪声细化为动作,准确建模多模态动作分布,容纳高维动作序列。文章还介绍了基于CNN和Transformer的扩散策略实现方法,并讨论了扩散策略在动作序列预测和训练稳定性方面的好处。

🔎

延伸解读

扩散策略如何避免多模态动作抖动

文章指出,传统方法如BC-RNN和BET将序列中每个动作独立预测为多模态分布,连续动作可能来自不同模式,导致在两条有效轨迹间交替抖动。扩散策略则通过去噪过程整体生成动作序列,利用高维输出空间的扩展性保持时间一致性,从而避免这种抖动。这解释了为何扩散策略适合需要连贯动作的任务。

CNN与Transformer骨干的选型建议

文章对比了两种扩散策略实现:基于CNN的版本使用FiLM调节卷积层,在多数任务上表现良好且调参少,但面对快速变化的动作序列(如速度命令)时因时间卷积偏好低频信号而表现不佳;基于Transformer的版本使用因果注意力,适合高复杂度任务,但对超参数更敏感。作者建议新任务先从CNN版本开始,性能不足再尝试Transformer。

训练稳定性:扩散策略为何更稳

隐式策略使用能量模型表示动作分布,但训练中负采样不准确会导致不稳定,且需估计难以处理的归一化常数。扩散策略通过建模相同动作分布的得分函数,完全回避了该常数的估计,其推理和训练过程均不涉及归一化常数评估,因此训练更加稳定。这是扩散策略相比能量模型方法的一个关键优势。

❓

Q&A

Diffusion Policy 是什么?它和传统机器人策略有什么不同?

Diffusion Policy 是一种将机器人视觉运动策略表示为条件去噪扩散过程的新方法。与传统直接输出动作的策略不同,它学习动作-分布评分函数的梯度,以视觉观察为条件,通过 K 次去噪迭代推断动作-得分梯度,并在推理过程中通过随机朗之万动力学步骤迭代优化梯度场来生成动作。

Diffusion Policy 相比其他方法有哪些优势?

扩散策略能优雅地处理多模态动作分布,适合高维动作空间,并表现出令人印象深刻的训练稳定性。它通过预测高维动作序列自然地解决了时间动作一致性问题,避免抖动动作;对空闲动作具有鲁棒性;且训练过程稳定,因为它完全回避了隐式策略中难以处理的归一化常数估计问题。

基于CNN和基于Transformer的扩散策略在实现上有什么区别?

基于CNN的扩散策略使用一维时态CNN,通过FiLM对观测特征进行通道级调节,从高斯噪声开始迭代去噪得到动作序列。基于Transformer的扩散策略将动作和噪声作为解码器输入tokens,观测嵌入通过多头交叉注意力层传入,每个动作嵌入使用因果注意力掩码仅关注自身和之前的动作。CNN版本在大多数任务上表现良好且无需过多调参,但动作快速变化时表现差;Transformer版本在任务复杂度和动作变化率高时表现更好,但对超参数更敏感。

Diffusion Policy 如何解决动作序列预测中的时间一致性问题?

扩散策略以高维动作序列的形式表示动作,而不是将每个动作独立预测为多模态分布。这样避免了连续动作从不同模式中提取导致在有效轨迹之间交替出现抖动动作的问题,从而保证了时间动作的一致性。

为什么说扩散策略的训练比基于能量的隐式策略更稳定?

隐式策略使用基于能量的模型表示动作分布,其中包含一个难以处理的归一化常数,训练时负采样的不准确性会导致不稳定。扩散策略通过建模相同动作分布的得分函数,完全回避了该归一化常数的估计问题,因此推理和训练过程都不涉及对其评估,从而使训练更加稳定。

在实际应用中,应该选择CNN还是Transformer作为扩散策略的骨干网络?

一般建议从基于CNN的扩散策略开始作为新任务的第一次尝试,因为它在大多数任务上表现良好且无需过多超参数调优。如果由于任务复杂性或高速率动作变化导致性能低下,则可以使用时间序列扩散Transformer来潜在提高性能,但代价是额外的调优,因为Transformer对超参数更敏感。

🏷️

标签

➡️

继续阅读