跳转至

详读 · Diffusion Policy(用动作扩散做视觉运动策略学习)

卡片版见 卡片-DiffusionPolicy。本页是全文精读:动机 → 方法(逐模块公式直觉) → 实验(全表) → 洞见/局限 → 对我们。 来源:arXiv 2303.04137(v5, 2024-03-14,是 RSS 2023 会议版的期刊扩展版)· 项目页 · 代码 作者:Cheng Chi、Zhenjia Xu(哥伦比亚大学)+ Siyuan Feng、Eric Cousineau、Benjamin Burchfiel、Russ Tedrake(TRI / MIT)+ Yilun Du(MIT)+ Shuran Song(哥大 / 斯坦福)。*为共同一作。

0. 一句话定位

把机器人的视觉运动策略(observation → action)重写成一个条件去噪扩散过程:不直接回归一个动作,而是从高斯噪声出发、迭代 K 步去噪,生成一段未来动作序列。这一改造天然吃下多模态动作分布、扩到高维动作空间、且训练稳定——在 15 个任务 / 4 个基准上平均比此前 SOTA 高 46.9%。它是后续几乎所有扩散策略(卡片-3D-DiffusionPolicy卡片-ConsistencyPolicy卡片-EquivariantDiffusionPolicy卡片-ReactiveDiffusionPolicy)的母本。

1. 问题与动机

  • 从演示学策略,最朴素就是"观测→动作"的监督回归。但机器人动作有三个特殊难点:① 多模态(同一状态有多种合理走法);② 时序相关(动作要连贯);③ 高精度要求。
  • 前人两条路都不够:
  • 显式策略(图1a):直接回归动作。多模态处理弱——用混合高斯(MDN,如 BC-RNN/LSTM-GMM)易模式坍塌、对超参敏感;用离散化分类(如 BET)则 bin 数随动作维度指数增长
  • 隐式策略(图1b):用能量模型 EBM 表示动作分布(IBC),天然多模态,但训练要做负采样估计不可解的归一化常数 Z训练不稳定
  • 本文切入:用扩散模型(图1c)——学习动作分布的score(梯度场),推理时沿梯度场做随机 Langevin 迭代。它同时拿到 EBM 的多模态表达力,又绕开了 Z 的估计,因此既稳又强。

图1 三类策略表示:(a) 显式策略直接回归动作;(b) 隐式策略学能量函数、找最低能量动作;(c) Diffusion Policy 用学到的梯度场把噪声逐步精炼成动作序列

2. 核心公式(直觉版)

2.1 去噪扩散概率模型 DDPM

从高斯噪声 x_K 出发,做 K 次去噪得到 x_{K-1}…x_0,每步:

x_{k-1} = α( x_k − γ·ε_θ(x_k, k) + N(0, σ²I) ) …(1)

  • ε_θ噪声预测网络(要学的参数 θ);α, γ, σ 是随步数 k 变的噪声调度
  • 关键直觉(式2):上式等价于一步带噪的梯度下降 x' = x − γ·∇E(x)——即 ε_θ 在预测能量函数的梯度场 ∇E(x)γ 是学习率,噪声调度 = 学习率调度。α 略小于 1 能提稳定性。

2.2 训练(出奇简单)

随机抽真实样本 x_0、随机选去噪步 k、加对应方差的噪声 ε_k,让网络把这个噪声预测出来

L = MSE( ε_k, ε_θ(x_0 + ε_k, k) ) …(3)

最小化此 MSE 等价于最小化数据分布与生成分布 KL 散度的变分下界(Ho 2020)。没有负采样、没有 Z——这就是它比 IBC 稳的根本原因。

2.3 改造成视觉运动策略

两处改动:① 把输出 x 换成机器人动作;② 让去噪以观测 O_t 为条件。条件式推理与训练:

A_t^{k-1} = α( A_t^k − γ·ε_θ(O_t, A_t^k, k) + N(0, σ²I) ) …(4) L = MSE( ε_k, ε_θ(O_t, A_t^0 + ε_k, k) ) …(5)

  • 关键设计:把观测 O_t条件(建模 p(A_t|O_t))而非联合分布 p(A_t, O_t)。视觉特征每帧只提一次、不参与 K 次去噪循环 → 大幅省算力、能实时,还让视觉编码器可端到端训练。

