写在前面

从零走向AGI】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。
项目地址🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git

魔方AI空间
猫先生
从零走向AGI
面试面经

AIGC算法岗/开发岗面试面经交流社群(涵盖AI Agent、AIGC图像创作、AI视频、LLM大模型、AI多模态、数字人、传统深度学习、具身智能等AIGC面试干货资源)欢迎大家加入:https://t.zsxq.com/YtJ09

从“回归一个动作”到“生成一段轨迹”:Diffusion Policy 如何改变机器人模仿学习

导读

传统行为克隆通常把机器人策略写成一个回归器:输入当前观测,直接输出下一步动作。这个形式简单,却把机器人操作中的几个难点压在了一起:同一个场景可能存在多条合理轨迹,动作之间有明显的时间相关性,视觉输入还会让动作空间变得高维。用均方误差拟合“平均动作”,常常得到一条谁也不真正执行的折中路径;用高斯混合或离散聚类表示多峰分布,又会遇到模式数量、采样和训练稳定性问题。

Diffusion Policy 的核心改写是:不再直接回归动作,而是在动作空间中学习一个条件去噪过程。策略从高斯噪声开始,在当前视觉观测条件下反复修正,最终生成一段动作序列。这样,扩散模型原本用于图像生成的分布建模能力,被搬到了机器人控制中。

论文的工程关键有三处:用 receding-horizon control(滚动时域控制)持续重规划;把视觉特征作为条件而不是扩散变量的一部分;用时序 Diffusion Transformer 处理快速变化的动作。论文在 4 个机器人操作基准、15 个任务上报告了平均 46.9% 的成功率提升,并在 Push-T、倒杯、倒酱汁、双臂打蛋器、铺垫和叠衣服等真实任务中验证了方法。

猫先生认为,Diffusion Policy 最重要的贡献不是“把扩散模型用于机器人”这句表面描述,而是把策略学习的对象从一个局部动作点换成了条件动作分布与短期轨迹。这为后来的 Diffusion Policy、VLA 动作头和 Flow Matching 控制路线提供了一个非常清晰的接口。

论文标题:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
论文地址:https://arxiv.org/abs/2303.04137
项目主页:https://diffusion-policy.cs.columbia.edu/
GitHub:https://github.com/real-stanford/diffusion_policy
论文版本:RSS 2023;IJRR 扩展版 arXiv v5(2024)

图 1:显式策略、能量策略与 Diffusion Policy 的动作表示对比
图 1:论文 Figure 1。Diffusion Policy 从高斯噪声出发,沿学习到的梯度场逐步得到动作;它的目标不是选一个固定的平均动作,而是刻画条件动作分布。

原文脉络:论文沿着哪条路线展开?

原文先指出行为克隆在机器人场景中区别于普通监督回归的三种困难:动作分布可能多模态,动作本身具有时间相关性,真实执行又要求高精度和低延迟。接着,论文给出 DDPM 形式的策略定义,再说明如何将扩散过程改造成视觉条件的动作序列生成器。

方法部分集中回答三个设计问题:扩散模型到底生成什么、观测如何进入去噪网络、如何在真实机器人上做到实时控制。随后论文从多模态动作、位置控制、动作序列、训练稳定性和控制理论联系五个角度解释方法为什么有效,最后按仿真、单臂真实任务和双臂真实任务逐层评测。

1. 问题背景:机器人动作为什么不能简单取平均?

设示范数据中的观测为 o t o_t ot、动作为 a t a_t at,最直接的行为克隆是学习 a t = f θ ( o t ) a_t=f_\theta(o_t) at=fθ(ot)。如果同一观测下存在向左绕行和向右绕行两种合理策略,均方误差会把它们压成中间动作;这个中间动作可能既不向左,也不向右,最终让末端执行器撞到物体或停在不可执行的位置。

论文对照了三类已有表示:高斯混合模型把动作分成若干连续模态,离散方法把动作量化后分类,隐式策略则学习能量函数,再通过采样寻找低能量动作。它们都在尝试表达多峰分布,但分别面临模式数预设、量化误差或负样本训练不稳定等问题。

Diffusion Policy 选择另一条路:把动作当成生成模型的样本,从噪声逐步去噪。只要条件分布被学好,多个可行动作模式可以自然地存在于不同的采样轨迹中。

2. Diffusion Policy Formulation:把 DDPM 改造成动作策略

