系列:论文科普手记

Diffusion Policy 精读:把 Stable Diffusion 的「去噪」范式搬去生成机器人动作

1. 一句话结论

Diffusion Policy 的核心想法是:别再用「一维自回归 + 高斯混合」去预测机器人下一步动作,而是把动作序列本身当成一张「图像」,用和 Stable Diffusion 一模一样的扩散去噪范式去「想象」并生成一段动作轨迹。 结果是在 15 个操作基准里拿下 14 个 SOTA,且特别擅长处理「一个观察对应多种合理动作」的复杂场景。

它和本博客「VLA 解码手记(二)动作生成的发动机」是同一主题的不同解法——那里讲 Diffusion Policy 在动作生成里的位置,这里回到论文本身。

2. 动作生成以前怎么做?痛点是什么

机器人策略 π(aₜ | oₜ) 要由观测 oₜ(图像/状态)给出动作 aₜ。主流做法是:

更麻烦的是多模态:看到桌上有个杯子,机器人可以「从左抓」也可以「从右抓」,两种都合理。GMM 容易把两条路平均成一条奇怪的中间动作。

3. Diffusion Policy 怎么想

它借用条件扩散模型(DDPM 一类):

网络结构多用 CNN(1D/2D U-Net)或 DiT(Diffusion Transformer),条件 oₜ 通过 FiLM / Cross-Attention 注入每一步去噪。

4. 为什么扩散范式特别适合动作

维度GMM / 自回归Diffusion Policy
多模态只能用有限个峰近似隐空间天然表达复杂多峰分布
高维动作6-DoF 难拟合、易模糊把整段轨迹当图去噪,细节保真
训练稳定性易模式崩塌/取均值去噪目标简单(预测噪声),稳定
不确定性隐式显式:多次采样可得不同合理动作

直观类比:GMM 像「用几个钟形曲线硬凑出一只猫」;扩散像「先画一团噪点,再一点点擦出一只猫」——后者对复杂形状友好得多。

5. 关键设计点(论文里的巧思)

  1. Action Chunking(动作分块):一次生成未来 H 步(如 8–16 步)而非单步,既平滑又抗抖动,还能隐藏执行延迟。
  2. 观测条件注入:视觉观测经encoder后,用 Fixture/Cross-Attention 注入 U-Net 各层,保证「看得到才动得了」。
  3. 时间维度处理:动作序列按时间轴排列后送 1D 卷积 U-Net,去噪在网络里是「沿时间轴」的。
  4. 少步采样:后续工作(含 DDPO、consistency 等)把 K 从几十步压到几步,满足实时控制。

6. 结果为何亮眼

论文在 4 类 15 个任务(模拟+真实、刚体/布料/液体操控)上对比:

7. 它和 Transformer / VLA 的关系

8. 小结

Diffusion Policy = 把动作序列当「图」+ 条件扩散去噪 + Action Chunking。它用生成模型的多模态/高维表达能力,补上了传统策略头在「复杂、多解、高维动作」上的短板,成为机器人学习里继行为克隆之后最实用的动作生成范式之一。

延伸:想看工程实现与「扩散 vs 自回归」在动作生成上的取舍,回到「VLA 解码手记(二)动作生成的发动机」。

觉得有用?欢迎点赞、收藏,或请作者喝咖啡 ☕️

支付宝收款码

支付宝

微信收款码

微信

💬 留言

评论由 Giscus 驱动(基于 GitHub Discussions)。 当前仓库 NaphJohn/LLM-blog 尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。