哥伦比亚大学突破性的方法- Diffusion Policy:利用Action Diffusion进行视觉运动策略学习

Diffusion Policy:利用Action Diffusion进行视觉运动策略学习

1. 论文概述

这篇论文提出了一种名为Diffusion Policy的新方法,通过将机器人的视觉运动策略表示为条件扩散去噪过程来生成机器人行为。作者在15个不同的机器人操作基准测试任务上对Diffusion Policy进行了评估,发现它始终优于现有的机器人学习方法,平均提升了46.9%。

Diffusion Policy通过学习action分布的score function梯度,在推理过程中通过一系列随机Langevin动力学步骤迭代优化这个梯度场。研究发现,当用于机器人策略时,扩散公式产生了强大的优势,包括优雅地处理多模态action分布、适用于高维action空间以及表现出令人印象深刻的训练稳定性。

为了在物理机器人上充分发挥扩散模型在视觉运动策略学习中的潜力,本文提出了一些关键的技术贡献,包括结合时间衰减控制(receding horizon control)、视觉条件和时间序列扩散transformer。

2. 方法原理

2.1 将DDPM用于视觉运动策略学习

作者通过以下两个主要修改,将去噪扩散概率模型(DDPM)应用于机器人视觉运动策略学习:

  1. 将输出x改为表示机器人动作。
  2. 使去噪过程以输入观测O_t为条件。

在具体实现上,在时间步t,策略将最新的T_o步观测数据O_t作为输入,并输出T_a步动作A_t。作者将T_o定义为观测视界,T_p定义为动作预测视界,T_a定义为动作执行视界。这鼓励了时间上的动作一致性,同时保持响应性。

2.2 视觉编码器

视觉编码器将原始图像序列映射到潜在嵌入O_t中,并与扩散策略端到端训练。不同的相机视图使用独立的编码器,每个时间步的图像独立编码,然后串联形成O_t。

2.3 加速实时控制的推理

为了实现实时闭环控制,需要快速的推理速度。作者采用去噪扩散隐式模型(DDIM)方法,将训练和推理中的去噪迭代次数解耦,从而允许算法在推理时使用更少的迭代来加速。

3. Diffusion Policy的特点

  • 表达多模态action分布:通过学习action score函数的梯度并在该梯度场上执行随机Langevin动力学采样,Diffusion Policy可以表达任意可归一化的分布,包括多模态action分布。

  • 高维输出空间:扩散模型已经在高维输出空间中表现出色。这使得策略能够联合推断未来的一系列动作,而不是单步动作,这对于鼓励时间上的动作一致性和避免近视规划至关重要。

  • 训练稳定:EBM训练通常需要负采样来估计难以处理的归一化常数,而这会导致训练不稳定。Diffusion Policy通过学习能量函数的梯度来绕过这一要求,从而在保持分布表达能力的同时实现稳定训练。

  • 与位置控制的协同作用:Diffusion Policy与位置控制action空间的结合始终优于速度控制。位置控制比速度控制更不容易受到复合误差的影响,因此更适合动作序列预测。

4. 性能评估

作者在15个任务上系统地评估了Diffusion Policy,这些任务来自4个不同的基准测试。评估包括模拟和真实环境、2DoF到6DoF的动作、单任务和多任务基准、完全执行器和欠驱动系统,以及刚性和流体物体。

实证结果表明,在所有测试的基准上,Diffusion Policy的性能始终优于先前的最佳方法,平均成功率提高了46.9%。

此外,作者还进行了详细的分析,仔细研究了所提出算法的特点以及关键设计决策的影响。

论文解读

1. 引言

在机器人领域,策略学习从演示(Policy Learning from Demonstration)可以看作是从观察到动作的监督回归任务。但是,预测机器人动作的独特性质,如多模态分布的存在、序列相关性和高精度要求,使得这个任务与其他监督学习问题相比更具挑战性。

本文提出了一种名为Diffusion Policy的新型机器人视觉运动策略,通过在机器人动作空间上的"条件去噪扩散过程"来生成行为。在这个公式中,策略推断动作得分梯度,以视觉观察为条件,进行K次去噪迭代。这使得机器人策略继承了扩散模型的几个关键性质,从而显著提高了性能。

2. 扩散策略公式

2.1 去噪扩散概率模型(DDPM)

DDPM是一类生成模型,其中输出生成被建模为去噪过程,通常称为随机Langevin动力学。从高斯噪声x_K采样开始,DDPM执行K次去噪迭代,产生一系列具有递减噪声水平的中间动作,直到形成所需的无噪声输出x_0。这个过程可以用以下方程来表示:

