awesome-exploration-rl 前沿追踪——如何高效地探索未知的奥秘

news/2024/4/19 11:18:58/文章来源:https://www.cnblogs.com/OpenDILab/p/16623879.html

引言


探索和利用的平衡 (The banlance between exploration and exploitation) 是强化学习中最核心的问题之一。 一般来说,利用指的是利用当前已知知识做出最优动作,探索指的是探索未知的环境以获取新的知识,从而潜在地可能得到回报更大的动作。探索与利用如何平衡的问题即是指:何时选择探索,何时选择利用,才能高效地探索未知的世界,使回报最大化?


首先来看生活中的这样一个例子:
A 地区一共有 10家餐馆,小明每去一家餐馆吃饭需要花费100元。到目前为止,小明在其中 5家餐馆吃过饭,并依据安全,卫生,营养,美味这4个维度进行了评分 (每维为0-10分,餐馆的最终得分取这4维的平均分),评分依次为6, 5, 4, 7, 9分,剩下的5家餐馆也许可以评到10分,也许只有2分。如果想在花费最少的情况下,吃到评分最高的餐馆,下一次吃饭小明应该选择去哪里呢?

在这个问题中,为了“吃到评分最高的餐馆” ,即获得更高的回报,小明需要

    • 探索,即指选择以前从来没有去过的餐厅 (到达未访问过的状态动作空间)。
    • 利用,即指选择当前评分最高的餐厅 (利用当前已知知识,选择能产生最大回报的动作)。
    • 那么,小明到底该去哪家呢?这就是探索和利用的平衡问题。这样的问题在我们的日常生活中比比皆是,可以说也是我们人生的核心问题之一。

 

一般来说,一个强化学习智能体想要找到最优策略,需要保证遍历环境中的所有状态-动作空间:

  • 在简单的表格环境上,实现此要求最简单的方法是采用随机探索策略,即在每个状态下选择所有可选动作的概率都是非零的,例如 epsilon-greedy 或 Boltzman Exploration。 虽然这种随机探索策略在表格环境中,最终会收敛到最优策略,但是它们收敛到最优策略所需的步数随着状态空间的大小呈指数增长,效率低下。
  • 在复杂环境中这是开销很大甚至是不可能的,尤其是在探索困难的环境中:
    • 环境给出的奖励很稀疏。智能体需要作出特定的序列动作才可能得到一个非零的奖励,如果每一步仅仅采用随机探索,很可能在整个学习过程中都遇不到一个非零的奖励。例如在图1所示的格子世界环境中,智能体需要执行"转向,移动障碍物,开箱子,拿钥匙,开门"等长序列动作,才能有一个正的奖励。

 

图1:MiniGrid-ObstructedMaze-Full-v0 环境示意图

 

    • 环境给出的奖励具有误导性。环境在智能体的初始点附近给出一些负的奖励或者小的正的奖励,容易导致智能体陷入局部最优解。
      • 在图2所示的 Pitfall 游戏里面,不仅奖励很稀疏,而且智能体的很多动作会得到一个负的奖励,智能体在学习到如何获取一个正的奖励之前,可能会由于这些负的奖励的存在,停在原地不动,导致缺乏探索。

 

tPitfall 环境示意图

 

    • 在图3所示的 AppleKeyToDoorTreasure 环境中,红色的智能体的最终目标是到达绿色的目标位置(到达后奖励为+1),在方格世界中还有一个红色的苹果,拿到它奖励为+0.1,其他行为奖励都为0,如果智能体在拿到红色的苹果后便不再探索状态空间的其它部分,就无法找到最优的"拿钥匙开门达到绿色目标点"的最优策略。

 

 

图3: AppleKeyToDoorTreasure 环境示意图

 

    • 环境给出的状态具有误导性。例如在图4所示 "Noisy-TV" 问题中,环境的状态中包含一个输出随机噪声的 TV,它是不可控和不可预测的,将能够吸引基于好奇心的探索机制的智能体的注意力。

 