2.4 闭环动作序列 + receding horizon(图2a)

时刻 t:吃进最近 T_o 步观测 O_t一次预测 T_p 步未来动作,但只执行前 T_a 步就重规划。 - T_o=观测时域,T_p=预测时域,T_a=执行时域。 - 这样既保时序一致/平滑(长时域规划),又保响应性(短时执行后即重规划);下次推理还能用上次预测热启动

图2 Diffusion Policy 总览:(a) 通用形式——吃 T_o 步观测、出 T_p 步动作、执行 T_a 步;(b) CNN 版用 FiLM 把观测特征逐通道调制进每个 1D 卷积层;(c) Transformer 版把观测嵌入经交叉注意力送入解码器,动作 token 用因果掩码只看自己和之前

3. 关键设计决策

3.1 两种噪声预测网络 ε_θ

  • CNN 版:借自 Janner 的 1D 时域卷积,用 FiLM(特征级线性调制)把观测特征 O_t 和去噪步 k 逐通道注入每个卷积层。优点:开箱即用、几乎不用调超参。缺点:动作快速剧烈变化时表现差(如速度控制空间)——因时域卷积天生偏好低频信号、会过度平滑。
  • Transformer 版(时序扩散 Transformer):用 minGPT 解码器,动作 token + 正弦编码的 k token 作输入,观测经共享 MLP 当交叉注意力的条件,因果注意力掩码。优点:减轻过平滑,状态任务下多数最优、尤其任务复杂/动作变化快时。缺点:对超参更敏感、更难训。
  • 作者建议:新任务先上 CNN 版;若因复杂/高频动作表现差,再换 Transformer 版(代价是多调超参)。

3.2 视觉编码器

标准 ResNet-18(不预训练),两处改:① 全局平均池化 → 空间 softmax 池化(保空间信息);② BatchNorm → GroupNorm(与 DDPM 常用的 EMA 配合时才稳)。不同相机各用独立编码器。

3.3 噪声调度 & 加速推理

  • 噪声调度:实测 iDDPM 的 Square Cosine Schedule 在控制任务上最好。
  • 加速:用 DDIM 解耦训练/推理步数——训练 100 步、推理只 10 步,在 Nvidia 3080 上实现 0.1s 推理延迟,满足闭环实时。

4. 有意思的性质(机理)

  • 多模态从哪来:① 每次采样从标准高斯抽不同初值 A_t^K(落入不同收敛盆地);② 迭代中持续加高斯扰动。图3 Push-T 中,DP 学到"从左/右两种推法"且每次 rollout 只承诺一种;LSTM-GMM/IBC 偏向一边,BET 因缺时序一致而在两模式间抖动

图3 多模态行为(Push-T):同一状态末端可向左或向右绕 T 块。Diffusion Policy 同时学到两种模式且单次只走一种;LSTM-GMM、IBC 偏向单边,BET 无法稳定承诺一种模式

  • 与位置控制的协同(反直觉):DP 用位置控制一致优于速度控制,而基线(BC-RNN/BET)反而靠速度控制更好。原因:位置控制下多模态更突出(DP 正好擅长),且位置控制受累积误差影响小、更适合序列预测。

图4 速度 vs 位置控制:从速度切到位置控制时,LSTM-GMM、BET 的成功率下降,而 Diffusion Policy(C/T 两版)反而上升——尤其 Kitchen p4 提升巨大

  • 动作序列预测的好处:① 时序一致——避免逐步独立采样导致的左右模式跳变抖动;② 抗 idle 动作——演示中的停顿(倒液体等)会让单步策略过拟合卡住,序列预测更鲁棒。
  • 动作时域权衡 + 抗延迟(图5):T_a 太短响应快但不一致,太长则反应慢;实测 8 步最优。位置控制 + receding horizon 让它抗延迟到 4 步仍保持峰值性能。

