迷雾探险12 | RL的开源库

推荐RL开源库

参考:https://www.zhihu.com/question/49230922

  • 主流开源强化学习框架推荐如下。提供的强化学习算法较为全面,如Q-learning、Sarsa、DQN、PG、DPG、DDPG、PPO等算法。
  1. OpenAI提供的Baselines:openai/baselines 6.6k stars(Gym环境)
  2. 百度提供的PARL:PaddlePaddle/PARL 0.2k stars 集成PaddlePaddle (Gym环境)
  3. 谷歌提供的Dopamine:google/dopamine 7.0k stars 集成TensorFlow(Gym环境)
  4. DeepMind提供的TRFL:deepmind/trfl 2.2k stars(Gym环境)
  5. 伯克利提供的RLlab:rll/rllab 2.0k stars(一个类似于Gym的工具包)
  6. reinforceio提供的Tensorforce:reinforceio/tensorforce 1.2k stars(Gym环境)
  7. Intel提供的Coach:NervanaSystems/coach 1.1k stars(Gym环境)
  8. keras-rl:keras-rl/keras-rl 3.4k stars 集成深度学习库Keras(Gym环境)

RL库简介

Baseline

  • 基于 OpenAI Gym 和 TensorFlow 的实现了经典的(深度) 强化学习算法
  • OpenAI、DeepMind,伯克利三个可以说是强化学习的推动者,其中OpenAI 为很多算法都写了baselines,放在github库中供开发者学习参考。
  • 提供两个基准测试
    (1)Example 1. PPO with MuJoCo Humanoid (1M timesteps)
    (2)Example 2. DQN on Atari (10M timesteps)
  • 实现多个算法
    • A2C、ACER、ACKTR、DDPG、DQN、GAIL、HER、PPO1 (obsolete version, left here temporarily)、PPO2、TRPO

PARL

  • 在成为NIPS2018的AI for Prosthetics Challenget挑战赛第一名后,百度在2019年1月推出的一个基于PaddlePaddle的灵活高效的强化学习框架。
  • 特点:
    (1)Reproducible:可以稳定地再现许多有影响力的强化学习算法的结果
    (2)Large Scale:能够支持数千个CPU和多GPU的高性能并行培训
    (3)Reusable:存储库中提供的算法可以通过定义转发网络直接适应新任务,并且将自动构建培训机制。
    (4)Extensible:通过在框架中继承抽象类来快速构建新算法。
  • 在agent的基础上抽象了Model、Algrithm、Agent,方便递归构建agent。
  • 目前实现的算法:QuickStart、DQN、DDPG、PPO、Winning Solution for NIPS2018: AI for Prosthetics Challenge

Dopamine

  • 谷歌早2018年8月推出了一款全新的开源强化学习框架 Dopamine,该框架基于 TensorFlow,主打灵活性、稳定性、复现性,能够提供快速的基准测试。包括:
    (1)一个基于 Arcade 学习环境(一个成熟的、易于理解的基准)
    (2)四种不同的机器学习模型:DQN、C51、简化版的 Rainbow 智能体和 IQN(Implicit Quantile Network)四个基于值的代理 DQN、C51、Rainbow 代理的简化版本以及隐式分位数网络代理。

相比 OpenAI 的强化学习基准,Dopamine 更多关注 off-policy 方法。 为了实现可重复性,Github 代码包括 Arcade Learning Environment 支持的全部 60 个游戏的完整测试和训练代码,并遵循标准化经验评估结果的最佳实践。 除此之外,谷歌还推出了一个可视化网站,允许开发人员将训练中的多个智能体的运行情况快速可视化。

特点

  • 易用性
    清晰和简洁是这个框架的两个关键设计考虑因素。
    代码紧凑(大约 15 个 Python 文件),并且有详细的文档。代码简洁,能够让研究人员轻松了解代理的内部运作并快速尝试新的想法。

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

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

谷歌的 4 个智能体在 airraid游戏上的训练运行。x 轴表示迭代,每个迭代是一百万个游戏帧(实时游戏 4.5 小时);y 轴是每次游戏获取的平均分。阴影区域表示 5 个独立运行的置信区间

谷歌还提供利用这些智能体训练的深度网络、原始统计日志以及用于 Tensorboard 可视化的 TensorFlow 事件文件。相关地址:https://github.com/google/dopamine/tree/master/docs#downloads

TRFL

  • TRFL(读作「truffle」)一个用于在 TensorFlow 环境中开发强化学习智能体的代码库
  • DeepMind 自己用来开发 DQN、DDPG 以及 IMPALA(重要性加权行动者-学习者架构)等知名强化学习技术的许多关键算法组件都包含在其中。

