从噪声到动作:Diffusion Policy 如何改变机器人学习?
引言
在机器人手臂操作方面一直存在诸多挑战。我们熟悉的工业场景中的组装机械臂,往往依赖于写死的程序指令进行控制,具有高度规范化与高精度的特点。而当机械臂需要在复杂、多变的环境中与外界进行交互时,就不得不涉及学习策略、协同性以及时间序列决策等难题。如今,在工业高精度场景下的机械臂已日渐成熟,精度也越来越高,但在更复杂的任务中,依然存在效率低下、动作连贯性不足以及学习策略不佳等问题(论文中对此有具体例子)。
针对这些问题,Diffusion Policy 框架提出了一种全新的解决思路:它将机器人动作生成建模为条件扩散过程,在逐步去噪中得到连贯、合理的动作序列,从而有效改善动作的多模态建模能力、时序一致性和训练稳定性。实验证明,Diffusion Policy 在多项机器人任务中均显著超越了现有方法,展现出更强的学习能力与表现力。
Diffusion 驱动下的机械手 展现了极强的学习能力与连贯性,而在 CoRL 座谈会 上,研究者们对其讨论也非常热烈。读完论文后,我也不得不感叹一句:Diffusion Policy is SOTA!
1. 什么是 Diffusion Policy?
Diffusion Policy 是一种基于 条件扩散模型(Conditional Denoising Diffusion Process)的机器人视觉-运动策略学习方法。
Diffusion Policy其实解决的是一个机器人输出的问题,过往的很多工作大家都注重在解决输入的问题,但机器人最终要执行,我们的工作就在于解决机器人动作和输出的问题。更确切地说,我们的创新聚焦于机器人的动作端而非输入端,在输入端使用的是非常普通的东西。尽管输入端有很多可以提高的地方,但机器人学习方法必须注重输出端,先前的算法在输出端的表现都不够好。因此,无论输入端有多么创新,如果输出端表现不佳,就像"茶壶煮饺子倒不出"一样,将无法发挥潜力。
它的基本思想是:
-
不直接预测动作,而是从随机噪声出发,经过多步去噪,逐渐生成符合任务要求的动作序列;
-
使用视觉观测作为条件,保证生成的动作与环境状态相匹配;
-
生成的是高维动作序列,而非单步动作,能确保动作的时序一致性和连贯性。
它的优势主要体现在:
-
表达多模态分布:可以学到不同的合理操作方式;
-
适配高维动作空间:能生成完整的动作序列,而不是单步预测;
-
训练稳定:避免了能量模型训练中的负采样问题。
2. 与传统方法区别
2.1 解决了机器人Multi-Modal
的问题
简单理解,现实世界中解决某一特定任务的方式是多样的,而不是唯一的。但神经网络预测只能给出单一的方式,无法应对可能有多种方式的任务情况。
什么是机器人Multi-Moda问题,假设我现在在开车,前面有一棵树。比如说,我雇佣了100个司机来解决这个问题。在这种情况下,有可能有50个司机选择往左拐,绕过树的左边,还有50个司机选择从树的右边绕过去。在这种情况下,往左绕和往右绕都是完全合理的。然而,当我们将所有这些解决方案合并为一个时,问题就变成了一个多模态分布,即我看到的相同场景有两种不同的选择。这对传统神经网络的预测来说并不友好,因为它通常使用均方误差(MSE
)损失进行训练,而这无法有效处理Multi-Modal
情况。
为了解决这个问题,引入了概率分布,使得神经网络不再是一个输入一个输出的函数,而是一个输入可以有多个输出的函数。这种方法提供了更大的灵活性,可以表示各种概率分布,解决了原有方法的限制。
2.2 解决了Action Space Scalabiltiy
或者sequential correlation
问题
数据预测有两种方法:一是直接输出一个数值,另一种是将可能的数值分成几个区间,进行离散预测。在预测Multi-Modal Action的时候,人们倾向于采用离散预测,将连续值问题转化为分类问题,但这样做涉及的算力成本很高,尤其在处理高维空间时。此外,针对机器人控制问题,如果采用分类方法,每一步都需要预测下一步要执行的动作,而实际需求是希望一次性预测多步动作,这就涉及到了连续控制中的动作一致性问题。解决这个问题的挑战在于平衡成本和对高维连续控制的需求。
假设我要控制的是一个具有六个自由度的机械手,甚至考虑到夹爪开关,有七个自由度,这时如果我要对其进行分类,就不再是在一个维度上切分成100份,而是每个维度都要切分成1000份。然后,将所有这些切分的部分相乘,才能得到我们整个空间的方法。如果采用这种方法,成本将会非常非常高。随着维度的增加,成本会呈指数级增长
由于它们预测高维空间的成本非常高,因为它们只能预测一步,接下来的步骤是什么。如果再加上更多的步骤,维度就会变得越来越高,它们就无法胜任。然而,实际上我们现在追求的是具有以下特性的方法:不仅可以预测每一步,而且可以在高维连续控制中实现。对于我们来说,我们可以直接预测未来每一步,无论是接下来的20步还是100步,是向左还是向右,而不是在每一步预测之后再执行,再决定下一步该怎么走。
2.3 解决了Training Stability问题
Diffusion Policy和其他使用生成式模型(LSTM-GMM、BET、IBC)的策略比,他的最大特点是训练过程非常稳定。
关于训练稳定性,迟宬的进一步解释是:在Robot Learning领域,机器人动作执行主要有三种方法:包括直接回归、分类预测和生成式模型。第一类回归,即将神经网络视为一个函数,输入是图片,输出是一个动作。这是最常见的方法,绝大多数强化学习都采用这种方式。然而,这种方法存在一些问题,正如之前提到的。第二类分类预测,这种方法通过预测分类来生成动作,前文已经大致描述,不再详细赘述。第三类生成模型,理论上所有的生成模型都可以预测连续的多模态分布,但很多生成模型的问题是训练不稳定。
基于Diffusion Model的第三类方法具有一个重要的优势,即训练非常稳定。这也是为什么Diffusion Model当前在图像生成方面取得了成功,而当时的生成对抗网络(GAN)并没有成功的原因。在当时,GAN在学术界能够产生一些不错的效果,但当你真的将其应用于产品时,你会发现非常困难。要训练一个有效的GAN,你需要疯狂地调整参数,然后才能训练出可用的生成器。
而Diffusion方法的强大之处在于,它的性能不逊色于GAN,但其训练过程非常稳定。基本上,你可以随便调整参数,生成器就能够输出结果,可能效果不是最优的,但基本上都能work。同时,这也解释了为什么像Stable Diffusion这样的方法,以及现在各种图像生成模型能够在如此庞大的数据集上进行训练,这是因为它们的训练非常稳定。如果你在如此大规模的数据上使用其他方法进行训练,可能会在训练一段时间后出现奇怪的问题,模型无法进一步优化。
3. 模型架构梳理
Diffusion Policy 的架构主要由三部分组成:
3.1 视觉输入(Visual Encoder)
使用 ResNet
作为基础结构;
修改:全局平均池化替换为 空间 Softmax 池化;BatchNorm 改为 GroupNorm;
输入:多视角图像和机器人自身状态;
输出:观测特征 OtO_tOt。
3.2 动作扩散(Action Diffusion)
从随机噪声动作序列 AtKA_t^KAtK 出发,逐步去噪得到最终动作 At0A_t^0At0;
每次推理预测 TpT_pTp 步动作,但只执行其中 TaT_aTa 步,然后重新规划;
保证动作的时序一致性,同时具有实时响应能力。
3.3 Transformer 时序结构
CNN 适合低频任务,但容易过度平滑;
Transformer 更适合需要快速动作变化的任务;
输入:带噪动作 embedding + 扩散步数 embedding;
融合:通过跨注意力融合视觉特征 OtO_tOt;
输出:噪声预测 ϵθ\epsilon_\thetaϵθ,逐步修正动作序列。
4. 数学推导
Diffusion Policy 的数学基础来源于 去噪扩散概率模型(DDPM)。它的关键思想是:从高斯噪声出发,通过逐步去噪的方式,生成符合分布的动作序列。
4.1 扩散过程公式
标准的 DDPM 去噪更新公式为:
xk−1=α(xk−γϵθ(xk,k))+N(0,σ2I)x_{k-1} = \alpha \big(x_k - \gamma \, \epsilon_\theta(x_k, k)\big) + \mathcal{N}(0, \sigma^2 I) xk−1=α(xk−γϵθ(xk,k))+N(0,σ2I)
其中:
- xkx_kxk:含噪动作;
- ϵθ\epsilon_\thetaϵθ:神经网络预测的噪声;
- γ\gammaγ:学习率/步长;
- α,σ\alpha, \sigmaα,σ:噪声调度参数。
4.2 梯度解释
该过程等价于在能量函数 E(x)E(x)E(x) 上执行带噪声的梯度下降:
x′=x−γ∇E(x)x' = x - \gamma \nabla E(x) x′=x−γ∇E(x)
因此 ϵθ\epsilon_\thetaϵθ 可以理解为学习了能量函数的梯度场,保证采样的稳定性。
4.3 条件扩散策略
为了让生成动作与机器人观测相一致,Diffusion Policy 在扩散过程中引入观测 OtO_tOt,形成条件扩散:
Atk−1=α(Atk−γϵθ(Ot,Atk,k))+N(0,σ2I)A_{t}^{k-1} = \alpha \big(A_t^k - \gamma \, \epsilon_\theta(O_t, A_t^k, k)\big) + \mathcal{N}(0, \sigma^2 I) Atk−1=α(Atk−γϵθ(Ot,Atk,k))+N(0,σ2I)
其中:
- AtkA_t^kAtk:第 kkk 步含噪动作序列;
- OtO_tOt:当前的视觉与状态观测。
4.4 训练目标
在训练中,Diffusion Policy 会随机选择一个扩散步数 kkk,并为真实动作 At0A_t^0At0 添加噪声 ϵk\epsilon_kϵk,训练网络去预测这个噪声:
L=E[∥ϵk−ϵθ(Ot,At0+ϵk,k)∥2]L = \mathbb{E} \big[ \|\epsilon_k - \epsilon_\theta(O_t, A_t^0 + \epsilon_k, k)\|^2 \big] L=E[∥ϵk−ϵθ(Ot,At0+ϵk,k)∥2]
该损失函数本质上是一个 MSE(均方误差),它保证了模型在所有扩散步数上都能有效学习,从而得到稳定的训练过程。
5. 与其他学习策略的比较
5.1 显式策略 (Explicit Policy)
-
直接从观测到动作的回归或分类。
-
优点:实现简单、推理速度快。
-
缺点:难以处理多模态动作分布,容易平均化导致动作模糊。
5.2 隐式策略 (Implicit Policy, EBM)
-
通过能量函数建模动作分布,选择能量最小的动作。
-
优点:可以表达多模态分布。
-
缺点:训练依赖负采样,往往不稳定;推理时开销较大。
5.3 Diffusion Policy 的创新
-
使用扩散模型迭代生成动作,自然支持多模态;
-
动作序列预测:提升时序一致性,避免抖动和不连贯;
-
视觉条件化:显著加快推理速度,适合实时控制;
-
闭环控制:结合 receding horizon,让机器人既能长远规划又能及时响应。
5.4 不足
-
推理速度较慢,需要多次去噪迭代;
-
依赖高质量演示数据;
-
相比简单的行为克隆方法,计算开销更大。
6. 提到的其他问题
6.1 Diffusion Policy和RL以及Imitational Learning是什么关系?
在Robot Learning领域,机器人操作比较常用的两个路径是强化学习(Reinforcement Learning)和模仿学习(Imitation Learning),Diffusion policy并不与强化学习和模仿学习冲突,它可以应用于两者。该方法是一种策略逻辑,适用于输入图像并输出相应动作的情境。在论文中,我们使用了模仿学习,即由人类遥控机器人执行动作,收集数据,并通过学习将其转化为策略。这种学习过程通过遥控机器人完成一系列动作开始,然后将其迁移到机器人身上。输入数据包括过去几帧的图像,而输出涉及对未来动作的预测。
很多强化学习的人,他们使用强化学习在模拟器中生成大量数据。在这个过程中,为了加速训练,RL policy的输入不是图片,而是一些低维度的底层状态信息。但是由于这些状态信息在现实环境里是无法获得的,因此这个RL policy不能直接用于驱动机器人。这个时候,他们会把RL policy生成的数据用于训练一个图片作为输入的模仿学习策略,这被称为蒸馏。在这种情况下,模仿的对象并非人类,而是一个强化学习“代理”(Agent)。这也是这种方法的应用之一。
6.2 操作(Manipulation)和移动(Locomotion)的训练有什么不同?
RL在移动有更好的效果,Sim2Real Gap的问题相对好解决;但在操作,RL存在最大的问题是Sim2Real Gap没法很好的解决。对于操控而言,需要考虑的因素较多,其中一个关键区别是在机器人操作中除了需要考虑机器人本身的物理特性,同时还要适应复杂多变的环境和被操作物体。操控涉及与各种各样的物体进行交互,每个物体都具有独特的物理特性,如重心、摩擦力和动力学。这些在模拟器中难以准确模拟,即便能够模拟,精度通常较低,速度较慢。相比之下,对于locomotion,外界环境大多可以视为一个刚体,物理特性基本可以忽略。这使得可以花费更多时间来建立机器人本体的精确物理模型,以及设计更复杂的物理引擎。这是为什么RL更适合Locomotion,而对有物理机器人部署Manipulation没有那么好的效果。
6.3 Diffusion Policy目前会存在什么问题,未来有哪些工作?
目前最大的问题不是Policy本身,而是数据。训练数据对于机器人执行特定任务至关重要。尽管我们已经积累了一些关于遥控机器人执行任务的数据,但要将其部署到实际应用中,比如设计一个家用机器人来洗碗,就需要更大规模、更丰富多样的数据集,类似于ChatGPT的规模。确保机器人能够在各种家庭环境中表现出足够的稳健性。目前,最大的挑战在于如何有效地收集大量、多样化的数据。这是下一步研究的关键,通过数据收集和训练,期望能够解决当前面临的问题,同时也认识到可能会有新的挑战随着数据规模的增加而浮现。
7. References:
知乎
宋舒然RSS 2023报告
Princeton Robotics - Russ Tedrake - Dexterous Manipulation with Diffusion Policies
Cheng Chi Github
Diffusion Policy Project Page