Diffusion Policy:基于扩散模型的机器人动作生成策略

项目地址:

Diffusion Policy (columbia.edu)

一、摘要

本文介绍了 "扩散策略",这是一种生成机器人行为的新方法,它将机器人的视觉运动策略(visuomotor policy)表示为条件去噪扩散过程(conditional denoising diffusion process)。在 4 个不同的机器人操纵基准中的 15 个不同任务中对 Diffusion Policy 进行了基准测试,发现它始终优于现有的最先进的机器人学习方法,平均提高了 46.9%。Diffusion Policy 可以学习动作分布得分函数的梯度(gradient of the action-distribution score),并在推理过程中通过一系列随机朗之文动力学(stochastic Langevin dynamics)步骤对该梯度场进行迭代优化。我们发现,扩散公式在用于机器人策略时具有强大的优势,包括可以优雅地处理多模态动作分布、适用于高维动作空间,以及表现出令人印象深刻的训练稳定性。为了充分释放扩散模型在物理机器人视觉运动策略学习方面的潜力,本文提出了一系列关键技术贡献,包括递减视界控制receding horizon control(MPC控制)、视觉调节(visual conditioning)和时间序列扩散(time-series diffusion)transformer。我们希望这项工作将有助于推动新一代策略学习技术的发展,从而充分利用扩散模型强大的生成建模能力。

图 1. a) 具有不同行动表示类型的显式策略。 b) 隐式策略学习以行动和观测为条件的能量函数,并优化使能量最小化的行动。 c) 扩散策略通过学习的梯度场将噪声细化为行动。这种方法能提供稳定的训练,使学习到的策略能准确模拟多模态动作分布,并适应高维动作序列。

二、介绍

从演示中学习策略,其最简单的形式可以表述为学习将观察结果映射到行动的监督回归任务。然而,在实践中,预测机器人动作的独特性--如存在多模态分布、连续相关性和高精度要求--使得这项任务与其他监督学习问题相比具有独特性和挑战性。之前的研究试图通过探索不同的动作表示法(图 1 a)来应对这一挑战--使用高斯混合、量化动作的分类表示法,或者将策略表示法(图 1 b)从显式转换为隐式,以更好地捕捉多模态分布。在这项工作中,我们试图通过引入一种新形式的机器人视觉运动策略来应对这一挑战,即通过 "机器人动作空间上的条件去噪扩散过程"(Diffusion Policy)来生成行为。在这种方法中,策略不是直接输出动作,而是根据视觉观察结果,在 K 次去噪迭代中推导出动作分数梯度(图 1 c)。这种表述方式让机器人策略继承了扩散模型的几个关键特性,大大提高了性能。

- 多模态动作分布。通过学习动作得分函数的梯度,并在此梯度场上执行随机朗文动力学采样,扩散策略可以表达任意可归一化分布,其中包括多模态动作分布,这是策略学习面临的一个著名挑战。

- 高维输出空间。正如其令人印象深刻的图像生成结果所证明的那样,扩散模型在高维输出空间中表现出卓越的可扩展性。这一特性允许策略联合推断一系列未来行动,而不是单步行动,这对于鼓励时间行动一致性和避免近视规划至关重要。

- 稳定的训练。训练基于能量的策略通常需要负采样来估计一个难以处理的归一化常数,而这已知会导致训练的不稳定性。扩散策略通过学习能量函数的梯度绕过了这一要求,从而在保持分布表达性的同时实现了稳定的训练。

我们的主要贡献是将上述优势引入机器人领域,并在复杂的真实世界机器人操纵任务中展示其有效性。为了成功地将扩散模型用于视觉运动策略学习,我们提出了以下技术贡献,以提高扩散策略的性能,释放其在物理机器人上的全部潜力:

- 闭环动作序列(Closed-loop action sequences)。我们将该策略预测高维动作序列的能力与MPC控制相结合,以实现稳健的执行。这种设计允许策略以闭环方式不断重新规划其行动,同时保持时间行动的一致性,在长视距规划和响应速度之间取得平衡。