def diffusion_step(x, k, theta, alpha, sigma):eps_theta = eps_theta_fn(x, k)  # 噪声预测网络x_prev = alpha * (x - (1 - alpha) / torch.sqrt(1 - alpha_bar[k]) * eps_theta) + torch.sqrt(1 - alpha) * torch.randn_like(x)return x_prev

其中,eps_theta是参数为θ的噪声预测网络,alpha, sigma是噪声调度的函数。

2.2 用于视觉运动策略学习的DDPM

为了将DDPM用于机器人视觉运动策略学习,作者做了两个主要修改:

  1. 将输出x改为表示机器人动作。
  2. 使去噪过程以输入观测O_t为条件。

具体来说,在时间步t,策略将最新的T_o步观测数据O_t作为输入,并预测T_p步动作,其中T_a步动作在机器人上执行,而无需重新规划。这鼓励了时间上的动作一致性,同时保持响应性。修改后的方程如下:

def diffusion_step_conditioned(x, k, theta, alpha, sigma, o):eps_theta = eps_theta_fn(o, x, k)  # 以观测为条件的噪声预测网络x_prev = alpha * (x - (1 - alpha) / torch.sqrt(1 - alpha_bar[k]) * eps_theta) + torch.sqrt(1 - alpha) * torch.randn_like(x)return x_prev

相应地,训练损失也修改为:

def loss_fn(x0, o, k, theta):eps_k = torch.randn_like(x0)xk = torch.sqrt(alpha_bar[k]) * x0 + torch.sqrt(1 - alpha_bar[k]) * eps_keps_theta = eps_theta_fn(o, xk, k)return torch.mean((eps_theta - eps_k)**2)

3. 关键设计决策

3.1 网络架构选择

噪声预测网络eps_theta的选择是第一个设计决策。本文检验了两种常见的网络架构类型:卷积神经网络(CNN)和Transformer,并比较了它们的性能和训练特点。

  • 基于CNN的Diffusion Policy
    采用了Janner等人的1D时间CNN,并做了一些修改,如只建模条件分布p(A_t|O_t),移除了基于inpainting的目标状态条件等。

  • 基于Transformer的Diffusion Policy
    为了减少CNN模型中的过度平滑效应,作者引入了一种新颖的基于Transformer的DDPM。带噪声的动作A_k_t作为Transformer解码器块的输入令牌传入,扩散迭代k的正弦嵌入作为第一个令牌。

3.2 视觉编码器

视觉编码器将原始图像序列映射到潜在嵌入O_t中,并与扩散策略端到端训练。不同的相机视图使用单独的编码器,并独立编码每个时间步的图像,然后串联形成O_t。作者使用标准的ResNet-18作为编码器,并进行了一些修改,如用空间softmax池化替换全局平均池化,用GroupNorm替换BatchNorm等。

3.3 噪声调度

噪声调度由函数σ、α、γ和加性高斯噪声ϵ_k定义,控制着扩散策略捕捉动作信号的高频和低频特性。在实验中,作者发现iDDPM中提出的Square Cosine Schedule效果最好。

3.4 加速实时控制的推理

为了实现实时闭环控制,推理速度非常关键。去噪扩散隐式模型(DDIM)方法将训练和推理中的去噪迭代次数解耦,允许算法在推理时使用更少的迭代来加速。在实际实验中,使用100次训练迭代和10次推理迭代的DDIM可以在Nvidia 3080 GPU上实现0.1秒的推理延迟。

4. Diffusion Policy的有趣特性

  • 表达多模态动作分布
    通过学习动作得分函数的梯度并在该梯度场上执行随机Langevin动力学采样,Diffusion Policy可以自然而精确地表达多模态分布。

  • 与位置控制的协同作用
    Diffusion Policy与位置控制动作空间的结合始终优于速度控制。消融研究表明,选择位置控制作为扩散策略的动作空间显著优于速度控制。

  • 动作视界的权衡
    动作视界大于1有助于策略预测一致的动作并补偿演示中的闲置部分,但视界过长会因反应时间慢而降低性能。实验确认了这种权衡,并发现8步的动作视界对于测试的大多数任务来说是最优的。

  • 对延迟的稳健性
    通过采用衰减视界位置控制来预测未来的一系列动作,Diffusion Policy有助于解决图像处理、策略推理和网络延迟引起的延迟问题。

  • 训练稳定性
    Diffusion Policy的最优超参数在不同任务之间大多一致。相比之下,隐式行为克隆(IBC)容易出现训练不稳定。这一特性得益于Diffusion Policy通过学习能量函数的梯度来绕过估计归一化常数,从而实现稳定训练。

5. 性能评估

