【栏目前沿进展】近日,清华大学交叉信息研究院高阳研究组在强化学习领域中取得突破,研究组所提出的模型EfficientZero首次在雅达利(Atari )游戏数据上超过同等游戏时长的人类平均水平。EfficientZero的高效率学习能力为强化学习算法应用到现实世界场景提供了更大可能。

本文主要介绍了清华大学交叉信息研究院助理教授高阳博士的新研究《使用有限数据掌握Atari游戏》,大致分为两部分:一,强化学习在现实应用的主要问题;二,强化学习方法介绍。

本文整理自青源Live第29期,视频回放:https://event.baai.ac.cn/activities/191

主讲人:高阳,博士,清华大学交叉信息研究院助理教授。博士毕业于美国加州大学伯克利分校,本科毕业于清华大学计算机系。主要研究计算机视觉与机器人学。

个人主页:http://people.iiis.tsinghua.edu.cn/~gaoyang/

主讲人:高阳

整理:李佳伦

编校:叶葳蕤、李梦佳


01

强化学习在现实应用的主要问题

自DQN提出之后,强化学习算法第一次在比较大规模的环境中取得了和人类相似的水平。之后AlphaGo的出现,又第一次完整解决了状态空间高达10的300次方的二人博弈游戏——围棋,战胜了人类高手。

在此之后,强化学习又被用来解决多智能体问题,如DeepMind公司使用AlphaStar来解决星际争霸游戏,以及后续的DOTA2等等。不过,虽然强化学习取得了一系列成功,但我们可以发现一个问题:这些强化学习的成果都出现在游戏领域,那么,强化学习在现实世界中的应用如何呢?

在强化学习在现实生活中应用的典型场景,如更智能地推荐一些内容、驱动家务机器人做一些琐碎的家务活、进行自动驾驶的复杂判断、和量化交易等等任务中,目前还没有强化学习的身影。那么,现有的强化学习方法又因为哪些不足而无法较好地应用在现实世界中呢?

高阳博士认为:造成上述问题的一个非常重要的原因是,强化学习算法依赖于大量的环境交互来获得足够的训练数据。以AlphaGo为例,该算法在围棋上大概需要6000000次游戏才能超过人类。替换成人类,假如一个围棋选手每天进行10次围棋,也需要18082年才能达到66000000这个数据量!简单的游戏环境可以提供这样的交互次数,而对于现实世界而言,巨大的交互次数是难以保证的,尤其是在同人类进行交互的环境中,强化学习的学习策略所需要的次数更是远远无法提供的。该问题主要导致了强化学习难以在现实世界中落地。

有人提出通过基于模型的强化学习算法来解决采样数据量巨大的问题,即通过构建当前环境的模拟器,之后在模拟器中进行采样与训练。然而,在这样的场景下,最终能够采样的数据量仍然是有限的。原因如下:首先,模拟器所模拟的场景越复杂,模拟器越逼真,其运行的速度就会越慢,如果运行速度越慢,那么训练效率必然也会低很多;其次,即使是构建这样的一个模拟器,有时也是非常复杂的。比如蛋白质结构的构建,本身就是一个极其复杂的过程,需要偏微分方程等一些复杂的建模,这种建模也是非常困难的。

除此之外,很多现实场景很难用模拟器模拟。比如,厨房里的炒菜,涉及到包含微观与宏观的各种变化,其本身就是一个较难模拟的过程——更何况为做菜构建模拟器也是一个价值不大的问题。因此,在现实生活的应用或者在一些复杂场景下,数据量有限是一个不可避免的限制,这就导致了大部分强化学习算法很难应用到这些场景。因此如何在有限的数据下能够让强化学习算法拥有较高的性能是一个非常重要的话题。

鉴于此,高阳博士提出了EfficientZero,该方法一定程度上解决了强化学习在数据量有限的情况下的性能问题。为了验证该算法的有效性,EfficientZero在强化学习算法通用测试基准Atari Game上取得了大幅度的提升。