RLlab

  • 伯克利大学和 openai 的学者开发的强化学习算法框架
  • 不是一个RL库,而是与Gym类似一个比较完整的强化学习开源工具包。基于Theano。与OpenAI Gym的区别在于OpenAI Gym支持更广泛的环境,且提供在线的scoreboard可以用于共享训练结果。
  • pytorch是一个python优先的深度学习框架

Tensorforce

  • 强化学习组件开发者 reinforce.io 于2017年提出的一个开源深度强化学习框架,强调模块化灵活的库设计和直观的可用性。
  • 构建于Google的TensorFlow框架之上,与Python 3兼容(Python 2支持在0.5版本中删除)
  • 特点:
    (1)基于模块化组件的设计:功能实现尽可能地普遍适用和可配置。
    (2)RL算法和应用的分离:算法与输入(状态/观察)和输出(动作/决策)的类型和结构,与应用环境的交互无关。
    (3)Full-on TensorFlow模型:整个强化学习逻辑(包括控制流)在TensorFlow中实现,以实现独立于应用程序编程语言的便携式计算图形,并促进模型的部署。
  • 通过配置文件快速运行不同的算法
python examples/openai_gym.py CartPole-v1 --agent examples/configs/ppo.json --network examples/configs/mlp2_network.json
  • 支持DDPG和PPO等算法的实现,详见配置文件tensorforce/examples/configs/

Coach

  • Intel 收购的 Nervana 公司(还开发了Neon) 推出的强化学习框架
  • Coach包含一些领先的增强学习算法的多线程实现,可以方便地实现并行算法,充分利用cpu gpu多核。
  • 主要针对2016年以来许多算法通过在许多CPU内核中并行运行多个实例,能够更快地实现更好的策略。包括A3C 、DDPG、PPO、DFP和NAF等。
  • 所有的算法都是使用英特尔优化的TensorFlow来实现的,也可以通过Intel的neon™框架来实现。
  • Coach可与如OpenAI Gym、Roboschool和ViZDoom等顶级环境进行集成
  • 可视化调试工具:Intel还发布了Coach Dashboard作为可视化和调试的补充工具。Dashboard是Coach的一个图形用户界面,通过展示训练过程中的不同信号,可以让用户以简单易懂的方式比较不同方式运行的训练质量。在训练期间,Coach可跟踪任何有意义的内部信息并存储,以便在执行期间和完成后可视化进度。

图片来源:雷锋网

keras-rl

  • 集成深度学习库Keras实现了一些最先进的深度强化学习算法,可使用在Gym环境上。
  • 目前实现的算法:
    (1)Deep Q Learning (DQN)
    (2)Double DQN
    (3)Deep Deterministic Policy Gradient (DDPG)
    (4)Continuous DQN (CDQN or NAF)
    (5)Cross-Entropy Method (CEM)
    (6)Dueling network DQN (Dueling DQN)
    (7)Deep SARSA

RL库使用方法

  • 如果是以gym为基础的RL库,用起来更便于对比,毕竟环境一致

  • 直接import开源库,并调用其API

  • 包括两部分
    (1)训练部分:初始化算法需要的参数,比如学习率,steps,episode以及他们的最大值
    (2)测试部分:act接受当前状态obs后给出action,将其传给环境的step()函数,得到下一时间步的状态、回报、是否结束。循环打印每轮的总回报和时间步数。如果总回报为正且时间步数较少,则表明我们的算法取得了较好的效果。

  • 测试基准
    (1)在连续控制场景主要用mujoco环境游戏来评估,在离散控制场景主要用atatri环境评估,也有一些其他环境。
    (2)Mujoco(1M时间步长)和Atari(10M时间步长)
    (3)评估指标主要看分数还有steps。


参考

知乎上的RL开源项目:
https://www.zhihu.com/question/49230922

开源RL库推荐(最下面)
https://github.com/aikorea/awesome-rl/tree/master

参考https://www.itcodemonkey.com/article/3646.html


其他

  • OpenAi universe
    openai 开发的开源人工智能软件平台 1000 多个环境
    可以让一个程序变为openai gym 环境,将程序封装成docker 容器
    https://github.com/openai/universe
    模拟很多的游戏场景
  • DeepMind Lab
    DeepMind 发布的 3d强化学习平台
    最初是DeepMind 内部使用 之后开源了
    https://github.com/deepmind/lab
    模拟一些走迷宫之类的3d实验环境。

附:一张不错的对比图

image.png

图来源:https://zhuanlan.zhihu.com/p/60241809

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343