Transformer8

news/2023/9/22 15:13:43 标签: 深度学习, 人工智能

太火了都说到第8了~~  其实有点重复了 作为之前补充把

该怎么把预训练Transformer范式用到强化学习里?DeepMind提出「算法蒸馏」:可探索的预训练强化学习Transformer

sformer模型可以将prompt作为条件或上下文学习(in-context learning)适应不同的下游任务。

大型预训练Transformer模型的泛化能力已经在多个领域得到验证,如文本补全、语言理解、图像生成等等。

从去年开始,已经有相关工作证明,通过将离线强化学习(offline RL)视为一个序列预测问题,那么模型就可以从离线数据中学习策略。

但目前的方法要么是从不包含学习的数据中学习策略(如通过蒸馏固定的专家策略),要么是从包含学习的数据(如智能体的重放缓冲区)中学习,但由于其context太小,以至于无法捕捉到策略提升。

DeepMind的研究人员通过观察发现,原则上强化学习算法训练中学习的顺序性(sequential nature)可以将强化学习过程本身建模为一个「因果序列预测问题」。

具体来说,如果一个Transformer的上下文足够长到可以包含由于学习更新而产生的策略改进,那它应该不仅能够表示一个固定的策略,而且能够通过关注之前episodes的状态、行动和奖励表示为一个策略提升算子(policy improvement operator)。

这也提供了一种技术上的可行性,即任何RL算法都可以通过模仿学习蒸馏成一个足够强大的序列模型,并将其转化为一个in-context RL算法。

基于此,DeepMind提出了算法蒸馏(Algorithm Distillation, AD) ,通过建立因果序列模型将强化学习算法提取到神经网络中。

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

算法蒸馏将学习强化学习视为一个跨episode的序列预测问题,通过源RL算法生成一个学习历史数据集,然后根据学习历史作为上下文,通过自回归预测行为来训练因果Transformer。

与蒸馏后学习(post-learning)或专家序列的序列策略预测结构不同,AD能够在不更新其网络参数的情况下完全在上下文中改进其策略。

  • Transfomer收集自己的数据,并在新任务上最大化奖励;

  • 无需prompting或微调;

  • 在权重冻结的情况下,Transformer可探索、利用和最大化上下文的返回(return)!诸如Gato类的专家蒸馏(Expert Distillation)方法无法探索,也无法最大化返回。

实验结果证明了AD可以在稀疏奖励、组合任务结构和基于像素观察的各种环境中进行强化学习,并且AD学习的数据效率(data-efficient)比生成源数据的RL算法更高。

AD也是第一个通过对具有模仿损失(imitation loss)的离线数据进行序列建模来展示in-context强化学习的方法。

算法蒸馏

2021年,有研究人员首先发现Transformer可以通过模仿学习从离线RL数据中学习单任务策略,随后又被扩展为可以在同域和跨域设置中提取多任务策略。

这些工作为提取通用的多任务策略提出了一个很有前景的范式:首先收集大量不同的环境互动数据集,然后通过序列建模从数据中提取一个策略。

把通过模仿学习从离线RL数据中学习策略的方法也称之为离线策略蒸馏,或者简称为策略蒸馏(Policy Distillation, PD)。

尽管PD的思路非常简单,并且十分易于扩展,但PD有一个重大的缺陷:生成的策略并没有从与环境的额外互动中得到提升。

例如,MultiGame Decision Transformer(MGDT)学习了一个可以玩大量Atari游戏的返回条件策略,而Gato通过上下文推断任务,学习了一个在不同环境中解决任务的策略,但这两种方法都不能通过试错来改进其策略。

MGDT通过微调模型的权重使变压器适应新的任务,而Gato则需要专家的示范提示才能适应新的任务。

简而言之,Policy Distillation方法学习政策而非强化学习算法。

研究人员假设Policy Distillation不能通过试错来改进的原因是,它在没有显示学习进展的数据上进行训练。

算法蒸馏(AD)通过优化一个RL算法的学习历史上的因果序列预测损失来学习内涵式策略改进算子的方法。

AD包括两个组成部分:

1、通过保存一个RL算法在许多单独任务上的训练历史,生成一个大型的多任务数据集;

2、将Transformer使用前面的学习历史作为其背景对行动进行因果建模。

由于策略在源RL算法的整个训练过程中不断改进,AD必须得学习如何改进算子,才能准确模拟训练历史中任何给定点的行动。

最重要的是,Transformer的上下文大小必须足够大(即跨周期),以捕捉训练数据的改进。

在实验部分,为了探索AD在in-context RL能力上的优势,研究人员把重点放在预训练后不能通过zero-shot 泛化解决的环境上,即要求每个环境支持多种任务,且模型无法轻易地从观察中推断出任务的解决方案。同时episodes需要足够短以便可以训练跨episode的因果Transformer。

