前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入浅出解读"多巴胺(Dopamine)论文"、环境配置和实例分析

深入浅出解读"多巴胺(Dopamine)论文"、环境配置和实例分析

作者头像
深度强化学习实验室
发布2019-11-20 22:18:09
1.2K0
发布2019-11-20 22:18:09
举报

多巴胺:Dopamine

论文的首页明显告诉我们,这是一篇Google出的论文(所以值得一读),该文作者提出了一种新的深度强化学习研究框架: 多巴胺(Dopamine),旨在于丰富DRL的多样性,该框架是一个开源的,基于tensorflow平台的的最先进的智能体实现平台,并通过深入研究RL中不同研究目标的分类来补充这一产品。虽然并非详尽无遗,但分析强调了该领域研究的异质性以及框架的价值。

Introduction

目前很多强化学习的研究主要集中在特定领域的决策,比如视觉识别后的控制(atari)等,由于复杂的相互作用的转变,为深度RL研究编写可重复使用的软件也变得更具挑战性。首先,写一个智能体需要一个architecure,比如用openai的baseline实现DQN,它的智能体由6个模块组成,其次,现在有很多算法可供选择,因此在一个实现中全面实现通常需要牺牲简单性。 最重要的是深度RL研究的日益多样化使得很难预见下一个研究项目可能具备的软件需求。

这篇文章提出的多巴胺的目的是为深度强化学习提供一个基础研究,它强调的是紧凑,而不是全面,第一个版本由12个python文件,这些为Arcade学习环境提供了最先进的,基于价值的智能体的测试实现。该代码旨在为该领域的新手容易理解,同时为所有智能体提供交互式笔记本,训练模型和可下载的训练数据,以及包括以前发布的学习曲线的源。

同时作者确定了不同的研究目标,并讨论了支持这些目标的代码的期望:architecture research, comprehensive studies, visualization, algorithmic research, and instruction,并在设计Dopamine时考虑了最后两个目标,他们的研究只在于在深层RL框架生态系统中扮演着独特的角色。

深度强化学习的软件研究

深度学习社区现已确定了许多对其研究目标至关重要的操作:组件模块化,自动区分和可视化等,由于强化学习是一个比较新的领域,导致在对软件的共识一直很elusive(难懂的;难捉摸的),该文不会详尽的去解释,但强调了该研究自然属性的多样性。为了能够对重点突出研究,作者仅从下面两个方面研究:

  1. 深度强化学习的基础研究。
  2. 应用于或评估模拟环境。