图5 消融:左=动作时域权衡,多数任务在 8 步附近最优(过长性能掉得很快);右=抗延迟,位置控制下延迟到约 4 步仍接近峰值

  • 训练稳定性:IBC 训练 loss 平滑下降,但动作推断精度不升、评测成功率剧烈振荡,难选 checkpoint。DP 通过学 score function 绕开 Z(式8:ε_θ ≈ −∇_a log p(a|o)∇_a log Z = 0),训练稳、最优超参跨任务基本一致。
  • 与控制论的联系(扩展版新增):在线性系统 + 线性反馈 a=−Ks 的简单情形,T_p=1 时最优去噪器恰好收敛到 a=−KsT_p>1 时为完美克隆依赖状态的行为,学习器必须隐式学到任务相关的动力学模型

5. 实验

5.1 设置

  • 15 个任务 / 4 个基准:Robomimic(Lift/Can/Square/Transport/ToolHang,含 PH 熟练人 + MH 混合人演示,共 9 个变体)、Push-T、Block Push(来自 BET)、Franka Kitchen。覆盖仿真+实机、2~6 DoF、单/多任务、刚体/流体。
  • 基线:LSTM-GMM(即 RoboMimic 的 BC-RNN,作者复现得分略高于原文)、IBC、BET。
  • 两版:DiffusionPolicy-C(CNN)、DiffusionPolicy-T(Transformer)。
  • 报告口径:(最大性能) / (最后 10 个 checkpoint 平均),每个 3 个训练种子 × 50 个环境初值。Push-T 用目标覆盖率(IoU)而非成功率。

5.2 仿真 · 状态观测(表1)

任务·变体 LSTM-GMM IBC BET DP-C DP-T
Lift ph/mh 1.00/1.00 0.79/0.15 1.00/1.00 1.00/1.00 1.00/1.00
Can ph/mh 1.00/1.00 0.00/0.01 1.00/1.00 1.00/1.00 1.00/1.00
Square ph/mh 0.95/0.86 0.00/0.00 0.76/0.68 1.00/0.97 1.00/0.95
Transport ph/mh 0.76/0.62 0.00/0.00 0.38/0.21 0.94/0.68 1.00/0.62
ToolHang ph 0.67 0.00 0.58 0.50 1.00
Push-T ph 0.67 0.90 0.79 0.95 0.95

(数值为 max 性能;ph=熟练人演示, mh=混合人演示。)

5.3 仿真 · 视觉观测(表2)

任务·变体 LSTM-GMM IBC DP-C DP-T
Lift ph/mh 1.00/1.00 0.94/0.39 1.00/1.00 1.00/1.00
Can ph/mh 1.00/0.98 0.08/0.00 1.00/1.00 1.00/1.00
Square ph/mh 0.82/0.64 0.03/0.00 0.98/0.98 1.00/0.94
Transport ph/mh 0.88/0.44 0.00/0.00 1.00/0.89 0.98/0.73
ToolHang ph 0.68 0.00 0.95 0.76
Push-T ph 0.69 0.75 0.91 0.78

复杂任务(Transport、ToolHang)提升最明显;IBC 在视觉高维任务几乎全军覆没。

5.4 多阶段任务(表4 · 状态观测)

指标 LSTM-GMM IBC BET DP-C DP-T
BlockPush p1 0.03 0.01 0.96 0.36 0.99
BlockPush p2 0.01 0.00 0.71 0.11 0.94
Kitchen p1 1.00 0.99 0.99 1.00 1.00
Kitchen p2 0.90 0.87 0.93 1.00 0.99
Kitchen p3 0.74 0.61 0.71 1.00 0.99
Kitchen p4 0.34 0.24 0.44 0.99 0.96

长时多模态上优势巨大:BlockPush p2 比次优 +32%;Kitchen p4 比次优 +213%。注意 BlockPush 上 DP-T(0.94) 远好于 DP-C(0.11)——这是 Transformer 版价值最突出的反例任务。

5.5 视觉编码器消融(表5 · robomimic Square ph)

架构(预训练集) 从头训 冻结预训练 微调预训练
ResNet-18 (in21k) 0.94 0.58 0.92
ResNet-34 (in21k) 0.92 0.40 0.94
ViT-B/16 (CLIP) 0.22 0.70 0.98

