原文地址:

https://www.jiqizhixin.com/articles/053104

李亚洲翻译

2018/05/31 12:38

Pedro 路参与

=============================================================

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 提出元梯度强化学习算法,显著提高大规模深度强化学习应用的性能的更多相关文章

  1. 强化学习 车杆游戏 DQN 深度强化学习 Demo

    网上搜寻到的代码,亲测比较好用,分享如下. import gym import time env = gym.make('CartPole-v0') # 获得游戏环境 observation = en ...

  2. 深度强化学习(DRL)专栏开篇

    2015年,DeepMind团队在Nature杂志上发表了一篇文章名为"Human-level control through deep reinforcement learning&quo ...

  3. 【转载】 “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识

    原文地址: https://yq.aliyun.com/articles/400366 本文来自AI新媒体量子位(QbitAI)     ------------------------------- ...

  4. 提升学习算法简述:AdaBoost, GBDT和XGBoost

    1. 历史及演进 提升学习算法,又常常被称为Boosting,其主要思想是集成多个弱分类器,然后线性组合成为强分类器.为什么弱分类算法可以通过线性组合形成强分类算法?其实这是有一定的理论基础的.198 ...

  5. 深度强化学习资料(视频+PPT+PDF下载)

    https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...

  6. 深度强化学习(DRL)专栏(一)

    目录: 1. 引言 专栏知识结构 从AlphaGo看深度强化学习 2. 强化学习基础知识 强化学习问题 马尔科夫决策过程 最优价值函数和贝尔曼方程 3. 有模型的强化学习方法 价值迭代 策略迭代 4. ...

  7. 深度强化学习中稀疏奖励问题Sparse Reward

    Sparse Reward 推荐资料 <深度强化学习中稀疏奖励问题研究综述>1 李宏毅深度强化学习Sparse Reward4 ​ 强化学习算法在被引入深度神经网络后,对大量样本的需求更加 ...

  8. 5G网络的深度强化学习:联合波束成形,功率控制和干扰协调

    摘要:第五代无线通信(5G)支持大幅增加流量和数据速率,并提高语音呼叫的可靠性.在5G无线网络中共同优化波束成形,功率控制和干扰协调以增强最终用户的通信性能是一项重大挑战.在本文中,我们制定波束形成, ...

  9. 【PyTorch深度学习】学习笔记之PyTorch与深度学习

    第1章 PyTorch与深度学习 深度学习的应用 接近人类水平的图像分类 接近人类水平的语音识别 机器翻译 自动驾驶汽车 Siri.Google语音和Alexa在最近几年更加准确 日本农民的黄瓜智能分 ...

  10. 强化学习(五)—— 策略梯度及reinforce算法

    1 概述 在该系列上一篇中介绍的基于价值的深度强化学习方法有它自身的缺点,主要有以下三点: 1)基于价值的强化学习无法很好的处理连续空间的动作问题,或者时高维度的离散动作空间,因为通过价值更新策略时是 ...

随机推荐

  1. == 和 equals 的区别是什么

    == : 它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象.(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址) equals() : 它的作用也是判断两个 ...

  2. Docker入门系列之三:十二个Dockerfile指令

    本篇文章是关于Dockerfiles的,这是Docker系列文章的第三部分.如果您还没有读过第一部分,请先阅读它,您可以从全新的角度了解Docker容器概念. 第二部分是Docker生态系统的简要介绍 ...

  3. 结构型模式(Structural Pattern)

    模式介绍 结构型模式(Structural Pattern)的主要目的就是将不同的类和对象组合在一起,形成更大或者更复杂的结构体.该模式并不是简单地将这些类或对象摆放在一起,而是要提供它们之间的关联方 ...

  4. Jenkins从github拉取项目,github有更新,自动进行构建,实现自动集成

    使用git之前的准备工作 1. 搭建Jenkins的机器上,有安装git,配置git的安装地址,Jenkins配置Git的安装地址 2. Global Tool Configuration - > ...

  5. k8s中的亲和性、污点与容忍(调度到不同的宿主机)

    本文章并未经过严格实践,如有错误,辛苦指出. 背景 服务需要多副本,来保证高可靠.多活. 那么问题来了,假如这些副本都在同一个宿主机上,或者同一个交换机下-宿主机.交换机其中一项坏掉了,那多副本还有什 ...

  6. gitlab角色与权限

    用户在项目中的角色 Guest:访客.可以创建issue.发表评论,不能读写版本库.(就是看不了代码-) Reporter:Git项目测试人员.可以克隆代码,不能提交.QA.PM可以赋予这个权限. D ...

  7. Linux 中内核与应用程序的交互方式:netlink

    netlink介绍 一般来说用户空间和内核空间的通信方式有很多种,而Netlink可以实现双工通信. Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应 ...

  8. 嵌入式Linux如何设置获取uboot参数

    --- title: 嵌入式Linux如何设置获取uboot参数 EntryName: embeded-linux-debug-get-and-set-u-boot-envarg date: 2020 ...

  9. QT学习:08 QString

    --- title: framework-cpp-qt-08-QString EntryName: framework-cpp-qt-08-QString date: 2020-04-16 15:36 ...

  10. C#去除时间格式化之后中间的T字母

    需求是这样的, 前后端传参,然后后端序列化把字符串存在数据库. 然后发现时间类型的字段,序列化之后 ,有个字母T, DateTime dt = DateTime.Parse("2024-05 ...