迷雾探险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 个游戏的完整训练数据。还提供了一个网站,可以在上面快速查看所有的训练运行情况。

迷雾探险12 | RL的开源库_第1张图片
谷歌的 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可跟踪任何有意义的内部信息并存储,以便在执行期间和完成后可视化进度。

图片来源:雷锋网

迷雾探险12 | RL的开源库_第2张图片

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实验环境。

附:一张不错的对比图

迷雾探险12 | RL的开源库_第3张图片
image.png

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

你可能感兴趣的:(迷雾探险12 | RL的开源库)