Atari游戏是一组游戏环境,它包含丰富的游戏场景,且各个游戏规则各异,因此经常被用来作为强化学习领域的benchmark。在2015年,Deep Mind团队提出算法DQN,通过200M帧训练数据,在Atari游戏上达到了人类平均水平。然而200M帧训练数据相当于1000个小时的训练时间,对于真实场景任务,很难获取如此大规模的数据量。因此有学者提出一个数据更加稀缺的benchmark:Atari 400K。在这样的基准下,仅仅允许400K帧的训练数据,约为2小时。

作为首个在Atari 400K数据下超过人类平均水平的算法,EfficientZero达到与DQN同等水平仅仅需要其数据量的1/500,并远远超过此前Atari 400K上的SoTA SPR的性能。而低样本效率是限制强化学习算法应用于真实场景的障碍之一。这表明EfficientZero的高样本效率与高性能能够让强化学习算法更加贴近真实应用的场景,为强化学习算法能够落地提供了更大的可能性。

02

方法介绍

EfficientZero是基于MuZero的一种算法。该类算法同属于蒙特卡洛树搜索(MCTS)强化学习。比较著名的AlphaGO系列如AlphaGO、Alpha GO Zero、AlphaZero、MuZero均隶属于该类算法。

与DQN等使用Bellman backups的方法不同,MCTS主要是借助于搜索(依靠状态转移方程)作为策略提升的方法,这样的优点是:这种方法可以在需要推理的环境中(如围棋)可以获得更好的表现;同时,这种方法也可以在不需要强推理的环境中(如Atari游戏)具有良好的效果。所以这种基于搜索的方法总体是比较通用的。

下面首先介绍基于蒙特卡洛树搜索的强化学习。

以下围棋为例,我们可以为下围棋的决策模型构建一棵搜索树,亦即穷举出所有可能的落子方法。该树对应指数级别的复杂度,而这样的复杂度是无法承受的。针对这个问题,解决方案主要包括两种:

第一种是降低搜索树的深度,即只需要思考未来若干步之内如何落子即可,其目标是构建一个状态评估器,期望若干步之后整个棋盘的整体状态相对较好。该类思路对应于强化学习中的value network,即通过评估状态的值来进行优化。

第二种思路是降低搜索树的宽度。同样以围棋举例,虽然以遍历的角度来看所有的空位都可以落子,但直觉上很多地方落子是相当危险且没有意义的——如此便可构建一个动作评估器去把所有动作中最有可能触发的若干个动作确定下来,以降低搜索树的宽度。这种方法对应于强化学习中的prior network。

下面以MuZero算法为例介绍该类方法。这是一种model-based的,基于蒙特卡洛树搜索的算法,它通过预测环境状态的变化来进行更好的决策。MuZero主要包括以下四类网络模型:

1. Value/Policy network,评估当前状态价值以及对应的策略概率分布;

2. Reward network,预测在给定动作下产生的回报;

3. Representation network,将所观测到的图片输入映射成隐空间的状态;4. Dynamics network 预测给定动作下环境的下一个状态。

MuZero算法在AlphaZero算法的基础上,学习出环境模型Dynamics network使得这类算法能够通用于各种未知规则场景。但是MuZero仍然存在一定的缺陷。其中最大的问题便是需要大量的采样数据进行。除此之外,MuZero缺少预训练过程,无法应用于复杂的环境之中。

作者认为MuZero的缺陷主要来自于以下三方面:

1. 不充足的监督学习信号

如前所述,MuZero需要预测状态的转移,但是其训练监督信号主要来自于value网络、policy网络和reward网络三者输出的组合。而这些信息的维度是很低的,如value和reward仅仅是一维的数字,使用该信号很难训练出较好的状态预测器,因此需要大量的环境交互。

2. model aliasing problem

第二个问题是不合理的预测要求导致模型预测的误差。MuZero要求模型预测每一步动作下环境的回报,但是这在某些场景下,是非常模糊且困难的,这使得模型在预测时有较大的误差。

以下图所示的乒乓球游戏为例(白色是乒乓球,绿色方板为游戏可控制球拍),预测白色球在何时出界是一个困难的任务,但是预测白色球在某段时间内会不会出界却是较为简单的。如果预测球在哪个特定的时间点出界了,那么对模型的需求就会高很多,也更加困难。同时,这也是一种过度的需求。

