01
引言
过去几年,生成式AI在生成逼真图像和艺术作品方面取得了重大进展。这一热潮背后的核心技术是去噪扩散概率模型(DDPM),该模型由Ho等人在2020年基于Sohl-Dickstein等人2015年的研究提出,并由Nichol等人在2021年改进。
DDPM论文:https://arxiv.org/pdf/2006.11239
本文将探讨如何将扩散模型应用于机器人策略学习领域。我们将重点解读《Diffusion Policy: Visuomotor Policy Learning via Action Diffusion》这篇论文,该研究为利用扩散模型学习机器人动作提供了坚实的理论基础和参考实现方案。相关视频演示和代码示例可在其项目网站上查阅。
论文: https://diffusion-policy.cs.columbia.edu/diffusion_policy_ijrr.pdf
官网:https://diffusion-policy.cs.columbia.edu/
代码:https://github.com/columbia-ai-robotics/diffusion_policy
02
我们观察以下示意图:
该示意图清晰展示了扩散模型在图像生成中的应用原理。在训练阶段,系统通过逐步添加噪声对图像进行"破坏",并训练神经网络从带噪图像中预测噪声成分。这一过程使神经网络学习逆向噪声叠加的步骤,逐步还原原始数据分布。在生成阶段,算法从纯随机噪声出发,通过神经网络在每一步预测并消除少量噪声,经过多轮迭代优化,最终生成基本无噪的清晰图像。
若将每一步图像的合理性视为一个得分函数(score function),神经网络的本质是在预测该得分函数的梯度方向。通过逐步减去预测的噪声分量,系统实际上沿着得分梯度方向提升图像的有效性评分,使生成结果逐渐接近真实数据分布。
03
在构建策略模型之前,首先需要明确策略的表示方式。策略的表示可分为显式和隐式两种形式:
- 显式策略:将策略建模为明确的函数形式,其输入为观测状态(observation),直接输出对应的动作(action);
- 隐式策略:不直接定义策略函数,转而通过学习观测与动作之间的能量函数(energy function)来间接表征策略。此时,最优动作可通过最小化能量函数获得。
从图像生成的类比中获取灵感,我们可通过扩散生成的方式获得策略。区别于隐式策略中对能量函数的学习,该方法转而学习能量函数的梯度方向,并通过去噪过程逐步生成目标动作。这一过程类似于扩散模型中通过逐步修正噪声分布逼近真实数据分布的思想。
04
论文提出的扩散策略框架创新性地利用扩散方法生成具有多模态分布特性的动作序列。与在二维图像空间进行扩散不同,该研究将扩散过程建模于机械臂末端执行器的轨迹空间。作者特别设计了网络架构,将状态信息和视觉观测数据整合到噪声预测神经网络中,并针对不同操作任务对比了基于CNN和基于Transformer的两种网络结构。
该研究采用了一种颇具启发性的策略:规划一定时间跨度的轨迹,执行其中部分动作后重新规划,如此循环直至任务完成。这种闭环动作序列生成方式能有效应对外界干扰。论文在仿真环境和真实机器人平台上进行了大量实验,结果表明扩散策略在几乎所有测试场景中都优于其他策略学习方法。
05
在本节中,我们将介绍扩散策略的每个组成部分。
基于DDPM的策略学习方法
首先,让我们回顾一下 DDPM 在图像生成案例中的工作原理。
在训练步骤中,我们会采样一个无噪声的训练图像,采样一个随机的迭代次数,采样噪声,然后让神经网络根据带噪声的输入和迭代次数来预测噪声。因此,损失函数是采样噪声与网络预测输出之间的均方误差。

在生成步骤中,我们从一个随机的高斯噪声图像开始,不断减去由学习率缩放的网络预测的噪声。我们还在每次迭代中添加少量噪声,以进行探索以保持一定的随机性。这个过程可以这样表达:

要将 DDPM 应用于策略学习,我们需要做的改动实际上非常小。首先,在训练步骤中,我们将图像空间的采样替换为动作空间(在本例中是末端执行器轨迹)的采样。我们还让噪声预测神经网络以当前状态的观测作为条件。实际上,这只是神经网络的一个附加输入。修改后的损失函数如下:

类似地,在生成步骤中,我们从一个随机采样的轨迹中去噪末端执行器轨迹,我们的噪声预测神经网络接收当前观测的附加输入。修改后的过程如下:

闭环动作序列执行机制
为了鲁棒地执行生成的策略并应对环境变化,该论文建议使用闭环动作序列。也就是说,我们规划一个轨迹,只执行其中的一个子序列动作,然后重新规划。我们一直重复“规划、执行、重新规划”的循环,直到操作任务完成。下面的 GIF 展示了这种闭环动作序列如何在真实机器人上执行。
噪声预测网络
现在,是时候深入探讨噪声预测网络的设计了。该论文提出了两种架构:基于卷积神经网络(CNN)和基于 Transformer。它们之间的区别在于我们如何处理观测,而观测是由过去几个时间步的状态或图像组成的。
基于 CNN 的噪声预测网络是经过修改的 U-Net 架构。传统的 U-Net 通过卷积对输入进行下采样,然后通过反卷积进行上采样,其中包含一些跳跃连接。在修改后的版本中,我们需要根据观测来条件化输入。条件输入被添加到每个卷积层之间。另一方面,基于 Transformer 的噪声预测是通过计算输入动作嵌入和观测嵌入之间的交叉注意力来实现的。这两种架构在下图中有说明,实际的实现可以在论文网站的 Jupyter Notebook 中找到。
在实践中,基于 CNN 的网络是一个不错的起点,并且表现相当不错。相比之下,基于 Transformer 的网络表现更好,因为它减轻了由于任何 CNN 公式固有的局部性偏差而引起的过度平滑效应。因此,基于 Transformer 的网络可能更适合学习不规则轨迹或带有尖角的轨迹。
观测编码器
最后需要说明的是,为了处理视觉观测数据,系统需要配置专门的视觉编码器对图像信息进行特征提取,再将编码后的表征输入前文所述的噪声预测网络。在实际训练过程中,观测编码器并非独立训练模块,而是与噪声预测网络共同参与端到端的联合训练,通过反向传播实现参数同步优化。这种整合式训练策略有助于提升两个模块的特征对齐程度,从而增强系统对视觉观测信息的理解能力。
完整架构
我们现在已经介绍了扩散策略(diffusion policy)的各个组成部分。
我们接收过去的观测,扩散(diffuse)一个动作序列,执行其中的一部分,然后根据新的观测扩散下一个动作序列。这为我们提供了一种从示范轨迹中学习操纵任务的强大方法。
06
与其他策略学习方法相比,扩散策略(diffusion policy)在学习多模态策略方面表现出色。
在上面的示例中,散策略成功习得双向推动"T"形物体的技能,而其他方法难以兼顾两个方向的推动模式。这种优势源于其独特的去噪机制——通过在轨迹全局分布中随机初始化噪声并沿不同去噪路径进行探索,算法能够有效覆盖多模态策略分布中的各个潜在区域。
此外,扩散策略还具有突出的时序连贯性优势。由于采用整段动作序列生成机制,该策略对示范数据中存在的随机暂停干扰具有较强鲁棒性。相较而言,基于RNN的策略采用逐步生成方式,容易出现策略模式跳变问题(即相邻动作可能来自不同策略模式)。更值得注意的是,这种逐帧采样机制容易对示范轨迹中的暂停动作产生过拟合,导致策略在实际执行中出现非预期的停顿现象。扩散策略的批量生成特性则有效规避了这一问题,确保了动作序列在时间维度上的连贯性和稳定性。
位置 vs. 速度
另一个区别是,扩散策略(diffusion policy)在位置控制方面表现更好,而之前的方法在速度控制方面表现更好。直观的理解是,动作模态在位置输入中更为显著。
07
论文通过大量系统性实验对扩散策略进行了全面评估。研究者建议读者访问项目官网观看完整实验视频资料,直观感受算法在各类复杂场景下的卓越表现。
模拟实验环境
研究团队构建了2D平面环境和3D立体空间两套仿真实验平台,并采用两种示范数据集进行验证:
-
单人专家示范数据集 (ph) -
多人协作示范数据集 (mh)
实验结果显示,在所有测试场景中,扩散策略均展现出与现有最优方法相当或更优的性能表现。特别是在动态环境适应性和长期任务规划方面,该策略显示出显著优势,验证了其在不同示范数据来源下的鲁棒性特征。
现实世界实验
本文进一步通过现实世界实验评估扩散策略。其中一个实验是推动T形物体,此时末端执行器的运动轨迹仅涉及三维坐标。
另一个更复杂的实验是翻转杯子,该任务需要末端执行器具备完整的六维信息(包括位置和姿态)。
最后,本文还设计了酱料倾倒和摊开任务,在此场景中扩散策略能够稳健地处理复杂的酱料操作。
关于视觉编码器的消融研究
该论文还研究了视觉编码器的选择。当使用基于CNN的视觉网络(如Resnet)时,我们可以选择从头开始训练,或者与噪声预测网络一起微调。另一方面,对于基于ViT的视觉网络(如CLIP),我们必须与噪声预测网络一起微调才能获得良好的结果。这表明扩散策略可能更倾向于通过自己的方式来学习视觉表示,因此需要与噪声预测网络一起微调视觉编码器。
08
总的来说,本文提出了将扩散方法应用于策略学习任务的公式化。其架构解释清晰,并在大量实验中进行了全面的性能评估。尽管扩散策略表现更好,但它也需要更高的计算成本。在图像生成领域,有许多加速扩散模型的方法。我们可以从中汲取灵感,以改进扩散策略的推理时间。另一个近期趋势是将扩散策略作为生成最终动作输出的组成部分,同时利用大型基础模型来解释视觉和语言指令,并将其转化为可执行的步骤。
点击上方小卡片关注我
添加个人微信,进专属粉丝群!

