谷歌重磅开源强化学习框架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. 什么是BI

    最近在人人网上看到一篇非常好的文章,转载分享给大家. 原文链接:http://blog.renren.com/share/252753054/5619469778/3其文谈对BI的理解,杜绝“假”“大 ...

  2. c#获取Amr文件的时长(毫秒)亲测有效

    /// <summary> /// c#获取Amr文件的时长(毫秒) /// </summary> /// <param name="fileName" ...

  3. [vue]vue路由篇vue-router

    spa单页开发及vue-router基础: https://www.cnblogs.com/iiiiiher/p/9034496.html url两种传参方式 query: $route.query ...

  4. [vue]通过watch实现数据双向绑定

    modal:单向绑定 <head> <meta charset="UTF-8"> <title>test</title> <s ...

  5. Django 框架 Form组件

    一.Form组件简介 Form组件是django中一个非常强大的组件,在处理服务端和前端的交互上大大的提高了开发人员的开发速度. Form组件的功能: 用于处理前后端的数据认证(显示错误信息) 用于生 ...

  6. 项目发布脚本-nodejs

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin clear printf &q ...

  7. SQL简单操作

    删除表数据,保留表结构: delete from employee 将删除所有的记录 delete from employee where lastname = 'May' 这条语句是从emplyee ...

  8. Hibernate框架第二天

    ### Hibernate的持久化类 ### ---------- **什么是持久化类** 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为 ...

  9. BCB6.0 清除TPanel面板上的所有控件

    方法一: panel->ComponentCount属性获得panel所拥有的控件个数 panel->Components[i]属性获得某一个控件 delete panel->Com ...

  10. c#之函数

    1.函数 .函数 /// <summary> /// main /// 主函数(主方法)控制台的输出输入控制函数 /// </summary> /// <param na ...