2.1 从噪声到动作:学习条件分布的 score

普通 DDPM 在每个去噪步 k k k 输入带噪样本 x k x^k xk,由噪声预测网络 ϵ θ \epsilon_\theta ϵθ 给出去噪方向。论文把这一过程解释成带噪的梯度下降:

x k − 1 = α ( x k − γ ϵ θ ( x k , k ) + N ( 0 , σ 2 I ) ) . x^{k-1}=\alpha\left(x^k-\gamma\epsilon_\theta(x^k,k)+\mathcal{N}(0,\sigma^2I)\right). xk1=α(xkγϵθ(xk,k)+N(0,σ2I)).

网络学到的并非一个确定动作,而是动作分布的 score,也就是 ∇ a log ⁡ p ( a ∣ o ) \nabla_a \log p(a\mid o) alogp(ao) 的近似。推理时从高斯噪声开始,迭代 K K K 次,得到近似无噪声动作。

训练时从示范动作 A 0 A^0 A0 出发,随机选择噪声等级并加入噪声,使用噪声均方误差训练:

L = MSE ⁡ ( ϵ k , ϵ θ ( A 0 + ϵ k , k ) ) . \mathcal{L}=\operatorname{MSE}\left(\epsilon^k,\epsilon_\theta(A^0+\epsilon^k,k)\right). L=MSE(ϵk,ϵθ(A0+ϵk,k)).

在机器人策略中, x x x 被替换为动作序列 A t A_t At,并加入当前观测序列 O t O_t Ot 作为条件:

A t k − 1 = α ( A t k − γ ϵ θ ( O t , A t k , k ) + N ( 0 , σ 2 I ) ) . A_t^{k-1}=\alpha\left(A_t^k-\gamma\epsilon_\theta(O_t,A_t^k,k)+\mathcal{N}(0,\sigma^2I)\right). Atk1=α(Atkγϵθ(Ot,Atk,k)+N(0,σ2I)).

对应的训练目标为:

L = MSE ⁡ ( ϵ k , ϵ θ ( O t , A t 0 + ϵ k , k ) ) . \mathcal{L}=\operatorname{MSE}\left(\epsilon^k,\epsilon_\theta(O_t,A_t^0+\epsilon^k,k)\right). L=MSE(ϵk,ϵθ(Ot,At0+ϵk,k)).

2.2 一次生成一段动作:滚动时域控制

策略在时刻 t t t 读取最近 T o T_o To 步观测,预测 T p T_p Tp 步未来动作,但只执行其中 T a T_a Ta 步,执行后再次观察并重规划。 T a T_a Ta 就是 action horizon:它不能太短,否则策略每一步都抖动;也不能等于整段预测,否则遇到新观测时反应太慢。

这种设计把扩散模型的轨迹连贯性和闭环控制的纠错能力结合起来。下一次推理还可以用上一段动作序列 warm-start,减少重规划产生的不连续变化。

图 2:Diffusion Policy 的输入、动作序列预测和 CNN/Transformer 两种去噪网络
图 2:论文 Figure 2。左侧是观测序列到动作序列的整体形式;右侧分别展示 FiLM 条件化的时序 CNN 和带 cross-attention 的时序 Transformer。

2.3 视觉只作为条件,不参加扩散

如果同时生成未来观测和动作,推理成本会很高。论文直接学习 p ( A t ∣ O t ) p(A_t\mid O_t) p(AtOt):视觉编码器先把图像编码成观测特征,去噪网络在每个迭代步读取这些特征,但扩散变量始终只是动作序列。这样视觉特征不需要在每一步重新生成,策略也能端到端训练视觉编码器。

默认视觉编码器使用 ResNet-18,并用 spatial softmax 保留空间信息、用 GroupNorm 配合指数滑动平均。论文的消融显示,冻结预训练视觉编码器并不理想;小学习率微调通常比从头训练和完全冻结更好。

2.4 CNN 还是时序 Diffusion Transformer?

CNN 版本用 1D temporal convolution 与 FiLM,把观测和扩散步条件注入每一层,优点是容易训练、超参数敏感度较低。它的问题是卷积的低频偏置:当动作需要快速、尖锐地变化,例如速度控制任务,输出容易被过度平滑。