作者在4个基准测试的15个任务上系统地评估了Diffusion Policy。这套评估包括模拟和真实环境、2DoF到6DoF动作空间、单任务和多任务基准、完全执行器和欠驱动系统,以及刚性和流体对象。实证结果表明,Diffusion Policy在所有测试的基准上始终优于现有方法,平均成功率提高了46.9%。

此外,作者还进行了详细的分析,仔细研究了所提出算法的特点以及关键设计决策的影响。如多模态行为的案例研究、动作空间选择的消融研究、动作视界权衡的实验确认、网络延迟下的稳健性测试等。

6. 代码示例

下面是一些PyTorch的示例代码片段,帮助读者更好地理解Diffusion Policy的关键组件:

条件去噪扩散步骤

def diffusion_step_conditioned(x, k, theta, alpha, sigma, o):eps_theta = eps_theta_fn(o, x, k)  # 以观测为条件的噪声预测网络x_prev = alpha * (x - (1 - alpha) / torch.sqrt(1 - alpha_bar[k]) * eps_theta) + torch.sqrt(1 - alpha) * torch.randn_like(x)return x_prev

训练损失

def loss_fn(x0, o, k, theta):eps_k = torch.randn_like(x0)xk = torch.sqrt(alpha_bar[k]) * x0 + torch.sqrt(1 - alpha_bar[k]) * eps_keps_theta = eps_theta_fn(o, xk, k)return torch.mean((eps_theta - eps_k)**2)

视觉编码器

class VisualEncoder(nn.Module):def __init__(self):super().__init__()self.resnet = models.resnet18(pretrained=False)self.resnet.fc = nn.Identity()self.resnet.avgpool = nn.Sequential(nn.Conv2d(512, 512, 3, stride=1, padding=1),nn.GroupNorm(32, 512),nn.SiLU(),SpatialSoftmax(),)def forward(self, x):return self.resnet(x)

噪声调度

def cosine_beta_schedule(timesteps, s=0.008):steps = timesteps + 1x = torch.linspace(0, timesteps, steps)alphas_cumprod = torch.cos(((x / timesteps) + s) / (1 + s) * torch.pi * 0.5) ** 2alphas_cumprod = alphas_cumprod / alphas_cumprod[0]betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1])return torch.clip(betas, 0.0001, 0.9999)

7. 总结

本论文工作提出了一种名为Diffusion Policy的新型视觉运动策略学习方法,它利用了扩散模型强大的生成建模能力。通过引入时间衰减控制、视觉条件和时间序列扩散transformer等关键技术贡献,Diffusion Policy在各种复杂的机器人操作任务上实现了最佳性能,展示了其在机器人领域的广阔应用前景。

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

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

相关文章

VR虚拟现实(Virtual Reality)

虚拟现实(Virtual Reality)是一种通过计算机技术和设备模拟现实世界的环境和体验的技术。它创造了一个虚拟的三维环境,用户可以通过穿戴设备和感应器与该环境进行互动和沉浸。 虚拟现实技术包括以下几个关键组成部分: 头戴设备&a…

【漏洞复现】红帆iOffice.net wssRtSyn接口处存在SQL注入

【产品&&漏洞简述】 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综…

Python网络安全项目开发实战,如何防命令注入

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_防命令注入_编程案例解析实例详解课程教程.pdf 在Python网络安全项目开发中,防止命令注入(Command Injection)是一项…

MyBatis 动态 SQL怎么使用?

引言:在现代的软件开发中,数据库操作是任何应用程序的核心部分之一。而在 Java 开发领域,MyBatis 作为一款优秀的持久层框架,以其简洁的配置和强大的灵活性被广泛应用。动态 SQL 允许开发人员根据不同的条件和场景动态地生成和执行…

ChatGPT 提问攻略:从基础到精通,掌握AI对话的艺术

提示工程(Prompt Engineering)的核心目标是提高 AI 输出的质量和准确性,让 AI 的输出结果可控,而不是随机的。 成功使用 ChatGPT 的关键在于提示语的质量:清晰、简洁的提示语有助于保持对话的连贯性,而模糊…

【机器学习300问】127、怎么使用词嵌入?

在探讨如何使用词嵌入之前,我们首先需要理解词嵌入模型的基础。之前的文章已提及,词嵌入技术旨在将文本转换为固定长度的向量,从而使计算机能够解析和理解文本内容。可以跳转下面链接去补充阅读哦! 【机器学习300问】126、词嵌入…

会声会影2024旗舰版汉化最新安装包下载方法步骤

嗨,亲爱的CSDN的朋友们!🎉今天,我要跟大家分享一款让你的视频编辑体验升级的神器——会声会影2024最新版本!✨如果你是一个热衷于创作视频内容的创作者,那么你一定不能错过这个软件。它不仅功能强大&#x…