同时,该文的研究环境为:Arcade Learning Environment(该环境是一个为很多研究者提供实现atari游戏智能体的简单的框架:Arcade Learning Environment,

case研究

所谓的架构研究涉及组件之间的交互,包括网络拓扑,以创建深度RL代理。 DQN在使用代理体系结构方面具有创新性,包括目标网络,重放内存和Atari特定的预处理。 从那时起,如果没有预料到代理由多个交互组件组成就变得司空见惯了,通常情况下从以下三个方面着手:

  • Algorithmic research 架构研究
  • Comprehensive studies
  • Visualization

不同目标的不同软件的研究从下面四个角度开始

  • Comprehensive studies
  • Architecture research
  • Algorithmic research
  • Conclusions.

多巴胺(Dopamine)

在多巴胺的设计中,Google 设计它满足了两个条件:自给自足且紧凑、可靠且可重复:

自给自足且紧凑可以帮助研究者实现一个简单的框架,并且可以集中进行算法研究,同时可靠则保证了实验、算法的结果具有trust。

多巴胺的整体结构设计

其中:蓝盒子是软件组件。 黄色框表示组成软件组件的文件名; 有向箭头表示类继承,而括号中的数字表示非注释Python行的数量。

  • Runner类管理代理和ALE之间的交互(例如,采取步骤和接收观察)以及簿记(例如,分别通过检查指针和记录器进行检查点和记录)。
  • Checkpointer负责定期保存实验状态,使故障后能够正常恢复,并重新学习重量。
  • 记录器负责将实验统计(例如,累积的培训或评估奖励)保存到磁盘以进行可视化。
  • Colab提供交互式笔记本,以便于这些统计数据的可视化。

可靠且可重复:

作者为所有代码库提供了一整套测试,代码覆盖率超过98%。除了帮助确保代码的正确性之外,这些测试还提供了另一种形式的文档,补充了随框架提供的常规文档和交互式笔记本。

多巴胺使用gin-config 【config过程】来配置不同的模块。 Gin-config是参数注入的简单方案,即动态更改方法的默认参数。 在多巴胺中,在单个文件中指定实验的所有参数。 下面代码显示了默认DQN代理设置的配置示例(附录D中提供了所有代理的完整gin-config文件)

基准线对比

作者在探索的目的不是提供一组最佳的超参数,而是提供一致的集合作为基线,同时促进超参数探索的过程。下图是实验的数据显示:

同时作者也将已发布设置的结果与默认设置进行比较(下图),平均超过5次运行。 在每个游戏中,已发布和默认设置之间的y-scales是不同的; 这主要是因为默认设置中使用了粘滞action。

重新审视ARCADE学习环境:一个测试案例

Episode终止

当一个人正常停止游戏时,ALE认为一个episode完成:当他们完成游戏或者用尽生命时。 将这种终止条件称为“游戏结束”。 Mnih等引入了一种称为生命损失的启发式方法,当玩家失去生命时,它会在重放记忆中添加人工插曲边界。 在最近的文献中已经使用了episode终止的两种定义。 在多巴胺中运行此实验包括修改以下gin-config选项:

下图显示了两种情况下报告的性能差异。虽然episode表明,Life Loss启发式技术可以提高一些简单游戏的性能,但是Bellemare等人指出,它阻碍了其他人的表现,特别是因为智能体无法了解失去生命的真实后果。根据Machado等人的指南,在默认设置中禁用了Life Loss启发式。

测量训练数据和总结学习性能

多巴胺支持两种运行方式:train和train_and_eval。 前者仅测量训练期间的平均分数,而后者则与评估运行相交学习。

粘性动作影响在智能体上的性能

原始ALE具有确定性转换,其奖励可以记忆行动序列以获得高分的代理。为缓解此问题,最新版本的ALE实现了粘性操作。粘性动作使用粘性参数ς,这是环境执行代理程序之前操作的概率,而不是代理程序刚刚选择的那种 - 有效地实现了一种动作形式。 在多巴胺中运行此实验包括修改以下gin-config选项:

下图演示了使用或不使用粘性操作运行时性能上的差异。虽然在某些情况下(Rainbow播放SPACE INVADERS)粘性动作似乎可以提高性能,但它们通常会降低性能。同时平均分数学习曲线(rainbow超越DQN); 因此,并根据Machado等人提出的建议,多普胺默认启用粘滞动作。


环境安装

Ubuntu

1、设置初始化虚拟环境

这将创建一个名为dopamine-env的目录,其中包含虚拟环境。 最后一个命令激活环境。

2、将依赖项安装到多巴胺。如果无法访问GPU,请在下面的行中将tensorflow-gpu替换为tensorflow(有关详细信息,请参阅Tensorflow说明)。

注:在安装过程中,您可以安全地忽略以下错误消息:tensorflow 1.10.1要求numpy <= 1.14.5,> = 1.13.3,但是您将拥有不兼容的numpy 1.15.1。

3、下载多巴胺源文件

Mac OS

同样的道理,和以上以上的过程一样,代码为:

测试

在获得源后便是测试初始化可以成功运行,通过以下命令:

标准Atari 2600实验的切入点是dopamine/atari/train.py。 要运行基本DQN代理,

默认情况下,这将启动一个持续2亿帧的实验。 命令行界面将输出有关最新训练集的统计信息:

通常情况下,多巴胺通过gin配置是非常简单的

安装依赖包

安装多巴胺的一种简单的替代方法是作为Python库:

从root目录下,通过以下命令测试:


实例创建

在本节中,将演示如何通过继承其中一个提供的代理来创建新代理。 此代码仅用于说明目的。

首先设置默认信息

继续开始代部分:

此代码段提供了一个交互式显示,用户可以根据训练基线训练和可视化代理的性能,如下所示:

注:其中import seabore as sns 是个可视化工具

最终结果如图:

至此,以上是对多巴胺的部分解读,关于更多的c51等请自行阅读和安装。部分代码请学习github源码,受能力有限,文中难免有错误之处,还望大家多提意见、以便做的更好!

参考文献:

1、DOPAMINE: A RESEARCH FRAMEWORK FOR DEEP REINFORCEMENT LEARNING

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度强化学习实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Introduction
  • 深度强化学习的软件研究
  • case研究
  • 多巴胺(Dopamine)
  • 多巴胺的整体结构设计
  • 可靠且可重复:
  • 基准线对比
    • 测量训练数据和总结学习性能
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档