Transformer 版本将带噪动作作为 token,将扩散步嵌入作为额外 token,并通过 cross-attention 读取观测特征;动作 token 采用因果注意力,只关注自己和之前的动作。它更适合高频动作变化,但训练和调参成本更高。作者的建议是先用 CNN 作为默认方案,遇到高复杂度或高速动作再切换到时序 Transformer。

2.5 加速推理:DDIM 把控制延迟压下来

训练使用 100 个扩散迭代,部署时通过 DDIM 将推理步数降到 10 步。论文在 Nvidia 3080 GPU 上报告约 0.1 秒的推理延迟。对机器人而言,这个数字不是单纯的生成速度,而是决定闭环控制是否能及时看到新观测的系统约束。

3. 论文对策略性质的分析

3.1 多模态动作:每次 rollout 选择一条可行模式

Push-T 场景中,末端执行器可以从 T 形物体左侧或右侧绕行。Diffusion Policy 从随机噪声初始化,不同采样可以落入不同动作模式,并在同一次 rollout 内保持一致。相比之下,LSTM-GMM 和 IBC 容易偏向单侧,BET 则可能在两种模式之间来回切换。

图 3:Push-T 中的多模态动作行为
图 3:论文 Figure 3。扩散策略能够在同一初始状态下学到左右两种绕行方式,并在一条轨迹内坚持其中一种。

3.2 为什么位置控制反而更适合扩散策略?

很多行为克隆方法偏好速度控制,但论文发现 Diffusion Policy 使用位置控制时表现更好。原因有两层:位置动作本身包含更明显的多模态结构,扩散模型能够表达这种结构;同时,位置控制不容易像速度控制那样累积误差,因而更适合生成一段动作并滚动执行。

图 4:速度控制与位置控制的性能对比
图 4:论文 Figure 4。切换到位置控制后,Diffusion Policy 的性能提升,而部分基线方法反而下降。

3.3 动作序列同时解决连贯性与 idle action

逐步预测单个动作时,连续动作可能独立地从不同模式采样,导致轨迹抖动。预测动作序列会让同一段轨迹共享一个去噪过程,天然保留时间一致性。

它也能降低示范中的 idle action 影响。遥操作时,人类经常暂停观察,数据里会出现一段重复位置动作或接近零的速度动作。单步策略容易把暂停学成“卡住”,而动作序列可以把暂停理解为轨迹中的一段平滑片段。

3.4 action horizon 与延迟之间的折中

action horizon 太短,规划不够连贯;太长,遇到突发变化又来不及反应。论文实验发现多数任务约 8 步较合适。滚动时域还带来一个额外好处:如果观测处理、网络通信或推理产生延迟,已经预测出的未来动作可以填补等待时间。实验中位置控制在最多约 4 步延迟下仍能保持较好表现。

图 5:动作 horizon 与延迟鲁棒性消融
图 5:论文 Figure 5。左侧体现轨迹连贯性与响应速度的 horizon 折中,右侧展示位置控制对延迟的鲁棒性。

3.5 训练稳定性:避开能量模型的归一化常数

隐式策略通常写成:

p θ ( a ∣ o ) = e − E θ ( o , a ) Z ( o , θ ) . p_\theta(a\mid o)=\frac{e^{-E_\theta(o,a)}}{Z(o,\theta)}. pθ(ao)=Z(o,θ)eEθ(o,a).

其中 Z Z Z 是难以计算的归一化常数,需要负样本近似。负样本质量不稳定时,能量模型的训练损失可能下降,但动作推理和 rollout 性能仍然大幅振荡,导致 checkpoint 难选。

Diffusion Policy 直接学习 score,不需要显式计算 Z Z Z。因此它保留了隐式分布的表达能力,却用逐噪声等级监督替代了负样本归一化估计。这是论文把“多模态”和“训练稳定”同时拿到的关键原因。

4. 仿真实验:多模态和长程任务都在测试什么?

仿真评测覆盖 RoboMimic、Push-T、Multimodal Block Pushing 和 Franka Kitchen 等 4 个基准,包含 Lift、Can、Square、Transport、ToolHang、Push-T,以及多阶段 Block Pushing 和 Kitchen。实验同时比较 state policy 与 image policy,采用 3 个训练种子和多个环境初始状态,并报告最佳 checkpoint 与最后 10 个 checkpoint 平均值。

