干货| ICML2023:作为自适应自进化规划器的扩散模型

news2024/9/25 9:37:46

点击蓝字

c43043159f76f79a8108ba02419d2489.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

作者介绍

e82703407f358e649469d06c41a83822.png

梁志烜

香港大学计算机系直博一年级学生,导师为罗平教授,研究兴趣是生成式机器学习,Embodied AI和Data-centric learning。

报告题目

作为自适应自进化规划器的扩散模型

内容简介

扩散模型已经在许多任务中展示了其作为生成模型的强大能力,进而具有作为离线强化学习范式的巨大潜力。然而,扩散模型的质量受到训练数据多样性不足的限制。这制约了扩散模型在规划任务上的性能,同时阻碍了其对新任务的泛化性。本文首次提出AdaptDiffuser,一种基于扩散模型的自进化规划方法,它可以自我进化以提升扩散模型的性能,从而使之成为更好的规划器,不仅适用于已见过的任务,而且还可以迁移到未见的任务。我们的方法AdaptDiffuser首先使用奖励(reward)的梯度作为指引,为目标条件任务生成丰富的综合专家数据。然后,它通过判别器选择高质量数据来微调扩散模型,从而提高扩散模型对未见过的任务的泛化能力。我们在KUKA工业机械臂和Maze2D两个基准环境中和两个精心设计的未见过的任务上进行了实证实验,证明了AdaptDiffuser的有效性。例如,在Maze2D上AdaptDiffuser比之前的Diffuser [1]性能高出20.8%,在MuJoCo上比之前的Diffuser性能高出7.5%,而且AdaptDiffuser能够更好地适应新任务,在KUKA拾取任务中,在没有额外专家数据的情况下AdaptDiffuser的性能相较于Diffuser提高了27.9%。

代码链接:https://adaptdiffuser.github.io/

论文链接:https://arxiv.org/pdf/2302.01877.pdf

01

Background

自DDPM在2021年底被提出用于建模图像生成过程之后,扩散模型一直是最强有力的生成模型,包括Midjourney在内的扩散模型表现出十分强大的性能。深度生成模型的难点在于如何去应对高维数据的联合概率分布,从而进行表征学习和判断。在扩散模型被提出之前,VAE、规整流、对抗生成网络等多项工作都对生成模型进行了探索。

VAE通过学习一个编码器和解码器试图将实际的图像数据建模到潜变量的空间中,然后我们通过学习和采样潜变量恢复出原始图像。

6cd0b2de8918ddd1f683e3f1fede2631.png

生成对抗网络(GAN)的主要思想是:通过生成器(generator)与判别器(discriminator)的不断对抗进行训练。最终使得判别器难以分辨生成器生成的数据(图片,音频等)和真实的数据。它通过对抗式训练的方法来提升生成模型的性能,但是存在训练过程不稳定、模式坍塌等问题。

941881d6c93f6129f74b174d6f71ab77.png

规整流(Normalizing Flow)则是通过学习一个可逆的函数将单峰分布逐渐拟合到原始图像的多峰分布,训练的过程是不断拟合以达到正常图像特征出现的最大概率,但是它的表达能力是有限的。

ae6cbd6da132ec12840e6c325e915cb8.png

不同于VAE、GAN或规整流,扩散模型将图像生成过程建模成一个多步的在不同噪声级别上的去噪模型,借用物理学中扩散过程的概念,在理论上保证了只要在一定的条件下,前向的扩散过程对于任何的输入分布都是可逆的,同时这些逆过程的形式是保持不变的。此时我们只需要在前项的扩散过程中学习到添加的随机噪声的均值和方差,就能够用一个学到的网络在逆向过程中从高斯噪声中的采样逐步恢复到原始的图像。

5b57d0df1a87ce9491d1c087414d2889.png

在本篇工作中,我们还关注到如何将无条件的扩散模型转变为有条件的扩散模型。本文采用的做法是基于对贝叶斯公式取对数然后再求梯度,展开成如下图所示的形式:

9c91b8550cd0373c0ec1915d78ec3cdd.png

可以看到,一个有条件的生成模型等于一个无条件的生成模型加上一个预训练好的分类器,即对应下图中的形式:

fba2a1464b1f32e9380d40544523c5f1.png

02

Method

Previous Work:Planning as Generative Modeling