3. off-policy error

第三个问题是,在数据量有限的情况下,会出现目标价值偏移的问题。这是因为在数据有限时,通常会重复利用之前采样的数据进行训练,而在计算这些老旧的数据的价值时是通过n步bootstrap的方式计算一段采样轨迹的回报与价值的,但是随着训练,模型的策略函数有较大的变化,这就使得之前采样的轨迹与当前策略的不匹配。因此,在这种情况下目标价值就会有产生一定幅度的偏差。

EfficientZero针对以上三个点进行了改进。

1. 自监督学习下的环境预测模型

考虑到reward value等信号无法支持环境预测模型的学习,因此EfficientZero借用对比学习来训练环境状态预测模型。具体而言,EfficientZero通过时序上的环境一致性构建对比学习损失函数。如下图所示。

其中时序一致性的实现是通过计算机视觉领域中的对比学习算法SimSiam实现的,这使得状态转移模型(dynamics network)所预测的下一步状态靠近真实轨迹的下一步状态,从而促进状态转移模型的学习。

此外,为了验证时序一致性的有效性,作者通过训练解码器还原所预测的观测图像。下图是一个可视化结果。

图中第二行和第三行分别是在无时序一致性和有时序一致性情况下训练出来的隐空间特征,图中第一列是还原当前时刻的图像,后面几列是还原预测未来几步的图像。从中可以看出,两者在还原当前时刻都表现不错,但是在还原未来几步图像时,无时序一致性的特征完全无法还原,然而有时序一致性的特征则可以一定程度上还原部分,这也证明了时序一致性在特征学习上的有效性。

2. 解决model-aliasing 问题:value prefix

EfficentZero对这种过度预测的问题的解决方案是:不去预测每一步的回报,而是预测一个区间内的回报和,即将预测回报模型替换成预测价值前缀模型。文中提出,在训练过程中,有些状态的回报是很难预测的,因此预测每步状态的回报会有较高的不确定性,但是预测阶段的回报相对来说更加平滑,从而使减少这种不确定性。具体实现上,EfficientZero使用LSTM预测多步状态变化下的回报和,即value prefix(形式上像value计算公式的前缀),如下面的公式所示:

为了进一步验证预测value prefix的有效性,作者收集一些数据,包括训练和测试,并进行监督训练,最终在在测试集上比较二者的回报预测误差。从下图可以看出,加入value prefix之后,模型在训练时损失损失比之前更大,但却可以获得更好的预测效果。这证明了value prefix能够减小预测回报时的误差,同时也表明之前的模型由于任务过度复杂产生一定的过拟合问题。

3. off-policy correction:

最后是通过更改目标价值函数实现离线策略价值函数的纠正。在数据量较少时,智能体只能从过去收集的数据中进行训练,而过去所收集的数据是按照过去的策略函数所采样的,这就导致了离线策略价值函数的偏移。因此在计算目标价值时,一方面通过减少价值计算的步长,将固定的步长k修改为一个更小的步长l,一方面通过MCTS估计最终状态的价值,从而实现对目标价值的一定纠正,减少偏移。

文中通过比较二者与真实目标价值的误差来验证这一改进的有效性。

其效果提升(F1 Error)如下:

可以看出,在使用off-policy correction的情况下,目标价值的评估误差在当前时刻状态和未来5步的状态都有所降低。

此外,EfficientZero还在部分模拟机器人控制环境DMControl中进行了实验,并取得了目前最佳性能,这也进一步表明EfficientZero在更复杂的模拟环境情形下仍然能维持高样本效率和高性能。

欢迎点击阅读原文参与文章讨论