结论:冻结预训练编码器最差(DP 偏好与主流预训练不同的视觉表征);小学习率微调最好,CLIP-ViT-B/16 仅 50 epoch 就到 0.98;从头训 ViT 因数据少很难(0.22)。各架构差距其实不大。

5.6 实机 · Push-T(表6)

真实 Push-T 比仿真难:多阶段(推 T 块→末端撤到 end-zone)、末步才测 IoU。DP 以 10Hz 出指令、线性插值到 125Hz 执行。

方法 IoU 成功率 时长(s)
人类演示 0.84 1.00 20.3
IBC(最优变体) ≤0.25 0.00
LSTM-GMM(最优变体) ≤0.24 0.20
DP (R3M 预训练) 0.66 0.80 31.7
DP (端到端) 0.80 0.95 22.9

DP 端到端接近人类水平(0.95 succ);R3M 版会抖动、易卡。基线最常见失败在阶段切换处(LSTM 20 次有 8 次卡 T 块旁,IBC 6 次过早离开)。端到端训练视觉编码器是最有效方案抗扰动(图8,文中):遮挡前置相机 3 秒仍在轨;推动阶段移动 T 块会立即从反方向重新推;去 end-zone 途中移动 T 块会立即折返纠正——出现了演示中从未有过的新行为

5.7 实机 · 其他单臂

  • 6DoF 翻杯:DP 90%(20 次),LSTM-GMM 0%(全部抓取失败)。演示高度多模态(抓 vs 推、正手/反手),DP 还能自发多次推/掉落后重抓(未演示过)。
  • 倒酱:DP IoU 0.74 / 成功率 0.79(人类 0.79/1.00);LSTM-GMM 0(20 次有 15 次舀到酱后抬不起勺)。
  • 铺酱(周期动作):DP 覆盖率 0.77 / 成功率 1.00(人类 0.79/1.00);LSTM-GMM 覆盖 0.27 / 成功率 0。两个酱任务都用 Push-T 同一套超参、第一次尝试就成功

5.8 实机 · 双臂(扩展版新增)

扩展观测/动作到双末端位姿 + 双夹爪宽度,双场景相机 + 双腕相机。DP 无需调超参开箱可用

双臂任务 演示数 成功率(20 次)
打蛋器 Egg Beater 210 55%
铺垫子 Mat Unrolling 162 75%
叠衬衫 Shirt Folding 284 75%

打蛋器特别说明力觉反馈对采数的重要性无力反馈时专家 10 次演示 0 次成功(5 次把曲柄拉脱、3 次脱手、2 次触发力矩限);有力反馈则 10/10。叠衬衫长达 9 个离散步,靠中层控制器显式避碰才行。

6. 核心洞见

  • 策略结构本身是瓶颈:作者强调,除了数据质量/数量、机器人能力、预训练,策略表示对模仿学习性能影响极大——把回归/分类/EBM 换成扩散,就在同样数据上大幅涨点。
  • 三大优势同时拿到:多模态表达(来自 score + Langevin 采样)、高维输出(来自扩散的可扩展性 → 做动作序列)、训练稳定(来自绕开 Z)。
  • 系统设计同样关键:receding-horizon 闭环、末端位置控制、视觉只作条件+端到端、DDIM 加速——缺一不可才能上真机实时。

7. 局限 / 存疑(作者诚实点的 + 精读补充)

  • 继承模仿学习的根本缺陷:演示不充分/次优时性能差;本身不利用负样本(未来可接 RL)。
  • 算力/延迟高:比 LSTM-GMM 等慢,序列预测只部分缓解,高频控制任务可能不够快——指向后续 Consistency/一步扩散的方向。
  • 基准评测有 bug:robomimic 任务实际只用了 22 个环境初值(非 50),作者已注明、因所有方法同条件故不改变结论。
  • CNN 版高频动作弱:velocity-control / 周期高频任务要换 Transformer 版且更难调。
  • 双臂任务成功率仅 55~75%:长时操作、布料/工具等仍有明显失败(初始抓取、出域初值、末端停不下来)。

8. 对我们