谷歌重磅开源强化学习框架Dopamine吊打OpenAI

近日OpenAI在Dota 2上的表现,让强化学习又火了一把,但是 OpenAI 的强化学习训练环境 OpenAI Gym 却屡遭抱怨,比如不太稳定、更新不够及时等。今日,谷歌推出了一款全新的开源强化学习框架 Dopamine,该框架基于 TensorFlow,主打灵活性、稳定性、复现性,能够提供快速的基准测试。

配套开源的还包括一个专用于视频游戏训练结果的平台,以及四种不同的机器学习模型:DQN、C51、简化版的 Rainbow 智能体和 IQN(Implicit Quantile Network),相比OpenAI的强化学习基准,Dopamine更多关注off-policy方法。 为了实现可重复性,Github 代码包括 Arcade Learning Environment 支持的全部 60 个游戏的完整测试和训练代码,并遵循标准化经验评估结果的最佳实践。 除此之外,谷歌还推出了一个网站,允许开发人员将训练中的多个智能体的运行情况快速可视化。

强化学习(RL)领域的研究在过去几年中取得了重大进展,这些进展让相关代理能够以超人类水平玩游戏——包括DeepMind的DQN(AlphaGo和AlphaGo Zero)和Open AI Five。具体地说,在DQN中引入重放记忆可以利用以前的代理经验,大规模分布式训练可以在多个工作进程之间分配学习任务,分布式方法让代理对完整的分布(而不只是期望值)进行建模,从而实现更完整的学习。这方面的进展非常重要,因为相关算法还可以应用到其他领域,例如机器人技术。

通常,这类进展要求在设计方面进行快速迭代——通常没有明确的方向——并颠覆已有的方法结构。然而,大多数现有的RL框架并不会提供灵活性和稳定性组合,让研究人员能够有效地迭代RL方法,发现新的但可能没有直接明显好处的研究方向。此外,在现有框架中重现结果通常太耗时,从而导致科学的可重现性问题。

今天,我们推出了一个全新的基于Tensorflow的框架——Dopamine,旨在为RL研究人员提供灵活性、稳定性和可重复性。这个框架受大脑奖励动机行为主要组件的启发,并反映了神经科学与强化学习研究之间强的历史联系,旨在实现可以推动激进发现的投机性研究。该框架还提供了一组解释如何使用框架的Colab(https://github.com/google/dopamine/blob/master/dopamine/colab/README.md)。

易用性

清晰和简洁是这个框架的两个关键设计考虑因素。我们提供的代码非常紧凑(大约15个Python文件),并且有详细的文档。这是基于Arcade学习环境(一个成熟的、易于理解的基准)和四个基于值的代理DQN、C51、Rainbow代理的简化版本以及隐式分位数网络代理(刚在上个月的国际机器学习大会上发布)实现的。我们希望这种简洁能够让研究人员轻松了解代理的内部运作并快速尝试新的想法。

可重现性

我们非常关注可重现性在强化学习研究中的作用。我们的代码通过了完整的测试覆盖,这些测试用例也可作为某种形式的文档使用。此外,我们的实验框架遵循了Machado等人给出的使用Arcade学习环境标准化进行经验评估的建议。

基准测试

对于研究人员来说,能够根据已有方法快速对想法进行基准测试是非常重要的。因此,我们以Python pickle文件(用于使用我们的框架训练的代理)和JSON数据文件(用于与其他框架训练的代理进行比较)的形式提供了受Arcade学习环境支持的60个游戏的完整训练数据。我们还提供了一个网站,可以在上面快速查看所有的训练运行情况。下图展示了我们的4个代理在Seaquest上的训练运行情况。

x轴表示迭代,其中每次迭代是100万个游戏帧(4.5小时的实时游戏);y轴是每场比赛获得的平均分数;阴影区域显示来自5次独立运行的置信区间。

我们还提供这些代理训练的深度网络、原始统计日志以及Tensorflow事件文件。这些都可以从我们的网站上下载。

开源项目地址:https://github.com/google/dopamine

可视化网站:https://google.github.io/dopamine/baselines/plots.html

相关下载链接:https://github.com/google/dopamine/tree/master/docs#downloads

想了解更多关于强化学习的内容,请参看下面的文章:

深度强化学习劝退文泡沫破裂之后,强化学习路在何方?

查看英文原文:https://ai.googleblog.com/2018/08/introducing-new-framework-for-flexible.html

谷歌重磅开源强化学习框架Dopamine吊打OpenAI的更多相关文章

  1. 谷歌推出新型强化学习框架Dopamine

    今日,谷歌发布博客介绍其最新推出的强化学习新框架 Dopamine,该框架基于 TensorFlow,可提供灵活性.稳定性.复现性,以及快速的基准测试. GitHub repo:https://git ...

  2. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架

    20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...

  3. 推荐GitHub上10 个开源深度学习框架

    推荐GitHub上10 个开源深度学习框架   日前,Google 开源了 TensorFlow(GitHub),此举在深度学习领域影响巨大,因为 Google 在人工智能领域的研发成绩斐然,有着雄厚 ...

  4. ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四

    [导读]Kears作者François Chollet刚刚在Twitter贴出最近三个月在arXiv提到的深度学习框架,TensorFlow不出意外排名第一,Keras排名第二.随后是Caffe.Py ...

  5. Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

    http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...

  6. 【强化学习】百度云BCC openai gym 环境配置

    openai gym是RL算法的测试床.为了直观和便于调试,我们需要可视化界面.然而远程服务器使用openGL的问题比较棘手,这篇博客记录在百度云BCC上配置openai gym环境的注意事项. 按照 ...

  7. GitHub 上 57 款最流行的开源深度学习项目

    转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...

  8. GitHub 上 57 款最流行的开源深度学习项目【转】

    GitHub 上 57 款最流行的开源深度学习项目[转] 2017-02-19 20:09 334人阅读 评论(0) 收藏 举报 分类: deeplearning(28) from: https:// ...

  9. TensorFlow与主流深度学习框架对比

    引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年 ...

随机推荐

  1. 【托业】【新托业TOEIC新题型真题】学习笔记4-题库一->P7

    --------------------------------------单词-------------------------------------- reimbursement n. 报销:偿 ...

  2. 【雅思】【写作】【大作文】Discuss both views and give your own opinion

    •Discuss both views and give your own opinion •    • •Agree or disagree •Discuss both views •Report ...

  3. mysql 数据库操作 数据库的增删改查

    一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MyS ...

  4. IE8“开发人员工具”(下)

    浏览器模式 说白了,就是让用户选择当前页面用何种IE版本去渲染. 文本模式 说起“文本模式”这个名词,这又要回到渲染页面的3种模式了:诡异模式(Quirks mode,也有翻译为兼容模式.怪异模式的) ...

  5. Redis入门到高可用(四)—— Redis的五种数据结构的内部编码

    Redis的五种数据结构的内部编码

  6. mac chrome 浏览器开启允许跨域

    在控制台输入下面代码: open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir ...

  7. js将一位数组分割成每三个一组

    var data = [   {name:'Liming',age:'25'},   {name:'Liming',age:'25'},   {name:'Liming',age:'25'},   { ...

  8. Python 全栈开发三 python基础 条件与循环

    一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假 ...

  9. 【LeetCode每天一题】Search in Rotated Sorted Array(在旋转数组中搜索)

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., ...

  10. [LeetCode] 35. Search Insert Position_Easy tag: Binary Search

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...