只用1/500数据就打败人类!一种采样高效的强化学习算法 | 报告详解相关推荐

  1. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列详解

    前言 栈和队列是一对好兄弟,前面我们介绍过数据结构与算法-栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去).而队列就好比是一个隧道,后面 ...

  2. AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

    [新智元导读]或许"智能爆炸"不会发生,但永远不要低估人工智能的发展.推出最强围棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他们自己,也刷新了世人对人工 ...

  3. 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋

    原文链接:点击打开链接 摘要: 或许"智能爆炸"不会发生,但永远不要低估人工智能的发展.推出最强围棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他们自己, ...

  4. 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏...

    2019独角兽企业重金招聘Python工程师标准>>> 世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久--不是因为大家都去看谁(没)跟谁吃饭了,而是Dee ...

  5. 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

    世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久--不是因为大家都去看谁(没)跟谁吃饭了,而是DeepMind再次迅速超越了他们自己,超越了我们剩下所有人的想象. 12月5日 ...

  6. 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解

    一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解 "如果你是一个经验丰富的运维开发人员,那么你一定知道ganglia.nagios.zabbix.elastics ...

  7. Pandas读取和将数据存储到多个sheet的excel以及read_excel函数常用参数详解

    Pandas读取和将数据存储到多个sheet的excel以及read_excel函数常用参数详解 Excel数据显示: read_excel函数常用参数详解 1.io 读取路径 个人比较喜欢第一种(r ...

  8. nginx中500,501,502,503,504,505状态码的详解及出现的原因/区别(转)

    转载别人的,写的确实很直白明了,学习巩固了!很多人都是知其人不知所以然 nginx5xx系列状态码详解 一.502 - Bad Gateway fpm 官方解释:作为网关或者代理工作的服务器尝试执行请 ...

  9. vb串口 任意波特率_学习串口参数详解:波特率,数据位,停止位,奇偶校验位...

    串口常用参数,串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB)混淆). 中文名:串口常用参数 属    性:通用设备通信的协议 相    关:通 ...

最新文章

  1. 华为云NP考试题库_华为认证网络工程师怎么考
  2. 计算机组成原理考试计算题,计算机组成原理常考计算题.doc
  3. 图解在8086模拟器中运行汇编helloworld程序
  4. mysql 连接 中文_大佬们E语言连接MYSQL输出中文乱码怎么破
  5. 怎么解决交换机端口不正常问题?
  6. php根据分类生成网址,PHP实现无限极分类生成分类树的方法
  7. java exec 关闭_如何正确关闭java ExecutorService
  8. 《移动App测试的22条军规》—App测试综合案例分析23.4节测试微信App的手势操作...
  9. 新华社专题报道|陕建集团:打造「建筑行业」数字化转型标杆
  10. 第四周 Access总结
  11. python解析xml数据_Python解析XML数据方法
  12. 学习React之前你需要知道的的JavaScript基础知识
  13. 简单易用的C/C++ 图像库 stb_image stb_image_write
  14. 【图像处理】初识计算机视觉
  15. Re:从0开始的微服务架构:(二)如何快速体验微服务架构?
  16. 《分解因数》:质因数分解
  17. matlab寻峰代码,寻峰的函数!! - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
  18. 高级计算机网络教程,计算机网络高级教程
  19. SpringBoot 解析excel 使用easyexcel依赖 2.1.1版本
  20. 逍遥模拟器连接不到android,逍遥安卓模拟器无法连接网络的解决方法

热门文章

  1. shell脚本教学(二)——diff、rename、cut、sort、unip
  2. java ipfs文件存储_原来IPFS是这样存储文件的
  3. Java注解和xml_Spring注解配置和xml配置优缺点比较
  4. 蓝牙 socket 建立不了_蓝牙电话之PBAP同步电话簿的安卓实现
  5. wps 模拟分析 规划求解_入行十年,我是如何解决模流分析准确性问题的
  6. 在linux挂载网络驱动器,利用centos 6.6 搭建iscsi服务器并在centos挂载iscsi网络驱动器...
  7. 安装hbas_非常详细的HBase的安装与配置
  8. 水仙花数(3.1)(Java)
  9. dd指令打包iso文件 linux_从零开始学Linux运维|33.文件的打包压缩和解压
  10. 有服主传送玩家指令_我的世界:狗子传送机学废了?没关系,简单无脑的WiFi红石来了!...