如下图所示,对于一个经典的基于模型的强化学习算法(Model-based RL),它一般会先学习一个状态转移模型,同时再学习一个世界模型(以预测轨迹的奖励),基于两个学好的模型,通过优化的方法找到最优策略。但是用生成模型解决强化学习任务时,只需将这两个过程集成到生成模型的生成过程中,同时生成它的状态转移以及它对当前步的奖励,就可以将整条轨迹一步地生成出来。

6ca0b62a55d1dee0a003f1ba1b6497f0.png

在2022年ICML的一篇文章中也首次提出将扩散模型用于规划任务。具体来讲,它将轨迹表征成单通道的图像,如下图所示,右侧图像中纵向是去噪过程,横向是规划过程,我们将其规划的整条轨迹看作是单通道的图像,就可以使用扩散模型逐步迭代地去噪生成出来。

9921e91a4bf5dbe2006d8c6cecc2963e.png

而关于将无条件的轨迹生成模型转化成有条件的轨迹生成模型,该篇文章也定义了一个行为模型,正比于一个无条件的扩散模型乘以一个引导函数。在ICML 2022中,它提供了两种引导函数,第一种是值函数的引导,第二种是目标位置的引导。将无条件的扩散模型和这两者之一相乘就可以获得满足所给条件的一条最优轨迹。

581d0cf69fc3578b6df0e10dbde3c8c4.png

Our work: Self-evolved Planning with Diffusion

在离线强化学习中有一个共性的问题,离线强化学习模型的性能受限于离线训练数据的多样性和数量,尤其是将规划器迁移到一些新的任务或环境中是非常具有挑战性的。而扩散模型在图像中的优异表现给我们带来一定启发,一方面,扩散模型有能力生成完全不同于训练数据的异质图像;另一方面,我们发现只需对在采样阶段给予不同的引导函数就可以自动生成适应于不同任务的新数据,而无需重新训练一个扩散过程。因此,我们希望将扩散模型的特点应用到强化学习中,学习一个自进化的基于扩散模型的规划器,进而使得其能够用于多样化的任务和目标。

如下图所示,是本文提出的网络框架。我们首先初始化训练一个扩散模型,在模型预训练之后,采用多样化的目标指引生成崭新的数据,进而设计一个较简单的基于规则的判别器从生成的数据中挑选高质量的数据;在得到高质量的数据后,我们会利用这些数据对扩散模型进行微调。如此循环往复,实现类似于少样本多次联合训练的效果。

5e0bfe94fb7728a3c7b2207653320d75.png

在多个数据集上的实验证明,AdaptDiffuser较其他模型有了明显的性能提高。并且AdaptDiffuser所使用的动力学引导的约束使用了一种基于传统机器人运动学的方法来获得它的实际可执行动作,进而判别是否与动力学约束一致。

e38522f1292a10c1ddc2349f918d1822.png

下图是AdaptDiffuser具体的网络框架。左侧是经典的用于规划和轨迹生成的扩散模型,在生成大量数据后会通过判别器判断是否为高质量数据,如果是则将其加入数据池中更新扩散模型。在生成阶段,我们通过不同的指引函数指引多样化的异质数据生成,多样化的任务包括迷宫找路、拾取任务的不同设置等。

31b183fae062bc93023515d7b80ca906.png

我们在前人的Reward-guided方法基础上提出了一种更泛化的引导方法,它使用了一种Product of Experts Model的方法将行为模型建模成一个扩散模型乘上置信函数的过程。在之前的工作中,我们可以发现,如果是一个连续的奖励函数,则可以通过贝叶斯建模判别当前的轨迹是否为最优轨迹;如果是稀疏的奖励函数,则可以将其建模成阶跃函数的形式,由于阶跃函数的导函数是冲激函数,有采样性质,因此在对应步进行状态的采样和赋值就可以实现要求的效果。进而,我们在此基础上提出了将二者结合的方式(Energy-function Guided),以一种能量函数指引的方式建模,只需要能量函数可微,不强制要求特定的奖励函数形式。

52bdf82b11536355fc58c68a057b90bc.png

03

Experiment Results

如下图所示是在MuJoCo数据集上的实验结果,AdaptDiffuser比其余的无论是基于Model-based RL的方法还是基于生成模型的方法都表现出更优异的性能。