- 视觉调节(Visual conditioning)。我们引入了一种视觉条件扩散策略,在这种策略中,视觉观察结果被视为条件,而不是联合数据分布的一部分。在这种方法中,无论去噪迭代多少次,该策略都能提取一次视觉表征,从而大大减少了计算量,实现了实时行动推理。

- 时间序列扩散变换器(Time-series diffusion transformer)。我们提出了一种新的基于transformer的扩散网络,它能最大限度地减少典型的基于 CNN 模型的过度平滑效应,并在需要高频率动作变化和速度控制的任务中实现最先进的性能。

三、扩散策略

我们将视觉运动机器人策略制定为去噪扩散概率模型(DDPMs)。最重要的是,扩散策略能够表达复杂的多模态动作分布,并具有稳定的训练行为--几乎不需要针对特定任务进行超参数调整。下文将更详细地介绍 DDPMs,并解释如何将其用于表示视觉运动策略。

3.1 去噪扩散概率模型

DDPM 是一类生成模型,其输出生成被模拟为一个去噪过程,通常称为随机朗文动力学(Stochastic Langevin Dynamics)。

从高斯噪声采样的 xK 开始,DDPM 执行 K 次迭代去噪,产生一系列噪声水平递减的中间动作 xk、xk-1...x0,直到形成所需的无噪声输出 x0。该过程遵循公式

其中,εθ 是噪声预测网络,将通过学习进行优化,N(0, σ2)是每次迭代时添加的高斯噪声。上述公式 1 也可以解释为一个单一的噪声梯度下降步骤:

其中噪声预测网络 εθ (x, k) 有效地预测了梯度场 ∇E(x),γ 是学习率。作为迭代步数 k 的函数,α、γ、σ 的选择也称为噪声调度(noise schedule),可以解释为梯度赋值过程中的学习率调度。事实证明,α 略小于 1 可以提高稳定性

3.2 DDPM训练

训练过程的第一步是从数据集中随机抽取未经修改的样本 x0。对于每个样本,我们随机选择一个去噪迭代 k,然后为迭代 k 采样一个具有适当方差的随机噪声 εk。噪声预测网络需要从添加了噪声的数据样本中预测噪声。

使用均方误差(MSE, Mean Squared Error)作为损失函数,来衡量网络的预测值 𝜖𝜃(𝑥0+𝜖𝑘,𝑘) 和实际噪声 𝜖𝑘 之间的差异。

图 2:扩散策略概述 a) 一般表述。在时间步长 t,该策略将最新 To 步的观测数据 Ot 作为输入,并输出 Ta 步的行动 At。 b) 在基于 CNN 的扩散策略中,Perez 等人(2018 年)将观测特征 Ot 的 FiLM(Feature-wise Linear Modulation)调理应用于每个卷积层,按通道进行调理。c) 在基于transformer的 Vaswani 等人(2017)扩散策略中,观测特征 Ot 的嵌入被传递到每个变换器解码块的多头交叉注意层。利用图示的注意力掩码,每个动作嵌入只关注自身和之前的动作嵌入(因果注意力)。

3.3 视觉运动策略学习中的扩散

DDPM 通常用于生成图像(x 是一幅图像),而我们则使用 DDPM 来学习机器人视觉运动策略。这需要对公式进行两大修改: 1. 将输出 x 改为代表机器人动作。2. 使去噪过程以输入观测 Ot 为条件。以下段落将逐一讨论这些修改,图 2 显示了相关概述。

闭环行动序列预测:

有效的行动表述应鼓励长视距规划的时间一致性和平稳性,同时允许对意外观察做出迅速反应。为了实现这一目标,我们在重新规划之前,会在固定时间内使用扩散模型生成的行动序列预测。具体来说,在时间步长 t 处,策略将最新的 To 步观测数据 Ot 作为输入,并预测出 Tp 步行动,其中 Ta 步行动将在机器人身上执行,而无需重新规划。在这里,我们将 To 定义为观察期,Tp 定义为行动预测期,Ta 定义为行动执行期。这样既能保证行动的时间一致性,又能保持反应灵敏。我们还使用receding horizon control通过使用之前的行动序列预测来warm-starting下一个推理设置,从而进一步提高行动的平滑性。

视觉观测条件:

我们使用 DDPM 来近似条件分布 p(At |Ot ) 而不是 联合分布 p(At , Ot ) 。这种表述方式使模型能够根据观察结果预测行动,而无需付出推断未来状态的代价,从而加快了扩散过程,提高了生成行动的准确性。为了捕捉条件分布 p(At |Ot ),我们将公式 1 修改为

将公式 3 中的训练损失修改为:

从去噪过程的输出中排除观测特征 Ot 能显著提高推理速度,更好地适应实时控制。这也有助于使视觉编码器的端到端训练变得可行。

四、关键设计

在本节中,我们将介绍 "扩散策略 "的关键设计决策以及神经网络架构对 εθ 的具体实现。

4.1 网络架构选择

第一个设计决策是为εθ 选择神经网络架构。在这项工作中,我们研究了两种常见的网络架构类型:CNNs和Transformers,并比较了它们的性能和训练特性。

在实践中,我们发现基于 CNN 的骨干网络在大多数任务中都能很好地运行,无需进行过多的超参数调整。然而,当所需的动作序列随时间发生快速而剧烈的变化时(如速度指令动作空间),它的表现就会很差,这可能是由于时间卷积偏好低频信号的归纳偏差 。

在我们基于状态的实验中,大多数表现最佳的策略都是通过transformer主干实现的,尤其是在任务复杂度和行动变化率较高的情况下。然而,我们发现transformer对超参数更为敏感。未来有可能通过改进transformer训练技术或扩大数据规模来解决。

一般来说,我们建议从基于 CNN 的扩散策略实施开始,作为新任务的首次尝试。如果由于任务复杂或动作变化率高而导致性能低下,则可以使用时间序列扩散变换器(Time-series diffusion transformer)来提高性能,但需要付出额外的调整代价。

4.2 视觉编码器

视觉编码器将原始图像序列映射为潜在嵌入 Ot,并使用扩散策略进行端到端训练。不同的摄像机视角使用不同的编码器,每个时间步中的图像独立编码,然后串联形成 Ot。我们使用标准 ResNet-18(无预训练)作为编码器,并做了以下修改: 1) 用spatial softmax pooling取代全局平均池化(global average pooling),以保持空间信息。2) 用 GroupNorm 取代 BatchNorm ,以获得稳定的训练。当归一化层与指数移动平均(Exponential Moving Average)结合使用时,这一点非常重要 (常用于 DDPMs)。

4.3 Noise Schedule

噪声表由 σ、α、γ 和加性高斯噪声 εk 定义,是 k 的函数,Ho 等人(2020 年)、Nichol 和 Dhariwal(2021 年)对噪声表进行了积极研究。基本噪声表控制着扩散策略捕捉动作信号高频和低频特征的程度。在我们的控制任务中,我们根据经验发现,iDDPM中提出的平方余弦时间表(Square Cosine Schedule)最适合我们的任务。

4.4 加速推理

我们使用扩散过程作为机器人的策略;因此,对于闭环实时控制来说,拥有快速的推理速度至关重要。Song 等人(2021 年)提出的去噪扩散隐含模型(DDIM)方法将训练和推理中的去噪迭代次数分离开来,从而允许算法使用较少的推理迭代次数来加快推理过程。在我们的实际实验中,使用 100 次训练迭代和 10 次推理迭代的 DDIM,可以在 Nvidia 3080 GPU 上实现 0.1 秒的推理延迟。

五、局限性与未来工作

尽管我们在模拟和真实世界系统中都证明了扩散策略的有效性,但仍存在一些局限性,未来的工作可以加以改进。首先,我们的实现继承了行为克隆的局限性,例如在演示数据不足的情况下,我们的实现效果并不理想。扩散策略可应用于其他范式,如强化学习 Wang 等人(2023 年);Hansen-Estruch 等人(2023 年),以利用次优数据和负面数据。其次,与 LSTM-GMM 等简单方法相比,扩散策略具有更高的计算成本和推理延迟。我们的动作序列预测方法部分缓解了这一问题,但对于需要高速率控制的任务来说可能还不够。未来的工作可以利用扩散模型加速方法的最新进展来减少所需的推理步骤,如新的噪声调度、推理求解器和一致性模型。