论文报告 Diffusion Policy 在全部测试任务和变体上都超过对比方法,平均成功率提升 46.9%。其中,简单抓取类任务的差距并不总是巨大,优势主要出现在 Transport、ToolHang、Block Pushing 和 Kitchen 等需要长程动作、精确接触或多种子目标顺序的任务。

这个结果支持的不是“扩散模型在所有控制问题上都自动更强”,而是更具体的判断:当动作分布多峰、输出维度高、轨迹需要保持一致时,分布式动作生成比单步回归更合适。

5. 真实机器人:从 Push-T 到双臂操作

5.1 单臂 Push-T

真实 Push-T 需要先把 T 形块推入目标区域,再将末端执行器移动到终点区;终点区会结束任务,因此提前进入也算失败。论文使用 UR5 平台,策略以 10 Hz 产生指令,再插值到 125 Hz 执行。最终的端到端 Diffusion Policy 达到 95% 成功率,优于 IBC、LSTM-GMM 及其他 Diffusion Policy 变体;其平均时长约 22.9 秒,接近人类示范的 20.3 秒。

图 6:真实 Push-T 的硬件与任务设置
图 6:论文真实 Push-T 设置。任务要求机器人完成推块和进入终点区两个阶段,视觉遮挡与外部扰动会显著增加难度。

图 7:真实 Push-T 的轨迹和最终状态对比
图 7:论文真实 Push-T 结果。端到端 Diffusion Policy 的最终状态更集中,受到初始卡顿或遮挡后也能恢复。

5.2 6DoF 操作与双臂任务

项目页还展示了随机摆放杯子的翻转、倒酱汁与周期性抹酱等 6DoF 任务。扩展版进一步加入双臂打蛋器、展开垫子和叠衬衫:打蛋器任务使用 210 条示范,在 20 次试验中成功率为 55%;展开垫子使用 162 条示范,成功率为 75%;叠衬衫使用 284 条示范,成功率同样为 75%。这些任务说明动作序列不仅适合规则的刚体移动,也能处理液体、柔性物体和双臂协同,但初始抓取失败、物体位置越界和末端停止条件仍是主要错误来源。

6. 局限与可复现性

Diffusion Policy 的代价也很明确。推理需要多次去噪,实时控制必须使用 DDIM 或其他采样加速;action horizon、噪声调度和视觉编码器仍然需要按任务调节。它学习的是示范分布,无法自动获得示范数据没有覆盖的语义常识;对分布外物体、传感器变化和安全约束的处理也不能仅靠扩散目标解决。

实验中不同方法的最佳动作空间并不完全相同,论文明确报告了位置控制与速度控制的差异,因此跨方法比较时不能只看模型名称。真实任务试验次数也有限,双臂任务的成功率更适合作为可行性证据,而不是工业可靠性指标。

论文和项目页公开了代码、数据、训练日志与 Colab 示例,适合从 Push-T 或 RoboMimic 开始复现。复现时最容易忽略的不是扩散公式,而是观测归一化、动作表示、视觉编码器微调策略、action horizon 和推理步数的联合设置。

总结:Diffusion Policy 留下了什么?

这篇论文的技术路线可以收束为四点:

  1. 用条件 DDPM 表示机器人动作分布,而不是回归一个平均动作。
  2. 直接生成动作序列,让多模态选择和时间一致性在同一个采样过程中发生。
  3. 用视觉条件、滚动时域控制和 DDIM 推理,把生成模型接到真实闭环控制。
  4. 用 score matching 避开能量模型的归一化常数,换取更稳定的训练过程。

猫先生认为,Diffusion Policy 真正改变的是策略学习的抽象单位:机器人不再被要求在每个时刻孤立地回答“下一步往哪走”,而是根据观测生成一小段可执行、可重规划的未来。后续 VLA 和通用机器人策略继续更换视觉底座、动作头与条件形式,但“在连续动作分布中生成轨迹,再用闭环控制不断修正”仍然是这篇论文最值得带走的主线。

参考资料

  1. Diffusion Policy 论文(arXiv v5)
  2. Diffusion Policy 项目主页
  3. Diffusion Policy 官方代码

推荐阅读

► 技术资讯: 魔方 AI 新视界

► 项目应用:开源视界

► 技术专栏: 多模态大模型最新技术解读专栏 | AI 视频最新技术解读专栏 | 大模型基础入门系列专栏 | 视频内容理解技术专栏 | 从零走向 AGI 系列

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