d1cf59be8b90c1973fc88ec1e7c8ca87.png

我们也展示了在迷宫找路任务中,AdaptDiffuser的性能更好。比如,在图(a)、(b)中,其余方法在碰到障碍物时会拐急弯,而AdaptDiffuser在更多优质数据的训练下,最后的生成轨迹更加平滑,也可以更快速地到达终点。在图(c)、(d)更加复杂的地图构型模块中,其余方法甚至是失败的,而AdaptDiffuser还是能够找到最终的一条路径。

e213416e1463641a17070d5d1fc04f1e.png

此外,更重要的是模型在未见过(unseen)任务中的迁移能力。具体来讲,模型在训练的过程中只有将物块堆叠到一起的数据,但是在经过合成的数据生成过程和模型微调之后,它可以非常优质地完成将右侧物块整理到左侧,并排列成一定顺序的任务。

6c51e572b668fb0945626ac44025a6a9.png

我们为了检验所提出的组合奖励函数的效果,还进行了一组对比实验。在迷宫找路任务中,图(a)、(b)的Diffuser以及AdaptDiffuser方法都会寻找一条尽可能短的路。当在迷宫中放置新的奖励(金币)并要求模型拾取时,AdaptDiffuser不仅可以拾取起金币,还可以走到最终目标,但是对比的基线方法Diffuser就会在迷宫中发生碰撞。

d6d4a369e7e41a0f8b1da85a248ec39f.png

我们还进行了消融实验,验证了模型在多次循环的联合训练过程中,模型性能是可以得到进一步提升的。

ea3e3a1a34168b924130072b5117f155.png

04

Discussion

在本文的模型中,算法管线需要生成大量的多样化任务,如果直接人工设计迷宫任务需要耗费大量的时间成本。而在ChatGPT被提出以后,我们完全有可能将迷宫以语言的形式进行表征,然后利用ChatGPT少样本地生成多样化的迷宫布局,并通过提示语的多次引导去指引它生成地形更复杂的迷宫。

fb413675a5f6fce9d8eab9ba3e57f697.png

05

Conclusion

在本文中,我们提出了AdaptDiffuser,一种通过自进化提高基于扩散模型的规划器在离线强化学习中性能的方法。通过使用扩散模型生成合成专家数据,然后用一种奖励引导的判别器过滤出其中高质量的部分,AdaptDiffuser提高了扩散模型在现有决策任务中的性能,特别是目标条件任务。同时AdaptDiffuser进一步增强了该类规划器在没有任何专家数据情况下(在未见过的任务中)的适应性。我们在两个广泛使用的离线RL基准测试上的实验,以及我们在KUKA和Maze2d环境中精心设计的未见过的任务上的实验,均验证了AdaptDiffuser的有效性。

参考文献

[1] Janner, Michael, et al. "Planning with Diffusion for Flexible Behavior Synthesis.” (ICML 2022)

整理:陈研

审核:梁志烜

点击“阅读原文”跳转至00:02:40

可以查看回放哦!

往期精彩文章推荐

659cd2d212223443a2ec555939c9371c.jpeg

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1300多位海内外讲者,举办了逾600场活动,超600万人次观看。

51b323b46bc949ff0ed6686acb49cea1.png

我知道你

在看

~

d90f158ec7566c260db0bfe3be8ba23a.gif

点击 阅读原文 查看回放!

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

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

相关文章

本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)

GitHub地址:https://github.com/dvlab-research/LISA 该项目论文paper reading:https://blog.csdn.net/Transfattyacids/article/details/132254770 在GitHub上下载源文件,进入下载的文件夹,打开该地址下的命令控制台,…

耐蚀点蚀镀铜工艺

引言 随着5G技术的推出,导致电子电路和IC基板在设计中要求更高的密度。由于5G应用的性质,这些设计中的高可靠性和出色的电气性能也越来越重要。为了满足5G应用和其他下一代设备平台的需求,逐渐建立了使用改良半加成加工(mSAP)制造电路板的制…

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下:UTC时间(协调世界时,Coordinated Universal Time)使用24小时制,以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时,取值范围为00到23。mm 表示分钟…

photoshop,ps自带“不规则图形”在哪

下拉箭头(2步)后有个“齿轮”,点击齿轮,列表里有“全部”。

大数据HBase学习圣经:一本书实现HBase学习自由