在四个环境Adversarial Bandit、Dark Room、Dark Key-to-Door、DMLab Watermaze的实验结果中可以看到,通过模仿基于梯度的RL算法,使用具有足够大上下文的因果Transformer,AD可以完全在上下文中强化学习新任务。

AD能够进行in-context中的探索、时间上的信用分配和泛化,AD学习的算法比产生Transformer训练的源数据的算法更有数据效率。

算法蒸馏的实验表明,Transformer可以通过试错自主改善模型,并且不用更新权重,无需提示、也无需微调。单个Transformer可以收集自己的数据,并在新任务上将奖励最大化。

尽管目前已经有很多成功的模型展示了Transformer如何在上下文中学习,但Transformer还没有被证明可以在上下文中强化学习。

为了适应新的任务,开发者要么需要手动指定一个提示,要么需要调整模型。

如果Transformer可以适应强化学习,做到开箱即用岂不美哉?

但Decision Transformers或者Gato只能从离线数据中学习策略,无法通过反复实验自动改进。

使用算法蒸馏(AD)的预训练方法生成的Transformer可以在上下文中强化学习。

首先训练一个强化学习算法的多个副本来解决不同的任务和保存学习历史。

一旦收集完学习历史的数据集,就可以训练一个Transformer来预测之前的学习历史的行动。

由于策略在历史上有所改进,因此准确地预测行动将会迫使Transformer对策略提升进行建模。

整个过程就是这么简单,Transformer只是通过模仿动作来训练,没有像常见的强化学习模型所用的Q值,没有长的操作-动作-奖励序列,也没有像 DTs 那样的返回条件。

在上下文中,强化学习没有额外开销,然后通过观察 AD 是否能最大化新任务的奖励来评估模型。           whaosoft aiot http://143ai.com  

Transformer探索、利用、并最大化返回在上下文时,它的权重是冻结的!

另一方面,专家蒸馏(最类似于Gato)不能探索,也不能最大化回报。

AD 可以提取任何 RL 算法,研究人员尝试了 UCB、DQNA2C,一个有趣的发现是,在上下文 RL 算法学习中,AD更有数据效率。

用户还可以输入prompt和次优的demo,模型会自动进行策略提升,直到获得最优解!

而专家蒸馏ED只能维持次优的demo表现。

只有当Transformer的上下文足够长,跨越多个episode时,上下文RL才会出现。

AD需要一个足够长的历史,以进行有效的模型改进和identify任务。

通过实验,研究人员得出以下结论:

  • Transformer可以在上下文中进行 RL

  • 带 AD 的上下文 RL 算法比基于梯度的源 RL 算法更有效

  • AD提升了次优策略

  • in-context强化学习产生于长上下文的模仿学习


http://www.inspinia.net/a/16609.html

相关文章

产业“上链”至深处,京东云如何作为?

在云南澜沧,盛产茶叶、咖啡豆,京东云帮助澜沧县搭建了冷链物流信息交易运营平台,聚合了生产、加工、运输、配送资源,联通产地、销地,汇聚供需信息,构建上行下行一张网,盘活了当地特色产业存量&a…

【Pytorch Lighting】第 2 章:第一个深度学习模型起步

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

浪漫3D樱花漫天飞舞特效【附源码】

免费领取源码参考 【浪漫3D樱花漫天飞舞特效】 博主介绍: 🚀自媒体 JavaPub 独立维护人,全网粉丝15w,csdn博客专家、Java领域优质创作者,51cto TOP10博主,知乎/掘金/华为云/阿里云/InfoQ等平台优质作者、专…

java中的接口

文章目录1、为什么会存在接口2、定义接口3、接口继承4、接口实现5、三个常用接口5.1 Comparable5.2 Comparator5.3 Cloneable1、为什么会存在接口 接口是抽象方法和常量值定义的集合,是抽象类的更近一步 一方面,有时必须从几个类中派生出一个子类&…

【生日快乐】Node.js 实战 第1章 欢迎进入Node.js 的世界 1.2 ES2015、Node 和 V8

Node.js 实战 文章目录Node.js 实战第1章 欢迎进入Node.js 的世界1.2 ES2015、Node 和 V81.2.1 Node 和 V81.2.2 使用特性组1.2.3 了解Node 的发布计划第1章 欢迎进入Node.js 的世界 1.2 ES2015、Node 和 V8 对于“以前的JavaScript” ,Node解决了很多问题&#x…

Excel - 字符串处理函数:LEFT, RIGHT, MID, LEN 和 FIND

Excel字符串处理函数:LEFT, RIGHT, MID, LEN 和 FIND。 我们在Excel里会存储一些字符串,其内容一般包含:字符、数字、符号(比如横线符 "-"),以及空格等。 如果我们需要从中要获取一部分内容,那如何在Excel中…

深入理解Java虚拟机:Java运行内存结构

