专栏名称: 雷克世界
赛迪研究院(CCID)主办的新媒体平台,每天跟你聊聊机器人、人工智能、智能制造领域的那些你想知道的事……
目录
相关文章推荐
51好读  ›  专栏  ›  雷克世界

详解Nervana最新开源深度强化学习库Coach,支持DQN、DDQN等十多种算法|附开源代码

雷克世界  · 公众号  · 机器人  · 2017-10-23 16:03

正文


原文来源:github

作者:Gal Leibovich

「雷克世界」编译:嗯~阿童木呀、多啦A亮

 

概述

 

Coach是一个python强化学习研究框架,包含许多最先进算法的实施。

 

它公开了一组易用的API,用于对新的机器学习算法实验,并且通过新环境的简单集成解决问题。基本的强化学习组件(算法、环境、神经网络架构、探索策略……)是完全解耦的,因此扩展和重用现有的组件是毫不费力的。

 

训练智能体来解决环境问题是与运行一样简单:

 

python coach.py -p CartPole_DQN -r

 



上图来源英特尔®Nervana™网站的博客文章(https://www.intelnervana.com/reinforcement-learning-coach-intel

 

安装

 

注意:Coach仅在Ubuntu 16.04 LTS上进行了测试。

 

Coach的安装程序将设置让使用者在OpenAI Gym环境上运行Coach所需的所有基本操作,用户可以通过运行以下命令,然后按照屏幕上显示的说明完成安装:

 

./install.sh

 

Coach创建一个虚拟环境并安装在其中以避免更改用户系统。

 

激活或停用Coach的虚拟环境:

 

source coach_env/bin/activate

 

deactivate

 

除了OpenAI Gym,还有其它几个环境已经进行测试并被支持。 请按照下面的“支持的环境”部分中的说明进行操作,以安装更多的环境。

 

GPU支持

 

TensorFlow 

默认情况下,Coach的安装程序将安装今年8月发布的英特尔优化版的TensorFlow,而其默认是不支持GPU的。为了使Coach能够在GPU上运行,必须安装支持GPU的TensorFlow版本。这可以通过覆盖TensorFlow版本来完成:

 

pip install tensorflow-gpu

 

开始运行Coach

 

Coach支持TensorFlow和neon深度学习框架。

 

通过使用-f标志可以在TensorFlow和neon后台之间进行切换。

 

使用TensorFlow(默认):-f tensorflow

 

使用neon:-f neon

 

presets.py中有几个可用的预设。要列出所有可用的预设,请使用-l标志。

 

要运行预设,请使用:

 

python coach.py -r -p

 

例如:

 

1、使用策略梯度CartPole游戏环境:


python coach.py -r -p CartPole_PG

 

2、使用剪裁PPO算法的倒立摆:


python coach.py -r -p Pendulum_ClippedPPO -n 8

 

3、使用A3C的山地车游戏:


python coach.py -r -p MountainCar_A3C -n 8

 

4、使用Dueling网络和Double DQN算法的毁灭战士游戏基础级:


python coach.py -r -p Doom_Basic_Dueling_DDQN

 

5、使用混合蒙特卡罗的毁灭战士游戏生命值收集级:


python coach.py -r -p Doom_Health_MMC

 

按照与presets.py相同的模式,可以轻松地为不同级别或环境创建新的预设。



运行Coach仪表板(可视化)


一般说来,训练一个智能体来解决环境问题有时候是很棘手的。


有时为了调试训练过程,Coach会输出几个信号、每个经过训练后的算法,以便追踪算法性能。


当Coach在训练智能体时,一个包含相关训练信号的csv文件将保存到“实验”目录中,然后 Coach的仪表板可用于动态显示训练信号,并追踪算法表现。


如果想要使用它,可运行下面代码:


python dashboard.py

 


文档信息


有关框架文档、算法描述以及该如何构建一个新的智能体/环境的相关说明可点击链接查询阅读。(http://coach.nervanasys.com/


并行化算法


自从在2016年引入A3C(https://arxiv.org/abs/1602.01783)以来,许多算法都已被证明在多个CPU内核上并行运行多个实例时可从中获益。到目前为止,这些算法涵盖了A3C、DDPG(https://arxiv.org/pdf/1704.03073.pdf)、PPO(https://arxiv.org/abs/1707.02286)和NAF(https://arxiv.org/pdf/1610.00633.pdf),而这极有可能只是一个开始。


使用Coach来并行化算法是很简单的。


下面的网络包装(NetworkWrapper)方法可以对算法进行无缝地并行化:


network.train_and_sync_networks(current_states, targets)


一旦并行运行开始启动,train_and_sync_networks API就会将每个本地worker的网络梯度应用到主要的全局网络,从而使得并行化训练得以开始。


然后,它只需要运行一个带有-n标志以及将要进行运行的worker的数量的Coach即可。例如,以下命令表示的是将要有16个worker协同合作以训练一个MuJoCo Hopper:


python coach.py -p Hopper_A3C -n 16


支持的环境


•OpenAI Gym


由Coach的安装程序默认安装。


•ViZDoom:


按照ViZDoom存储库中所描述的指令进行操作——https://github.com/mwydmuch/ViZDoom


另外,Coach假定变量环境VIZDOOM_ROOT直接指向ViZDoom安装目录。


•Roboschool:


按照roboschool存储库中所描述的指令进行操作——https://github.com/openai/roboschool


•GymExtensions:


按照GymExtensions存储库中所描述的指令进行操作——https://github.com/Breakend/gym-extensions


另外,将安装目录添加到变量环境PYTHONPATH中。


•PyBullet


按照快速入门指南中(Quick Start Guide)所描述的说明进行操作(基本上只是——'pip install pybullet')


支持的算法

 


•深度Q网络(DQN)(https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf


•双重深度Q网络(DDQN)(https://arxiv.org/pdf/1509.06461.pdf


•DuelingQ网络(https://arxiv.org/abs/1511.06581


•混合蒙特卡罗(MMC)(https://arxiv.org/abs/1703.01310


•一致性优势学习(PAL)(https://arxiv.org/abs/1512.04860


•分布式深度Q网络(https://arxiv.org/abs/1707.06887


•自举深度Q网络(https://arxiv.org/abs/1602.04621


•N步Q学习|分布式(https://arxiv.org/abs/1602.01783


•神经情景控制(NEC)(https://arxiv.org/abs/1703.01988


•归一化优势函数(NAF)|分布式(https://arxiv.org/abs/1603.00748


•策略梯度(PG)|分布式

http://www-anw.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf


•演员评判家(Actor Critic)/ A3C|分布式(https://arxiv.org/abs/1602.01783


•深度确定性策略梯度(DDPG)|分布式(https://arxiv.org/abs/1509.02971


•近端策略优化(PPO)(https://arxiv.org/pdf/1707.02286.pdf


•裁剪近策略优化|分布式(https://arxiv.org/pdf/1707.06347.pdf


•直接未来预测(DFP)|分布式(https://arxiv.org/abs/1611.01779


免责声明


Coach是出于研究目的作为参考代码发布的。这不是英特尔官方产品,质量和支持水平可能达不到官方预期水平。计划将附加算法和环境添加框架中,非常欢迎来自开源和RL研究社区的反馈和批评指正。


回复「转载」获得授权,微信搜索「ROBO_AI」关注公众号


中国人工智能产业创新联盟于2017年6月21日成立,超200家成员共推AI发展,相关动态:

中新网:中国人工智能产业创新联盟成立

ChinaDaily:China forms 1st AI alliance

证券时报:中国人工智能产业创新联盟成立 启动四大工程搭建产业生态“梁柱”

工信部网站:中国人工智能产业创新联盟与贵阳市政府、英特尔签署战略合作备忘录


点击下图加入联盟


下载中国人工智能产业创新联盟入盟申请表


关注“雷克世界”后不要忘记置顶

我们还在搜狐新闻、雷克世界官网、腾讯新闻、网易新闻、一点资讯、天天快报、今日头条、雪球财经……

↓↓↓点击阅读原文查看中国人工智能产业创新联盟手册