六、结论

在这项工作中,我们评估了基于扩散的机器人行为策略的可行性。通过对仿真和真实世界中的 15 项任务进行综合评估,我们证明了基于扩散的视觉运动策略能够持续、明确地优于现有方法,而且稳定、易于训练。我们的研究结果还强调了关键的设计因素,包括receding-horizon action prediction、末端执行器位置控制和高效视觉调节,这些因素对于释放基于扩散的策略的全部潜力至关重要。影响行为克隆策略最终质量的因素有很多,包括演示的质量和数量、机器人的物理能力、策略结构以及所使用的预训练机制,但我们的实验结果强烈表明,策略结构是行为克隆过程中的一个重要性能瓶颈。我们希望这项工作能推动该领域进一步探索基于扩散的策略,并强调在行为克隆过程中,除了考虑用于策略训练的数据外,还要考虑所有方面的因素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加、修改和删除列表元素

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 添加、修改和删除列表元素也称为更新列表。在实际开发时,经常需要对列表进行更新。下面我们介绍如何实现列表元素的添加、修改和删除。 …

如何使用Matlab进行三角剖分(自定义函数实现delaunayTriangulation 使用Bowyer-Watson 算法)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Delaunay三角形 二、使用步骤 1.Bowyer-Watson算法 2.算法步骤 三、动画演示 四、核心代码 五、对比matlab自带函数和我们的算法: 总结 前…

谷歌开源项目BERT源码解读与应用实例

数据及代码见文末 基于BERT的中文情感分析实战:基于BERT的中文情感分析实战-CSDN博客 基于BERT的中文命名实体识别识别实战:基于BERT的中文命名实体识别识别实战-CSDN博客 1.项目配置文件 GLUE/BERT_BASE_DIR是项目的预训练权重,预训练权重主要包含3个部分:参数配置文件…

打气球小游戏

1.气球往上飘 我们声明两个符号常量来作为窗体的长和宽,接着就是常规操作 #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600#include<easyx.h> #include<stdio.h> int main() {initgraph(WINDOW_WIDTH, WINDOW_HEIGHT);setbkcolor(WHITE);cleardevice();get…

python+selenium - UI自动框架之封装浏览器引擎driver方法

在做兼容性测试的适合&#xff0c;可以运行指定的浏览器&#xff08;IE,Chrome,Edge&#xff09; 目录文件&#xff1a; from selenium import webdriver from urllib3.exceptions import ProtocolError from common.log import *def getDriver():# if browserType is None:br…

模拟面试题

1.装箱和拆箱是指什么&#xff1f; 装箱——把栈中内容迁移到堆中去&#xff08;值转引用&#xff09; 拆箱——把堆中内容迁移到栈中去&#xff08;引用转值&#xff09; 2.值和引用类型在变量赋值时的区别是什么&#xff1f; 值类型&#xff1a;赋值时复制数据本身&a…

Gitee在已有项目基础上创建仓库中遇到的问题和解决

问题一&#xff1a;fatal: remote origin already exists 解释&#xff1a;当前仓库添加了一个名为"origin"的远程仓库配置&#xff0c;此时输入 git remote add origin https://xxx就会提示上面的内容。 解决方案1:移除旧的origin git remote remove origin 解决方案…

C++——mapset红黑树

目录 一补充知识 1关联式容器 2键值对 二set 1set的介绍 2set的使用 三map 1map的说明 2map的使用 四容器在oj中的使用 五AVL树 1概念 2插入 3AVL的旋转 3.1右单旋 3.2左单旋 3.3左右双旋 3.4右左双旋 4判断AVL树是否平衡 完整源代码 六红黑树 1概念 2性…

紫光展锐突破创新终端品类,搭载展锐芯的全球首款二合一5G云电脑正式发布

近日&#xff0c;搭载紫光展锐5G芯片T760的中兴云电脑逍遥系列正式发布&#xff0c;亮点&#xff1a; 全球首款二合一5G云电脑&#xff0c;支持本地/云端双模式&#xff0c;一键切换&#xff0c;用户可同时享有Android平板和Windows云电脑两种形态&#xff1b;支持5G蜂窝网络&…