图4: Noisy-TV 环境示意图


在面对具有噪声,和复杂动力学转移属性的环境中(即不能遍历所有状态-动作空间) ,如何进行高效的探索即是强化学习中的探索机制 (Exploration in RL) 所研究的核心问题。
一般 RL 算法希望,最大化利用收集好的经验,将其抽象为值函数,模型,策略等知识,在访问状态-动作空间尽可能少的情况下,得到近似最优的策略。在这样观点的指导下,许多研究者提出了各种各样的探索机制,下面我们通过对近年来的强化学习书籍,论文的调研,对 Exploration in RL 进行了一个粗略的划分,以期望能给对强化学习探索机制感兴趣的人士提供一个入门指南。


强化学习中的探索机制分类


如图5所示,我们可以将强化学习过程分为两个阶段:经验收集 (collect) 阶段和模型训练 (train) 阶段:

  • 在经验收集阶段,智能体根据当前的参数化策略直接给出动作 (policy gradient based method)或者根据学习到的最优值函数选择动作 (value based method),然后使用该动作与环境交互收集有用的经验。
  • 在模型训练阶段,智能体使用收集到的经验来更新当前策略或值函数,以获得回报更高的策略。
图5:强化学习中的经验收集 (collect) 阶段和模型训练 (train) 阶段


根据探索模块应用于RL算法的不同阶段,可以简单地将探索强化学习中的方法分为两大类,如图6所示:

  • 增强收集策略 (Augmented Collecting Strategy) 类
  • 增强训练策略 (Augmented Training Strategy) 类

增强收集策略类代表了经验收集阶段常用的各种不同的探索策略,我们将其进一步分为四个子类:

  • 动作选择扰动 (Action Selection Perturbation)
  • 动作选择指导 (Action Selection Guidance)
  • 状态选择指导 (State Selection Guidance)
  • 参数空间扰动 (Parameter Space Perturbation)

增强训练策略类代表了模型训练阶段常用的各种不同的探索策略,我们将其进一步分为七个子类:

  • 基于计数 (Count Based)
  • 基于预测 (Prediction Based)
  • 基于信息论 (Information Theory Based)
  • 熵 (Entropy Augmented)
  • 基于贝叶斯后验 (Bayesian Posterior Based)
  • 基于目标 (Goal Based)
  • 专家演示数据 ((Expert) Demo Data)
图6:强化学习中的探索机制概览图


我们对每个不同的类别提供了一些示例方法,如上面的蓝色方块所示,更完整的论文链接可以参考 awesome-exploration-rl。值得注意的是,这些类别之间可能存在重叠,并且一个算法同时包含其中多个类别的相关思想。 此外,关于从其他角度对强化学习中的探索机制的相关分析,可以参考综述  Tianpei Yang et al 和 Susan Amin et al.
为了推动强化学习社区的发展,降低入门门槛,真正将 Exploration in RL 领域的算法成果推广到其他各个强化学习子领域和应用问题,我们对强化学习中的探索机制的一些经典论文和前沿进展进行梳理,主要侧重于 NeurIPS, ICLR, ICML 等机器学习顶会中的相关工作,相关论文列表已整理好放置于 GitHub 平台,并将会持续更新,也欢迎更多贡献者一起参与。


结语


我们将继续在 Awesome Exploration RL 仓库中推进强化学习中的探索相关问题的研究进展,包括一些算法文章解读,并结合 DI-engine 推出一系列探索与利用平衡相关的基准测试和代码,助力各位对 RL 有兴趣的人成为真正的强化学习探索家。
同时也欢迎志同道合的小伙伴 Pull Request 相关工作,共同营造健康、可持续的学术生态。


参考资料


