← VLA Atlas

Diffusion Policy 从噪声去噪到动作序列

chi et al. 2023 RSS · 多模态行为克隆的扩散方案 · 连续 action chunk + 迭代修正

Diffusion Policy 是 Chi et al. 在 2023 RSS 发表的经典工作,把图像生成领域的扩散模型(Diffusion Model)移植到机器人动作序列生成。核心思想很直观:不像行为克隆一下子回归出最"平均"的动作,而是让模型反复修正一个初始随机动作序列,逐步去掉噪声,最终收敛到学到的动作分布上。

为什么这很关键?因为在很多场景下,同一个观测对应多种正确的做法。比如端起一杯咖啡,可以从左边绕过、从右边绕过,甚至直接拿都行 —— 这叫多模态动作分布。传统回归/VAE 会把所有可能都平均,结果可能是撞杯子的中间路线。Diffusion Policy 能让每次采样各自"投入"其中一种做法,稳定且多样。

这条路线自 2023 年以来衍生了 iDP3(3D egocentric 泛化)、Consistency Policy(推理加速)、以及被后续 VLA(π₀ 等)的 flow-matching 动作头借鉴,成为当代动作生成的标志性思路之一。

核心机制

为什么去噪能拟合多模态动作

想象你有 100 个专家示教:50 个从左绕,50 个从右绕。行为克隆会拟合成"两边同时伸出胳膊"的平均怪物;Diffusion Policy 则学一个「能量场」,能在左绕和右绕两个区域各挖一个沟。

推理时,模型从完全随机的"乱动作"开始,沿着能量场的梯度逐步调整 —— 有时会滑向左沟、有时会滑向右沟,取决于初始噪声和随机过程。这样多次采样就能产生多种有效轨迹。

训练时,模型只学一个任务:猜出「在这一步被加进去的噪声是多少」。把真实专家动作故意加噪(轻打乱、中打乱、完全乱),让模型习惯从各个"损坏程度"恢复。学好了消噪,就等于学好了整个多模态分布。相对比:

训练目标的直观解释

Diffusion Policy 把 DDPM(Denoising Diffusion Probabilistic Model)从图像生成改造到动作序列。训练目标很简洁:

真实动作 A₀ → 加高斯噪声 ε^k → 得到 A_t^k
模型学习:ε_θ(观测, A_t^k, 时间步k) ≈ ε^k
损失 = MSE(实际噪声, 预测噪声)

模型不直接预测「应该是什么动作」,而是预测「被加进去的污染是什么」。这个间接方式有两个好处:(1) 不需要像 EBM 那样计算归一化常数;(2) 在高噪声阶段,梯度很清晰,容易学;在低噪声阶段,模型学的是「动作的精细调整」。

Receding Horizon Control 为什么关键

Diffusion Policy 不是"一次生成整个 100 步完整轨迹",而是用 Receding Horizon 控制(RHC)的策略。典型配置:

为什么这样设计?一次生成 100 步容易「过度承诺」 —— 前 10 步正确,但后面因为没有新观测而漂移。RHC 让机器人频繁"回头看"、持续重规划。加上推理步数可控(10-16 步 DDIM),整个循环大约 0.1 秒左右。桌上物体滑动、夹爪磨损、微小干扰,都能在下一轮 RHC 里被修正。

关键设计选择

U-Net vs Transformer 架构

Diffusion Policy 论文提供了两个变体,各有取舍。

架构特点强项任务弱项任务选用建议
U-Net CNN 1D 卷积,FiLM 条件注入,oversmoothing 风险 Push-T (95%), Transport-MH (89%), ToolHang-PH (95%) ToolHang (50%), BlockPush p2 (94%) 默认选择,快上手;需要平滑轨迹的任务
Time-Series Transformer 注意力层,灵活但敏感 ToolHang-PH (100%), BlockPush p2 (94%) Push-T (79%), Transport-MH (50%) 高频动作、多模态切换;数据多、调参耐心足

真实机器人实验里,CNN 端到端推理的成功率高达 95%(Push-T),Transformer 则 65%。论文建议新任务先从 CNN 开始,再根据需要升级 Transformer。

推理步数与延迟的权衡

Diffusion Policy 的推理过程就是迭代去噪。理论上步数越多越稳定,但也越慢。

配置用途步数延迟 (RTX 3080)何时选用
DDPM(标准) 仿真 100 ~1s benchmark 评测、离线训练验证
DDIM 实机加速 10-16 ~0.1s 真实机器人、闭环控制、10 Hz 左右
Consistency Policy (衍生) 极速推理 1-3 1-2 ms 弱 GPU、高频控制、VLA 集成

DDIM 是原论文最常用的推理加速方案 —— 基于 Song et al. 的 DDIM 采样器,可以跳过中间的去噪步骤,同时保留多样性。实机配置常见是 100 train steps + 10 inference steps,达到约 0.1 秒实时性。

局限与后续改进

1. 延迟和算力消耗

即使 DDIM 10 步,也需要 0.1 秒以上。对于 200 Hz 高频控制(如手术、灵巧手操作),这还不够。解决方案:

2. 分布偏移和 OOD 泛化

标准 2D Diffusion Policy 通常在同分布场景强,但一旦出现训练未见的物体、场景或视角,性能快速衰退。例如 DP3(原论文作者扩展)的例子里:

根因是 2D RGB 图像的语义太浅。改进方案:

3. 语言推理能力缺失

原始 Diffusion Policy 是纯 visuomotor 策略,不理解「先放再推」这类多步任务规划。它用 action chunk + RHC 的短视野做局部闭环,无法处理需要全局规划的指令。

这也是后续 VLA 的主要贡献方向。π₀ 和 GR00T N1 把 VLM 的语言理解与连续动作生成分离,让模型既能理解「做什么」又能「怎么做」。

后续发展脉络

年份 / 工作核心改进针对问题关键数字
2023-03 Diffusion Policy DDPM/DDIM action chunk + CNN/Transformer 多模态、连续高维动作 15 任务平均提升 46.9 pp;Real Push-T 95% success
2023-10 DP3 稀疏点云观测 + 3D representation 视角/物体泛化 OOD 新物体 Pick 从 3/10 改到 9/10;40 demos 达 85%
2024-05 Consistency Policy DP teacher 蒸馏成一步/三步 student 推理延迟 T4 单步 1ms vs DDPM 110ms;3070 Ti 实机 21ms vs DDIM 192ms
2024-10 iDP3 camera-frame egocentric 3D,去掉标定/分割 移动/人形机器人 Pick 54.0%(vs vanilla DP 22.6%);OOD Pick 9/10;15 Hz 板端
2024-10 π₀ VLM + flow-matching action expert 语言理解、任务规划 最高 50 Hz;10 integration steps;Robomimic + Real
2025-03 GR00T N1 VLA 双系统(VLM + flow-matching DiT) 人形机器人、跨 embodiment、高频 仿真 45.0% vs DP 33.4%;真实 76.8% vs DP 46.4%;120Hz motor control

与其他动作生成路线的对标

思路名推理速度多模态支持学习曲线推荐场景
Flow Matching Policy 高(常 1-10 steps) 中(生态较新) 低延迟、VLA 动作头、替代多步扩散
Consistency Policy 极高(1-3 steps) 中高(可能窄化) 中(需先有 DP) 已有 DP 模型、要上弱 GPU、高频实机
ACT (Action Chunking Transformer) 高(单步) 高(简洁易学) 双臂遥操作、少量示教、精细装配
Diffusion Policy (本身) 中(10-100 steps) 中(概念需理解) 多模态行为、高维连续动作、imitation learning 基线
BC + MLP 极高(1 step) 弱(平均化) 极高 快速原型、少量演示、单模态任务

典型应用示例

场景 A:多模态示教(绕行、双臂协作)

适应性:高 · 这是 Diffusion Policy 的强项。左右绕行这类多路径任务,标准 BC 会失效,DP 因为模型学的是分布而非均值,能稳定支持。

场景 B:高频实时控制(200+ Hz)

适应性:低-中 · 标准 DP 的 10 步 DDIM 还不够快。建议用 Consistency Policy 或流式低层 MPC + high-level DP 混合。单步生成需要 flow 或 consistency 蒸馏。

场景 C:跨场景泛化(新物体、新视角)

适应性:中 · 2D DP 容易过拟合。升级方案:DP3/iDP3(加 3D 观测)或直接用 VLA(加语言先验)。

场景 D:少样本微调

适应性:中 · DP3 报告 10 演示(仿真)、40 演示(实机)可达不错性能。标准 DP 通常需要 100+ 演示。

场景 E:语言条件推理

适应性:低 · 原始 DP 是 visuomotor 不理解语言。需要升级到 VLA(π₀、GR00T 等)把语言理解和连续动作分开建模。

关键数字速查

项目数值来源
模拟任务(12 个 benchmark)+46.9 pp 平均改进Diffusion Policy 论文 Sec. V
Real Push-T (CNN 端到端)95% success, IoU 0.80Diffusion Policy 论文 Table V
Real Mug Flip90% over 20 trialsDiffusion Policy 论文 Sec. VI-B
推理延迟(DDIM 10 步,RTX 3080)~0.1 sDiffusion Policy 论文 Sec. III-D
DP3 OOD Pick(新物体)9/10 vs DP 3/10DP3 论文
iDP3 OOD Pick 成功率54.0% vs DP 22.6%iDP3 论文 Table 1
Consistency Policy(单步,T4)1 ms vs DP 110 msConsistency Policy 论文 Table 1
GR00T N1 vs DP(真实机器人)76.8% vs 46.4%(+30.4 pp)GR00T 论文 Table 1

参考链接

项目页 · Columbia Robotics
原论文、演示视频、代码开源
arXiv 2303.04137 · Diffusion Policy
Chi et al. RSS 2023 · 原始论文
GitHub · diffusion_policy
完整训练推理代码
arXiv 2403.03954 · DP3
点云 3D 观测、泛化改进
arXiv 2410.10803 · iDP3
Egocentric 3D 表示、移动机器人
arXiv 2405.07503 · Consistency Policy
推理加速、一步生成
GitHub · Consistency-Policy
官方实现、MIT 开源
arXiv 2410.24164 · π₀
VLM + flow matching · 语言理解动作生成
GitHub · Isaac-GR00T
NVIDIA 人形 VLA · 双系统架构
对照 · Flow Matching
后继动作生成路线、ODE 采样
对照 · ACT
动作 chunk transformer · 遥操作基线