C++相关概念和易错语法(13)(string的模拟实现)

string由于存在字符串和单字符的概念&#xff0c;使得它的一些接口&#xff0c;实现要比vector多一些。本质上来看string的实现是在顺序表的基础上加入串相关的操作。下面我会分享如何模拟实现string&#xff0c;这可以进一步提高我们对string的熟练程度。 1.构造函数、拷贝构…

附代码:策略常用-正余弦优化算法

正余弦优化算法作为群智能优化算法的一种, 正弦余弦算法 (sine cosine algorithm, SCA) 是 2016 年由 Mirjalili 提出的一种新型仿自然优化算法, 通过创建多个随机候选解, 利用正余弦函数的数学性质来平衡算法在搜系过程中的全局探索和局部开发能力。该算法具有结构简单、参数少…

docker三种自定义网络(虚拟网络) overlay实现原理

docker提供了三种自定义网络驱动&#xff1a;bridge、overlay、macvlan。 bridge驱动类似默认的bridge网络模式。 overlay和macvlan是用于创建跨主机网络。 支持自定义网段、网关&#xff0c;docker network create --subnet 172.77.0.0/24 --gateway 172.77.0.1 my_n…

PPT大珩助手新功能-生成迷宫

大珩助手是一款功能丰富的办公软件插件&#xff0c;它主要分为两个版本&#xff1a;PPT大珩助手和Word大珩助手。这两个版本都旨在提高用户在处理演示文稿和文档时的效率。 PPT大珩助手 这是一款专门为Microsoft PowerPoint设计的插件。它提供了多种功能&#xff0c;例如素材…

盲人社区生活支持体系:织就一张温暖的网

在当今社会&#xff0c;构建一个全面、包容的盲人社区生活支持体系成为了推动社会进步、保障残障人士权益的重要议题。随着科技的不断革新&#xff0c;一款名为“蝙蝠避障”的辅助软件走进了盲人的日常生活&#xff0c;它如同一位无形的向导&#xff0c;通过实时避障与拍照识别…

element DatePicker 日期选择器设置禁用未来日期,时间范围为60天

需要用到 DatePicker 里面的 picker-options 方法 disabledDate onPick方法 <el-date-pickerv-model"form.xxxx"type"daterange"value-format"yyyy-MM-dd":clearable"false":picker-options"pickerOptions"start-placeho…

运行Android项目时,提示错误: 程序包javax.annotation.processing不存在

今天在运行项目时提示错误: 错误: 程序包javax.annotation.processing不存在 import javax.annotation.processing.Generated; 最后是修改了Android Studio的JDK的路径修改为你安装的JDK路径&#xff0c;完成的修复&#xff1a;

5.23 Linux中超时检测方式+模拟面试

1.IO多路复用的原理&#xff1f; IO多路复用使得一个或少量线程资源处理多个连接的IO事件的技术。对于要处理的多个阻塞的IO操作&#xff0c;建立集合并存储它们的文件描述符&#xff0c;利用单个阻塞函数去监控集合中文件描述符事件到达的情况&#xff0c;&#xff08;如果到…

cPanel中如何移除之前添加的域名

我这边想要移除我之前绑定到主机的域名&#xff0c;但是不知道如何在主机上面进行移除&#xff0c;由于我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板&#xff0c;但是不知道如何在cPanel上操作移除域名&#xff0c;因为也是对于Hostease主机产品不是很了…

Linux磁盘高级操作

RAID RAID存储系统是一种数据存储虚拟化技术&#xff0c;它将多个物理磁盘驱动器组合成一个或多个逻辑单元&#xff0c;以提供数据冗余和/或提高性能。 1. RAID 0 无奇偶校验与冗余&#xff08;磁盘容错&#xff09;的条带存储&#xff08;带区卷/条带卷&#xff09; 由两块…

基于windows通过kind部署轻量级便携式k8s集群

感谢老师的视频教程&#xff1a; 基于windows通过kind部署轻量级便携式k8s集群 wsl windows下的linux wsl --set-default-version 2 wsl --help wsl --list --online wsl --install -d Ubuntu wsl -l -v &#xff08;看看版本是不是2&#xff0c;否则docker那边识别不到&…