[1] Go-Explore: Adrien Ecoffet et al, 2021
[2] NoisyNet, Meire Fortunato et al, 2018
[3] DQN-PixelCNN: Marc G. Bellemare et al, 2016
[4] #Exploration Haoran Tang et al, 2017
[5] EX2: Justin Fu et al, 2017
[6] ICM: Deepak Pathak et al, 2018
[7] RND: Yuri Burda et al, 2018
[8] NGU: Adrià Puigdomènech Badia et al, 2020
[9] Agent57: Adrià Puigdomènech Badia et al, 2020
[10] VIME: Rein Houthooft et al, 2016
[11] EMI: Wang et al, 2019
[12] DIYAN: Benjamin Eysenbach et al, 2019
[13] SAC: Tuomas Haarnoja et al, 2018
[14] BootstrappedDQN: Ian Osband et al, 2016
[15] PSRL: Ian Osband et al, 2013
[16] HER Marcin Andrychowicz et al, 2017
[17] DQfD: Todd Hester et al, 2018
[18] R2D3: Caglar Gulcehre et al, 2019
[19] ] 

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

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

相关文章

How to Porsche Option Change Coding with PIWIS 3

How to Porsche Option Change Coding with PIWIS 3

KBPC5010W-ASEMI马达专用方桥KBPC5010W

编辑:ll KBPC5010W-ASEMI马达专用方桥KBPC5010W 型号:KBPC5010W 品牌:ASEMI 封装:KBPCW-4 正向电流:50A 反向电压:1000V 引脚数量:4 芯片个数:4 芯片尺寸:120MIL 漏电流:>10ua 恢复时间:ns 浪涌电流:300A 芯片材质:GPP硅芯片 正向电压:1.05V 封装尺寸:如图 特…

PE结构之RVA转换成FOA(3)

RVA转FOA 简介 PE文件有两种状态, 一种是在文件中的状态,另外一种是在内存中展开 若我们运行了一个PE文件且知道了某个全局变量的地址, 那么该如何通过这个全局变量地址来获得此变量在文件状态下的地址是什么呢? RVA(relative Virtual Address), 又称为相对虚拟偏移,简单来说就…

倒计时1天!计算巢软件免费试用中心发布,即刻报名!

免费、快速、开箱即用的云上应用新体验。免费、快速、开箱即用的云上应用新体验。计算巢即将重磅推出软件免费试用中心,为客户提供自动化交付的 ISV 软件试用版产品,包括 NebulaGraph、PingCAP、GitLab、EMQ、数云、用友等。计算巢充分利用快速部署的优势和云计算的弹性,实现…

微信上怎么设置每周二汽车限行限号提醒

对于很多人来说,每天手机不离手主要是为了接收各种各样的微信消息,无论是我们和孩子老师的交流还是和家人、同事们之间的交流都要用到微信。既然大多数人的都比较重视微信消息,所以有不少人都想要在手机微信上设置每周的汽车限行提醒,这样每周固定时间收到限号提醒,就不会…

学习:python异常

异常就是我们在写python时,经常看到的报错信息,例如:NameError TyperError ValueError 等 这些都是异常 异常会终止程序 SyntaxError 语法错误 NameError: name b is not defined变量名写错 IndentationError: unexpected indent缩进出错 ModuleNotFoundError第三方包未安装…

【深度学习】DNN房价预测

前言 我们使用深度学习网络实现波士顿房价预测,深度学习的目的就是寻找一个合适的函数输出我们想要的结果。深度学习实际上是机器学习领域中一个研究方向,深度学习的目标是让机器能够像人一样具有分析学习的能力,能够识别文字、图像、声音等数据。我认为深度学习与机器学习最…

视图(View)

视图家族有四个成员:View,ViewGroup,布局,控件 视图包括各类布局和控件,因为不管是布局还是控件,都是由视图基类View派生而来的,他们继承了View的所有属性。 视图组ViewGroup既是View的子类同时也是各种布局的基类,布局可以容纳其他视图,而控件不行,正是由于ViewGrou…

MAC【在线视频播放器】 ,300个电视直播,以及在线影视!