本篇内容包括:JAVA 运行内存结构,即 程序计数器、Java 虚拟机栈、本地方法栈 、Java堆、方法区、运行时常量池 以及 直接内存等相关内容! 一、JAVA 运行内存结构 Jvm 执行 Java 程序时,会把它所管理的内存划分为若干个不同的数据…

你的Web3域名 价值究竟何在?

当你又一次听说某 Web3 域名被卖出天价的时候,当你又一次看到身边一位 Web3 朋友改用域名作为其用户名的时候,当你开始在注册栏中物色自己感兴趣的域名的时候,你是否有深思,这些域名究竟有么用?不同项目之前的区别和联…

MySQL去重中 distinct 和 group by 的区别

今天在写业务需要对数据库重复字段进行去重时,因为是去重,首先想到的是distinct关键字。于是一小时过去了。。。。(菜鸟一个,大家轻点骂) 我把问题的过程用sql语句演示给大家演示一下 首先我使用的是mybatis-plus&am…

【scrapy、flask】如何在社区版 PyCharm 中调试 scrapy爬虫和 flask web 服务

软件版本 PyCharm 2020.2 (Community Edition) ,此为官网上的免费社区版Windows 10 操作系统 调试 scrapy 爬虫 编写 scrapy 爬虫启动的入口文件如下: import os import sysfrom scrapy.cmdline import executesys.path.append(os.path.dirname(os.pat…

70.qt quick-QQmlListProperty详解

qml与c++少不了类表传递、比如我们之前的好友列表、文件传输列表等等、用的是QListModel、QList类指针表传递、QVariantList等、本章我们使用一个新的传递方式QQmlListProperty、 本章源码已上传至专栏群(第一章底部获取)中,感兴趣的自行下载、 1. QQmlListProperty介绍 QQml…

【生日快乐】SpringBoot SpringBoot 提高篇(第二篇) 第6章 SpringBoot 高级配置 6.1 临时属性配置

SpringBoot 【千锋教育java教程SpringBoot2全套,springboot快速入门到项目实战视频教程】 SpringBoot 提高篇(第二篇) 第6章 SpringBoot 高级配置 文章目录SpringBootSpringBoot 提高篇(第二篇)第6章 SpringBoot 高级配置6.1 临时属性配置6.1 临时属性配置 创建…

比Linus更牛逼的程序员,QEMU、FFmpeg的作者

Linus Torvalds是个非常厉害的程序员,因为他有两个名扬天下的作品:Linux和Git。 如果单论技术能力,有一个人,也许比Linus更强。 我在看他主页项目列表的时候,感觉头都炸了。 他开发了著名的模拟器QEMU和音视频处理库…

软考重点10 知识产权

软考重点10 知识产权一、著作权1. 著作权的理解(1)版权:(2)人身权与财产权2. 知识产权的归属判定3. 知识产权的归属判定(1)委托创作(2)合作开发4. 著作权保护对象及范围5…

Python数学基础2

1.Python中使用对数函数 log(x)就是数学中的ln(x),log10(x)就是数学中的lg(x)。 import numpy as np #对XY取ln X np.log(X) # 对X,Y取双对数 Y np.log(Y…

mac拷贝文件到u盘,mac拷贝文件到u盘很慢

初次接触Mac电脑的小伙伴可能对U盘的使用方法较为陌生,因为Mac电脑和Windows电脑存在操作差异,很多用户都不知道mac拷贝文件到u盘的操作方法,本文就来向大家介绍一下mac怎么拷贝到u盘。如果遇到了无法拷贝的情况,本文也会教大家怎…

linux文件查看和文件查找

一、例题 1. 文件查看 复制/etc/passwd到/opt目录下。 查看/opt/passwd文件的第6行 2.文件查找 在当前目录及子目录中,查找大写字母开头的txt文件 在/etc及其子目录中,查找host开头的文件 在$HOME目录及其子目录中,查找所有文件 在当前目录…

Linux PCIe驱动框架分析(第三章)

目录 项目背景 1. 概述 2. 流程分析 2.1 Device Tree 2.2 probe流程 2.3 中断处理 2.4 总结 项目背景 Kernel版本:4.14ARM64处理器使用工具:Source Insight 3.5, Visio 1. 概述 先回顾一下PCIe的架构图: 本文将讲PCIe Ho…

Emlog后台登录模板分享下载

使用方法 把源码放进你们的admin目录里面的views文件夹 记住 是要把login.php文件和css文件覆盖进去 插件下载:https://download.csdn.net/download/m0_66047725/86907533

【Dubbo3高级特性】「框架与服务」框架与服务的异步调用实践以及开发模式

异步调用 在Dubbo中发起异步调用机制,从而提高对应的服务的调用的吞吐能力和调用机制 特性说明 技术背景 从2.7.0开始,Dubbo 的所有异步编程接口开始以CompletableFuture为基础,基于NIO的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多…