【转载】 DeepMind 提出元梯度强化学习算法,显著提高大规模深度强化学习应用的性能
原文地址:
https://www.jiqizhixin.com/articles/053104

2018/05/31 12:38
=============================================================
DeepMind 提出元梯度强化学习算法,显著提高大规模深度强化学习应用的性能
强化学习(RL)的核心目标是优化智能体的回报(累积奖励)。一般通过预测和控制相结合的方法来实现这一目标。预测的子任务是估计价值函数,即在任何给定状态下的预期回报。理想情况下,这可以通过朝着真值函数(true value function)的方向不断更新近似价值函数来实现。控制的子任务是优化智能体选择动作的策略,以最大化价值函数。理想情况下,策略只会在使真值函数增加的方向上更新。然而,真值函数是未知的,因此,对于预测和控制,我们需要将采样回报作为代理(proxy)。强化学习算法家族 [Sutton,1988;Rummery 和 Niranjan,1994;van Seijen 等,2009;Sutton 和 Barto,2018] 包括多种最先进的深度强化学习算法 [Mnih 等,2015;van Hasselt 等,2016;Harutyunyan 等,2016;Hessel 等,2018;Espeholt 等,2018],它们的区别在于对回报的不同设定。
折扣因子 γ 决定了回报的时间尺度。接近 1 的折现因子更关注长期的累计回报,而接近 0 的折现因子优先考虑短期奖励,更关注短期目标。即使在明显需要关注长期回报的问题中,我们也经常观察到使用小于 1 的折扣因子可以获得更好的效果 [Prokhorov 和 Wunsch,1997],这一现象在学习的早期体现得尤为明显。众所周知,许多算法在折扣因子较小时收敛速度较快 [Bertsekas 和 Tsitsiklis,1996],但过小的折扣因子可能会导致过度短视的高度次优策略。在实践中,我们可以首先对短期目标进行优化,例如首先用 γ= 0 进行优化,然后在学习取得一定效果后再不断增加折扣 [Prokhorov and Wunsch,1997]。
我们同样可以在不同的时间段设定不同的回报。一个 n 步的回报需要考虑 n 步中奖励的累积,然后添加第 n 个时间步时的价值函数。λ- 回报 [Sutton,1988;Sutton 和 Barto,2018] 是 n 步回报的几何加权组合。在任何一种情况下,元参数 n 或 λ 对算法的性能都很重要,因为他们影响到偏差和方差之间的权衡。许多研究人员对如何自动选择这些参数进行了探索 [Kearns 和 Singh,2000,Downey 和 Sanner,2010,Konidaris 等,2011,White and White,2016]。
还有很多其他的设计可以在回报中体现出来,包括离策略修正 [Espeholt 等,2018,Munos 等,2016]、目标网络 [Mnih 等,2015]、对特定状态的强调 [Sutton 等,2016]、奖励剪裁 [Mnih 等,2013],甚至奖励本身 [Randløv 和 Alstrøm,1998;Singh 等,2005;Zheng 等,2018]。
本论文主要关注强化学习的一个基本问题:便于智能体最大化回报的最佳回报形式是什么?具体而言,本论文作者提出通过将回报函数当作包含可调整元参数 η 的参数函数来学习,例如折扣因子 γ 或 bootstrapping 参数 λ [Sutton,1988]。在智能体与环境的交互中,元参数 η 可以在线进行调整,使得回报既能适应具体问题,又能随着时间动态调整以适应不断变化的学习环境。研究者推导出一种实用的、基于梯度的元学习算法,实验表明它可以显著提高大规模深度强化学习应用的性能。

图 1:在各自的马尔可夫奖励过程(顶部)中,状态依赖可调整参数(a)bootstrapping 参数 λ 或(b)折扣因子 γ 的元梯度学习结果图示。在底部显示的每个子图中,第一幅图展示了元参数 γ 或 λ 在训练过程中的变化情况(10 个种子下的平均值 - 阴影区域覆盖了 20%-80%)。第二幅图显示了每种状态下 γ 或 λ 的最终值,分别指奇 / 偶状态的高 / 低值(小提琴图显示不同种子的分布情况)。

表 1:与不使用元学习的基线 IMPALA 算法相比,元学习折扣参数 γ、时序差分学习参数 λ,或学习二者的结果。研究者使用的是 [Espeholt et al,2018] 最初报告的折扣因子 γ= 0.99 以及调整后的折扣因子 γ= 0.995(见附录 C); 为了公平比较,研究者将元目标中的交叉验证折扣因子 γ’设置为相同的值。
论文:Meta-Gradient Reinforcement Learning(元梯度强化学习)