学习目标:三栖合一架构师 本文是《大数据HBase学习圣经》 V1版本,是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下:《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来, 已经汇集了 好几百题,大量的大厂面试…

Springboot 接口方式硬通知实现ConfigurationProperties 、@Value 动态刷新

前言 看到这个文章标题,也许有的看官就觉得很多余, 因为Nacos 可以设置 NacosValue(value "${XXX}",autoRefreshed true) 实现动态刷新; 又因为cloud config的RefreshScope 实现动态刷新; 还有阿波罗...等 这…

MAVEN利器:一文带你了解MAVEN中的依赖管理

前言: 强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…

iOS 使用coreData存贮页面的模型数据中的字典

我们使用coreData时候,会遇到较为复杂的数据类型的存贮,例如,我们要存一个模型,但是一个模型里面有个字典,这时候,我们该如何存贮呢 如图所示,一个对象中含有一个字典 我们实现一个公共的方法…

无涯教程-Flutter - 安装步骤

本章将指导您详细在本地计算机上安装Flutter。 在Windows中安装 在本节中,让无涯教程看看如何在Windows系统中安装 Flutter SDK 及其要求。 第1步 - 转到URL,https: //flutter.dev/docs/get-started/install/windows并下载最新的Flutter SDK。 第2步 - 将zip归档…

(leetcode1761一个图中连通三元组的最小度数,暴力+剪枝)-------------------Java实现

(leetcode1761一个图中连通三元组的最小度数,暴力剪枝)-------------------Java实现 题目表述 给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,其中 edges[i] [ui, vi] ,…

电脑锁屏怎么设置?这5个方法都管用!

“我的电脑好像没有锁屏,就算我很久没用电脑也不会息屏。这是为什么呢?有什么方法可以为电脑设置锁屏吗?” 电脑锁屏是保护隐私和安全的重要手段。如果我们希望在不使用电脑时电脑自动进行锁屏,是可以手动设置的。那么&#xff0c…

EXPLAIN的用法

一、语法 EXPLAIN SQL语句二、各字段解释 1、table ● 单表:显示这一行的数据是关于哪张表的。 ● 多表关联:t1为驱动表,t2为被驱动表。 注意: 内连接时,MySQL性能优化器会自动判断哪个表是驱动表,哪个表…

什么是HTTPS协议?与HTTP协议区别?

一、协议科普 HTTP协议(超文本传输协议)是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议,允许客户端通过Web浏览器等方式向服务器发送请求,服务器则返回响应。HTTP协议是构建万维网(WWW&…

使用pip命令安装库,装到其他环境中的问题。

问题描述:我们在pycharm中创建了新的虚拟环境,但是在其终端使用Pip命令安装库时,发现库却安装到了其他conda创建的环境中。图示安装gym库,刚开始安装到了其他地方,第二次正确安装。 原因分析:安装库时&…

USB fastboot

1 Samsung fastboot flashing unlock 2 bootloader增加解锁密码 diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c index e4d46e4..1b4b450 100755 --- a/app/aboot/aboot.c b/app/aboot/aboot.c -2613,6 2613,20 void cmd_oem_unlock(const char *arg, void *data,…

[ES]mac安装es、kibana、ik分词器

一、安装es和kibana 1、创建一个网络,网络内的框架(eskibana)互联 docker network create es-net 2、下载es和kibana docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 3、运行docker命令部署单点eskibana(用来操作es) doc…

分布式搜索引擎

1 DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一…

开启智能时代:深度解析智能文档分析技术的前沿与应用

开启智能时代:深度解析智能文档分析技术的前沿与应用 本章主要介绍文档分析技术的理论知识,包括背景介绍、算法分类和对应思路。通过本文学习,你可以掌握:1. 版面分析的分类和典型思想 2. 表格识别的分类和典型思想 3. 信息提取的…

C语言函数编程指南:实现模块化和可维护的代码

函数 1. 前言2. 函数是什么3. C语言中函数的分类3.1 库函数3.2 自定义函数 4. 函数的参数4.1 实际参数(实参)4.2 形式参数(形参) 5. 函数的调用5.1 传值调用5.2 传址调用 6. 阶段练习6.1 打印100~200之间的素数6.2 打印1000到2000…

WEBGL(2):绘制单个点

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…