一句话定位
Diffusion Policy 把机器人视觉运动策略表示成「以观测为条件的 DDPM,对一整段未来动作序列做去噪」——用条件扩散生成 action chunk、配合滚动时域(receding-horizon)控制执行,天然建模多模态动作、稳定易训。它在 15 个任务 4 个基准上平均比 SOTA 提升 46.9%,「动作分块去噪 + 闭环重规划」自此成为模仿学习的主流配方(RSS 2023 最佳论文,后扩展为 IJRR 版)。
背景与定位
论文攻击的是行为克隆(Behavioral Cloning)的核心难点:机器人动作预测同时具备多模态分布(同一状态可左可右)、序列相关性、高精度要求三重特性,使它区别于普通监督回归。此前的路线各有代价——显式策略用高斯混合(BC-RNN 的 MDN)或动作离散化(BeT 的 k-means bin)表达多模态,但对超参敏感、易模式坍塌、精度受限;隐式策略 IBC 用能量模型(EBM)能表达多模态,但要靠负采样估计难解的归一化常数 Z,训练极不稳定。
Diffusion Policy 的立意:借用图像扩散模型的三个特性直接解决这三个难点——(1) 学动作分布的score 函数(Song & Ermon)做 Langevin 采样,可表达任意可归一化分布即多模态;(2) 扩散模型对高维输出空间的可扩展性,让策略一次联合预测一段动作序列而非单步;(3) 学梯度场绕开 Z 的估计,训练稳定。其骨架直接建立在 DDPM(Ho 2020)之上,噪声调度沿用 iDDPM 的平方余弦调度,推理加速用 DDIM。区别于 Diffuser(Janner 2022,对「状态-动作联合轨迹」做扩散用于规划),本文只对动作做扩散、把视觉观测当条件而非联合数据分布,从而无需推断未来状态、可实时。作者 Cheng Chi、Zhenjia Xu、Siyuan Feng、Eric Cousineau、Yilun Du、Benjamin Burchfiel、Russ Tedrake、Shuran Song(Columbia / TRI / MIT / Stanford)。这套配方后来被 rt-1 之后的一大批 VLA / 操作策略继承。
模型架构
总体形式:时刻 t 策略取最近 T_o 步观测 O_t 作条件,用 DDPM 近似条件分布 p(A_t | O_t),输出 T_p 步动作预测,其中 T_a 步真正在机器人上执行后再重规划。去噪迭代式(式 4):A_t^{k-1} = α(A_t^k − γ·ε_θ(O_t, A_t^k, k) + 𝒩(0,σ²I)),ε_θ 为噪声预测网络、等价于近似 action score 的负梯度。
闭环动作序列 + 滚动时域:三个时域参数——观测时域 T_o、动作预测时域 T_p、动作执行时域 T_a。用 receding horizon control 以上一次预测 warm-start 下一次推理,兼顾长时程一致性与响应性。这是把「动作序列预测」和「闭环重规划」结合的关键设计。
两种噪声预测骨干 ε_θ(与视觉编码器解耦):
- CNN 版(DiffusionPolicy-C):采用 Diffuser(Janner 2022b)的 1D 时序 U-Net,改动三点:① 用 FiLM(Feature-wise Linear Modulation)把观测特征 O_t 逐通道、逐卷积层地注入去噪过程(外加去噪步 k);② 只预测动作轨迹而非「观测-动作」拼接轨迹;③ 去掉基于 inpainting 的目标态条件(与滚动时域不兼容,改用 FiLM 做目标条件)。开箱即用、几乎不用调参,但对动作快速剧变(如速度控制)表现差,因时序卷积倾向低频信号(over-smoothing)。
- Time-series Diffusion Transformer(DiffusionPolicy-T):为消除 CNN 的过平滑,引入基于 minGPT 的 transformer 解码器;带噪动作 A_t^k 作输入 token,去噪步 k 的正弦嵌入作首 token,观测 O_t 经共享 MLP 变成观测嵌入序列送入 decoder 各层做交叉注意力,动作 token 间用因果掩码(只 attend 自己与更早动作)。在 state-based 与高频动作任务上多数最优,但对超参更敏感、更难训。建议:新任务先上 CNN 版,性能不够再换 Transformer 版换取精度、付出调参代价。
视觉编码器:标准 ResNet-18(不预训练),端到端与策略联合训练;两点改动——① 全局平均池化换成 spatial softmax 保留空间信息(RoboMimic 做法);② BatchNorm 换 GroupNorm,以兼容 DDPM 常用的 EMA。多相机各用独立编码器,逐时刻独立编码后拼接成 O_t。
其他设计:噪声调度用 iDDPM 的平方余弦调度(Square Cosine)效果最好;旋转表示——位置控制用 6D 旋转表示(Zhou 2019),速度控制用 3D 轴角;动作归一化按每维 min-max 缩放到 [−1,1](因 DDPM 每步 clip 到 [−1,1],零均值单位方差会使部分动作空间不可达)。
逐任务配置数字(附录 Tab.7/8,参数量单位百万 M):
| 骨干 | 典型 sim 配置 | D-Params | V-Params | 特殊项 |
|---|---|---|---|---|
| CNN | Pos 控制, T_o=2, T_a=8, T_p=16, 图 2×84×84→crop 2×76×76 | 256M | 22M(=2×ResNet-18) | Transport 用 4 相机 → 264M/45M;ToolHang 图 2×240×240;BlockPush T_o=3,T_a=1,T_p=12;真机 D-Params 67M |
| Transformer | Pos, T_o=2, T_a=8, T_p=10, 8 层, emb 256, attn-drop 0.3 | 9M | 22M | Transport 45M;Kitchen T_o=4,T_p=16,emb 768,80M;真机 Push-T emb 768,80M |
batch size:state 256、image 64;学习率 1e-4,cosine 调度 + 线性 warmup(CNN 500 步 / Transformer 1000 步);CNN 权重衰减 1e-6,Transformer 1e-3(Push-T 特例 1e-1、attn-drop 0.01)。
数据
纯离线、人类/脚本示范的模仿学习,覆盖 15 个任务 4 个基准(RSS 会议版为 12 个,IJRR 扩展版加 3 个双臂任务共 15 个),含仿真与真机、2DoF~6DoF 动作(Push-T 2 维 → 单臂 6DoF;Transport 双臂动作维度达 14)、单/多任务、刚体与流体:
仿真:
- RoboMimic(Mandlekar 2021):5 任务,各含 proficient-human(PH) 数据集、其中 4 个另有混合 proficient/non-proficient(MH),共 9 变体,state 与 image 双观测。每变体 PH=200,MH 数据集 300(Lift/Can/Square/Transport)。Lift/Can 低精度,Square/ToolHang 高精度;Transport 双臂 14 维动作。
- Push-T(改自 IBC):推 T 形块到固定目标,接触丰富。仿真 200 PH 示范;RGB 与 9 个 2D keypoint 两种观测。GitHub 公开的 replay:25650 帧 / 206 episode。
- Multimodal Block Pushing(改自 BeT):1000 条脚本 oracle 示范,测长时程多模态(任意顺序把两块推入两方格)。
- Franka Kitchen(Relay Policy Learning,Gupta 2019):7 个可交互物体,566 条人类示范(正文;Tab.3 记 PH=656),每条按任意顺序完成 4 个子任务,测短/长时程多模态。
真机:
- Real Push-T(UR5):136 PH 示范,多阶段(推块入位 + 末端归位避遮挡)。
- 6DoF Sauce Pour / Periodic Spread(Franka,流体番茄酱):各采 50 条,90% 训练(附录 C.2.1;Tab.3 记 PH=90);6 维动作、含 idle 与周期动作。
- Mug Flip(6DoF):250 示范,抓/推双模态、贴近运动学极限的 3D 旋转。
- 双臂(IJRR 扩展):Egg Beater 210 示范、Mat Unrolling 162 示范、Shirt Folding 284 示范;观测含双末端位姿 + 双夹爪宽度 + 两场景相机 + 两腕相机。
动作标注即示范本身(teleop 或脚本 oracle),不做常见的 idle 动作过滤(有意保留,因倒酱等任务需要)。图像做随机裁剪增强、推理取中心裁剪。
训练方法
目标函数:DDPM 噪声预测的 MSE(式 5)—— ℒ = MSE(ε^k, ε_θ(O_t, A_t^0 + ε^k, k)):随机抽真动作 A_t^0、随机去噪步 k、加对应方差噪声 ε^k,网络预测所加噪声。该损失等价于最小化数据分布与 DDPM 采样分布 KL 的变分下界。无需负采样、无需估计归一化常数 Z,故比 IBC 的 InfoNCE 训练稳定得多(论文 Fig.6:IBC 训练 loss 平滑下降但评测成功率剧烈震荡、难选 checkpoint)。
噪声调度 / 采样:仿真用 iDDPM 平方余弦调度,训练与推理均 100 步去噪;真机用 DDIM 解耦训练/推理步数,训练 100 步、推理仅 16 步降延迟。视觉编码器从零端到端联合训练(未用预训练)。用 EMA(配 GroupNorm)。
训练时长:state-based 任务 4500 epoch,image-based 3000 epoch;多 seed 复现用 ray 集群(3 seed × 3 GPU + 1 监控 worker)。
控制理论视角(IJRR 新增):在线性系统 + LQR 线性反馈示范的极简情形下,T_p=1 时最优去噪器 ε_θ(s,a,k)=(a+Ks)/σ_k,DDIM 采样收敛到 a=−Ks;T_p>1 时最优去噪器给出 a_{t+t’}=−K(A−BK)^{t’}s_t,说明完美克隆状态相关行为需隐式学到一个任务相关的动力学模型。
Infra(训练 / 推理工程)
- 训练硬件:未完整披露 GPU 型号/卡数与 GPU-hours。开源代码用 ray 集群多 seed 并行(
ray start --num-gpus=3),单实验 3 训练 worker(3 seed)。并行策略/精度未披露。 - 推理:DDIM 把推理去噪步降到 10 步时,在 单张 Nvidia RTX 3080 上达 0.1s 推理延迟;真机实验用 16 步。策略以 10Hz 出末端位姿指令,UR5 上线性插值到 125Hz 执行(限速 0.43 m/s、离桌面 1cm 以上安全区);Franka 站 mid-level 控制器约 1kHz(差分逆运动学 QP 解,含双臂/桌面避碰、关节限位约束),haptic 遥操另有 200Hz 的 Operational Space Control 纯力矩控制器。
- 相机管线:UR5 站 5× RealSense D415(720p@30fps)取其中 2 路、降采样到 320×240@10fps;Franka 站 2× D415(VGA)同样降到 320×240@10fps。工程上用
SharedMemoryRingBuffer(无锁 FILO)跨进程读多相机、zarr+ Jpeg2000 把数据集整体驻留 RAM 消除训练期磁盘 IO。 - 延迟鲁棒性:滚动时域位置控制天然吸收图像处理/推理/网络延迟,消融显示可容忍到 4 步延迟仍保持峰值性能(速度控制受延迟影响更大)。
评测 benchmark
全基准平均成功率提升 46.9%(精确 0.46858,逐任务取 baseline 最优与 DP 最优之差比 baseline,附录 B.2)。评测口径:报 (最优 checkpoint)/(最后 10 个 checkpoint 均值),3 seed × 50 环境初始(因代码 bug robomimic 实为 22 个)、约 1500 次实验;state 训 4500 epoch、image 训 3000 epoch;DP 用位置控制、baseline 用其最优的速度控制;Push-T 用目标区域 IoU 覆盖率而非成功率。
RoboMimic + Push-T(Tab.1 state / Tab.2 vision,格式 max/avg-last-10)——DP 全面领先:
| 任务 | 观测 | LSTM-GMM | IBC | BET | DP-C | DP-T |
|---|---|---|---|---|---|---|
| Transport ph | state | 0.76/0.47 | 0.00 | 0.38/0.14 | 0.94/0.82 | 1.00/0.84 |
| ToolHang ph | state | 0.67/0.31 | 0.00 | 0.58/0.20 | 0.50/0.30 | 1.00/0.87 |
| Push-T | state | 0.67/0.61 | 0.90/0.84 | 0.79/0.70 | 0.95/0.91 | 0.95/0.79 |
| Transport ph | vision | 0.88/0.62 | 0.00 | — | 1.00/0.93 | 0.98/0.81 |
| ToolHang ph | vision | 0.68/0.49 | 0.00 | — | 0.95/0.73 | 0.76/0.47 |
IBC 在多数 robomimic 任务上 0.00(训练不稳定 + 高维动作采样困难)。
多阶段任务(Tab.4 state):
- Block Push p2(推两块):DP-T 0.94 vs BET 0.71(+32%),LSTM-GMM 0.01;但 DP-C 仅 0.11(CNN 骨干在此脚本 Markovian 任务上弱)。
- Kitchen p4(交互≥4 物体):DP-C 0.99 / DP-T 0.96 vs BET 0.44 / LSTM-GMM 0.34(+213%)。
消融:
- 动作时域 T_a:8 步最优(太长反应慢、太短易抖)。
- 观测时域 T_o:state 不敏感、vision 偏好小但 >1,2 为通用折中。
- 位置 vs 速度控制:DP 用位置控制显著优于速度控制(与主流 BC 相反)。
- 视觉编码器(Tab.5,square-ph,CNN-DP,训 500 epoch):ResNet18(in21k) scratch 0.94 / frozen 0.58 / finetune 0.92;ResNet34 0.92/0.40/0.94;ViT-B/16(CLIP) scratch 0.22(从零难训)/ frozen 0.70 / finetune 0.98(仅 50 epoch 即达 98%)。结论:冻结预训练编码器不佳,小学习率 finetune 最好;从零端到端在真机上仍最稳。
- 数据效率:各示范规模下 DP 均优于 LSTM-GMM。
真机:
- Real Push-T(Tab.6):DP 端到端 成功率 95% / IoU 0.80 / 22.9s,逼近人类(100%/0.84/20.3s);R3M 编码器 80%/0.66(动作抖、易卡)、ImageNet 15%/0.24;LSTM-GMM 位置控制 20% / 速度 10%;IBC 0%。还展示了对遮挡(挥手挡镜头 3s)、物块被推移的未示范纠错行为。
- Mug Flip:90% 成功(20 试,250 示范),LSTM-GMM 0%(全失败抓取)。
- Sauce Pour:79% 成功、覆盖 0.74(人 0.79);Spread:100% 成功、覆盖 0.77(人 0.79);LSTM-GMM 两任务均 0%(不能自终止)。
- 双臂:Egg Beater 55%(210 示范)、Mat Unrolling 75%(162 示范)、Shirt Folding 75%(284 示范);并发现无 haptic 反馈时专家 10 次遥操 Egg Beater 0 次成功、有 haptic 则 10/10。
创新点与影响
贡献:把扩散模型引入视觉运动策略学习,并给出让它在真机跑起来的三项关键工程——① 闭环动作序列 + 滚动时域控制(长时程一致 vs 响应性的平衡);② 视觉作条件而非联合分布(观测特征只提取一次、不进入去噪循环,大幅降算力、可实时、可端到端训视觉编码器);③ time-series diffusion transformer(缓解 CNN 过平滑、适配高频/速度控制)。
改变了什么:证明「动作分块去噪 + 闭环重规划」能同时解决多模态、高维、稳定训练三个 BC 老大难,且开箱即用少调参——action chunk denoising 由此成为模仿学习/VLA 动作头的主流范式之一(后续 flow-matching、consistency 加速、以及大量 VLA 的 diffusion action head 皆源于此)。RSS 2023 最佳论文。
作者自陈局限:① 继承 BC 的固有缺陷——示范不足/次优时性能差,未利用负样本(可结合 RL);② 计算/延迟成本高于 LSTM-GMM 等简单方法,动作序列预测只是部分缓解,对超高频控制可能不够,需靠新噪声调度、更好求解器、consistency model 等加速;③ Transformer 版对超参敏感、难训。
原始链接
- arXiv(v5 = IJRR 扩展版):https://arxiv.org/abs/2303.04137 ;PDF:https://arxiv.org/pdf/2303.04137
- 会议版:Chi et al., “Diffusion Policy: Visuomotor Policy Learning via Action Diffusion”, RSS 2023(Best Paper)
- 项目页:https://diffusion-policy.cs.columbia.edu/
- 代码:https://github.com/real-stanford/diffusion_policy (MIT)
- Colab(state / vision)与全部实验日志、config、checkpoint 见项目页
/data/experiments/
一手源存档(sources/)
- diffusion-policy—github-readme — GitHub
real-stanford/diffusion_policyREADME(fetched 2026-07-16) - diffusion-policy—project-page — 项目主页快照(fetched 2026-07-16)
- 论文全文见上述 arXiv 链接(arXiv 原文,不入 git)