论文链接:https://arxiv.org/abs/1805.09801
摘要:强化学习算法的目标是估计和 / 或优化价值函数。然而与监督学习不同,强化学习中没有可以提供真值函数的教师或权威。相反,大多数强化学习算法估计和 / 或优化价值函数的代理。该代理通常基于对真值函数的采样和 bootstrapped 逼近,即回报。对回报的不同选择是决定算法本质的主要因素,包括未来奖励的折扣因子、何时以及如何设定奖励,甚至奖励本身的性质。众所周知,这些决策对强化学习算法的整体成功至关重要。我们讨论了一种基于梯度的元学习算法,它能够在线适应回报的本质,同时进行与环境的互动和学习。我们将该算法应用于超过 2 亿帧 Atari 2600 环境中的 57 场比赛,结果表明我们的算法取得了目前最好的性能。
【转载】 DeepMind 提出元梯度强化学习算法,显著提高大规模深度强化学习应用的性能的更多相关文章
- 强化学习 车杆游戏 DQN 深度强化学习 Demo
网上搜寻到的代码,亲测比较好用,分享如下. import gym import time env = gym.make('CartPole-v0') # 获得游戏环境 observation = en ...
- 深度强化学习(DRL)专栏开篇
2015年,DeepMind团队在Nature杂志上发表了一篇文章名为"Human-level control through deep reinforcement learning&quo ...
- 【转载】 “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
原文地址: https://yq.aliyun.com/articles/400366 本文来自AI新媒体量子位(QbitAI) ------------------------------- ...
- 提升学习算法简述:AdaBoost, GBDT和XGBoost
1. 历史及演进 提升学习算法,又常常被称为Boosting,其主要思想是集成多个弱分类器,然后线性组合成为强分类器.为什么弱分类算法可以通过线性组合形成强分类算法?其实这是有一定的理论基础的.198 ...
- 深度强化学习资料(视频+PPT+PDF下载)
https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...
- 深度强化学习(DRL)专栏(一)
目录: 1. 引言 专栏知识结构 从AlphaGo看深度强化学习 2. 强化学习基础知识 强化学习问题 马尔科夫决策过程 最优价值函数和贝尔曼方程 3. 有模型的强化学习方法 价值迭代 策略迭代 4. ...
- 深度强化学习中稀疏奖励问题Sparse Reward
Sparse Reward 推荐资料 <深度强化学习中稀疏奖励问题研究综述>1 李宏毅深度强化学习Sparse Reward4 强化学习算法在被引入深度神经网络后,对大量样本的需求更加 ...
- 5G网络的深度强化学习:联合波束成形,功率控制和干扰协调
摘要:第五代无线通信(5G)支持大幅增加流量和数据速率,并提高语音呼叫的可靠性.在5G无线网络中共同优化波束成形,功率控制和干扰协调以增强最终用户的通信性能是一项重大挑战.在本文中,我们制定波束形成, ...
- 【PyTorch深度学习】学习笔记之PyTorch与深度学习
第1章 PyTorch与深度学习 深度学习的应用 接近人类水平的图像分类 接近人类水平的语音识别 机器翻译 自动驾驶汽车 Siri.Google语音和Alexa在最近几年更加准确 日本农民的黄瓜智能分 ...
- 强化学习(五)—— 策略梯度及reinforce算法
1 概述 在该系列上一篇中介绍的基于价值的深度强化学习方法有它自身的缺点,主要有以下三点: 1)基于价值的强化学习无法很好的处理连续空间的动作问题,或者时高维度的离散动作空间,因为通过价值更新策略时是 ...
随机推荐
- 流程控制之for循环结构
1.for循环使用场景 1. 需要反复.重复执行的任务 2. 如创建100个用户,打印一百遍 chaoge666.插入数据库一万条数据等. 2.for语法 for 变量名 in 取值列表 do 每次循 ...
- Selenium模块的使用(一)
简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器, 完全模拟浏览器的操作,比 ...
- 题目:SHMIP The subglacial hydrology model intercomparison Project
SHMIP(冰下水文模型比较计划)是一个致力于解决冰下水文多种理论方法问题的项目.该计划通过构建一系列综合模拟实验,并对运行这些模拟的各参与模型的结果进行比较,以达到其目标.这将有助于潜在的模型用户更 ...
- 记一次 .NET某工厂报警监控设置 崩溃分析
一:背景 1. 讲故事 前些天有位朋友在微信上丢了一个崩溃的dump给我,让我帮忙看下为什么出现了崩溃,在 Windows 的事件查看器上显示的是经典的 访问违例 ,即 c0000005 错误码,不管 ...
- Docker入门系列之四:Docker镜像
在本文中,您将学习如何加快Docker构建周期并创建轻量级镜像.遵循之前的文章中的食物隐喻,我们将沙拉隐喻为Docker镜像,同时减少Docker镜像的数量. 在本系列的第3部分中,我们介绍了十几个D ...
- python xlrd excel读取操作
import xlrd wb = xlrd.open_workbook("test.xlsx") sheet1 = wb.sheets()[1] # 通过索引顺序获取 #table ...
- nginx中多个server块共用upstream会相互影响吗
背景 nginx中经常有这样的场景,多个server块共用一个域名. 如:upstream有2个以上的域名,nginx配置两个server块,共用一个upstream配置. 那么,如果其中一个域名发生 ...
- IP数据报分片问题
为什么要分片? 很多时候,由于单个数据太大,超过了MTU的限定值,就要对数据包进行分组,即切割并分别发送. 我们要解决以下几个问题: 1.顺序问题.接收方可以按照原来的顺序重组这些分片,并能知道这些分 ...
- CLR via C# 笔记 -- 数组(16)
1. 数组隐式继承 System.Array,所以数组是引用类型.变量包含的是对数组的引用,而不是包含数据本身的元素. 2. 数组协变性.将数组从一种类型转换为另一种类型. string[] sa = ...
- idea远程debug(物理机、docker、k8s)
IDEA远程DEBUG 1:物理机部署的Springboot项目远程DEBUG 1.1:idea配置 点击"Edit Configurations",再点击+,选择Remote, ...