tqdm软件包讲解

tqdm软件包 tqdm是一个用于在Python中显示进度条的模块,非常适合用于长时间运行的循环和任务,使得用户可以直观地看到任务的进度。以下是对 tqdm 软件包的详细讲解,包括安装、基本使用、进阶用法和常见应用场景。 安装tqdm 安装tqdm可以使…

maven dependencyManagement作用

Maven 的 dependencyManagement 元素是一个非常强大的功能,它允许在一个父 POM(Project Object Model)文件中统一管理项目中所有子模块依赖的版本和范围。使用 dependencyManagement 可以确保项目中的所有模块使用一致的依赖版本,…

Windows桌面运维----第五天

1、华为路由怎们配置IP、划分vlan、互通: 1、用户模式→系统模式; 2、进入相关端口,配置IP地址; 3、开通相应vlan,设置vlanX、IP地址; 4、绑定相关端口,设置端口类型; 5、电脑设置IP&#…

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题,带昼夜切换功能。 基于wordpress,部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面,值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题,所以这款wordpress导航…

ubuntu 22.04安装mongodb7

1、环境更新 sudo apt update sudo apt upgrade 要执行curl命令,需先安装此包 sudo apt-get install curl2、生成MongoDB的gpg秘钥和向APT导入MongoDB7.0版软件包的资源链接 curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyri…

uniapp小程序获取右上角胶囊位置信息

文章目录 导文使用uni.getMenuButtonBoundingClientRect();方法实现完整案例 隐藏默认导航栏&#xff1a;全局隐藏当前页面隐藏 导文 uniapp小程序获取右上角胶囊位置信息 使用uni.getMenuButtonBoundingClientRect();方法实现 <script>const menuButtonInfo uni.getMe…

被神化了的AI

多模态的大模型&#xff0c;已经在图片、文本、音频、视频领域多点开花&#xff0c;“AI取代人类”的声音不绝与耳&#xff0c;似乎AI是万能药&#xff0c;包治百病。所有互联网时代的应用&#xff0c;都可以用AI重做一遍&#xff0c;所有你能用到的难题&#xff0c;你都会想&a…

【python】flask中如何向https服务器传输信息

【背景】 用flask做一个支持流媒体传输的网页,如何将信息post给流媒体服务器呢? 【方法】 简单例子,视图函数这么写: url = "https://yourip/mytext" headers = {Content-Type:application/octet-stream} @app.route(/,methods=["POST"

zdppy_amauth如何测试批量获取用户绑定的所有权限:思路

简单的思路 1、添加用户 2、添加角色 3、绑定用户和角色的关系 4、添加3个权限 5、绑定角色和权限关系&#xff0c;给角色绑定2个权限 6、查询用户绑定的所有权限 7、删除用户 8、删除角色 9、删除权限 10、解绑用户的所有角色 11、解绑角色的所有权限

ffmpeg音视频开发从入门到精通——ffmpeg下载编译与安装

音视频领域学习ffmpeg的重要性 音视频领域中ffmpeg的广泛应用&#xff0c;包括直播、短视频、网络视频、实时互动和视频监控等领域。掌握FM和音视频技术可以获得更好的薪酬。 学习建议音视频学习建议与实战应用 音视频处理机制的学习&#xff0c;需要勤加练习&#xff0c;带…

第6章 工程项目融资 作业

第6章 工程项目融资 作业 一单选题&#xff08;共2题&#xff0c;40分&#xff09; (单选题) 项目资金结构不包括&#xff08; &#xff09;。 A.项目债务资金结构比例 B. 项目建设投资与工程项目总成本费用的比例 C. 项目资本金内部结构比例 D. 项目资本金与债务资金的比例 正…

【C++题解】1741 - 求出1~n中满足条件的数的个数和总和?

问题&#xff1a;1741 - 求出1~n中满足条件的数的个数和总和&#xff1f; 类型&#xff1a;简单循环 题目描述&#xff1a; 请求出 1∼n 之间所有满足 2 的倍数但不是 3 的倍数的数&#xff0c;有多少个&#xff0c;总和是多少&#xff1f; 输入&#xff1a; 读入一个整数 …

构建智慧高速公路:软件管理平台业务架构解析

随着交通网络的不断完善和技术的快速发展&#xff0c;智慧高速公路正成为交通领域的重要发展方向。在智慧高速公路系统中&#xff0c;软件管理平台扮演着关键的角色&#xff0c;它不仅是管理各种设备和系统的核心&#xff0c;还承担着数据监控、故障诊断、维护管理等重要任务。…