介绍 今天,我要来分享的是Mac下一款全能直播软件——在线视频播放器,目前作者已经更新至11.4版本。大家都知道,现在在网上收看一些直播是非常的难了,我曾经也为之苦恼过,后来发现了这么一款在线播放器才算解决了这一问题。这款在线播放器的开发者是Q群一位名叫“fosi”的大…

Makefile的使用

1 概要 软件的分层使软件的逻辑关系更清晰,但是也带来一个副作用,即Makefile也变得复杂了。道理显而易见:对于一个简单项目,如果所有文件都放在同一个文件夹内,Makefile写起来也会十分简单,但是我们不能一直停留在原始时代,当复杂项目的源文件按类型、功能、模块等分散到…

Codeforces Round #772 (Div. 2)

Codeforces Round #772 (Div. 2) VPA B C3min 12min 52min+4排名:rk3893 基准分:\(\color{ForestGreen}{1362}\) 从天选到天崩 A \(\color{Gray}{800}\)CF1635A Min Or Sum简要分析可知,其实答案就是对于所有数取或运算和(具体懒得管) 时间复杂度:\(O(n)\) int n,x; void w…

SMB登录事件排查经验分享

1. 概述1.1 案例先来看两张图: 看到这两张图的第一印象应该是这是一个成功的登陆,其类型为3,代表网络登陆,4624表示成功登陆,可能大部分人都是如此认为。 那么实际上呢?这里面是存在一定歧义的,今天给大家同步一下这里面的详细细节。1.2 原理当用户使用SMB 协议连接时,…

GET 和 POST详解

https://blog.csdn.net/qq_44204058/article/details/113984363 一、HTTP请求方法Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,…

leetcode 594. Longest Harmonious Subsequence 最长和谐子序列(简单).md

题目给我们一个数组,让我们找出最长的和谐子序列,和谐子序列就是序列中数组的最大最小差值均为1,这里只让我们求长度,而不需要返回具体的子序列。所以我们可以对数组进行排序,实际上只要找出来相差为1的两个数的总共出现个数就是一个和谐子序列长度了。一、题目大意 https…

2022DASCTF X SU 三月春季挑战赛 web

2022DASCTF——web1.ezpop 2.calc 3.upgdstoreezpop 给出了源码: <?phpclass crow {public $v1;public $v2;function eval() {echo new $this->v1($this->v2);}public function __invoke(){$this->v1->world();} }class fin {public $f1;public function __de…

SAAS市场不是“出身之争”,客户需求主导一切

“Salesforce中国区宣布解散”的消息,市场已经给出诸多分析和猜测。有意思的是,每当有外企中国业务受阻,市场就会有一波声音出来,认为这是外企在中国水土不服。这次也不例外,有一种观点认为外国软件不适合中国国情,未来将是中国SAAS厂商的机遇。 抛开现象看本质,抛开推测…

使用time.Time数据类型获取时间报错

报错类型:Error 1292: Incorrect datetime value: 0000-00-00 for column created_at at row 1 在添加用户到数据库时,使用的字段created_at,类型为time.Time ,无法正确的获取到当前数据点的报错记录,如下图所示: 解决方法与解决过程: 因为我这是学习别人的项目,所以拥…

今日内容之 CSS盒子模型和JS基础知识数据类型

CSS盒子模型所有的标签都可以看成是一个快递盒 1.margin(外边距):标签之间的距离 两个快递盒之间的距离 2.border(边框):标签的边框 快递盒的厚度 3.padding(内边距):内部文本与边框的距离 盒子内物…

由浇花工具开始物联网平台之开始前言篇【1】

在2020年时,突然有个想法,就是做个浇花工具,因为平时喜欢养花,有时忘记浇花,有时感觉手动浇花太麻烦,所以做个这个小玩意,是用.NET 开发的WinForm小程序,来控制单片机,带动水泵浇花,还可以测量干燥度自动浇花。现在突然又想起这事,那就由这个浇花工具开始我的物联网…