强化学习实验环境
II(ViZDoom,Roboschool,TensorFlowAgent。。。
前段时间Nature上发表的升级版Alpha Go - AlphaGo Zero再⼀次成为热点话题。作为其核⼼技术之⼀的Deep reinforcement
learning(深度增强学习,或深度强化学习)也再⼀次引发关注。Alpha Zero最有意义的地⽅之⼀是它去除了从⼈类经验(棋谱)中学习的过程,⽽是完全通过“左右互博”式的学习击败了⾃⼰的“前辈”。这也很能体现强化学习的特点,就是在弱监督信息下通过”Trial and error”来⾃我学习。
这两年DRL随着深度学习的⼤热也是⽕得不⾏。于是各种新的强化学习研究平台如⾬后春芛冒出来,⽽且趋势也是从简单的toy场景慢慢扩展到3D迷宫,第⼀⼈称射击游戏,即时策略类游戏和复杂机器⼈控制场景等。之前曾写⽂介绍了⼀些流⾏的强化学习实验环境()。本⽂是第⼆弹。 ps: 真羡慕现在研究强化学习的孩⼦,各种五花⼋门的实验环境,算法参考实现也可以随便挑。。。
在第⼀篇中介绍过的本⽂就不重复累述了,这⾥把本⽂涉及的项⽬⼤致分为两类:
1. 实验场景类: 像OpenAI Gym,MuJoCo这些。
名称github链接类型语⾔平台官⽅介绍
ViZDoom FPS C++, Lua, Java, Python Linux,Windows,Mac OS
Roboschool Physical simulation Python Linux, Mac OS
Multi-Agent Particle Environment Multi-agent Python Linux
2. 研究框架类: ⼀般会整合多个实验场景并提供⽅便统⼀的接⼝,⽅便其它场景的接⼊,并提供⼀些⾼级功能(如并⾏化),同时可能附带⼀些算法参考实现。
名称github
链接
场景语⾔实现算法相关机构
官
⽅
介
绍
TensorFlow Models OpenAI Gym, MuJoCo Python
Actor Critic,TRPO,PCL,Unified
PCL,Trust-PCL,PCL + Constraint Trust
Region,REINFORCE,UREX
Community N/A
TensorFlow
Agents
OpenAI Gym Python BatchPPO Google
Universe/universe-starter-agent Atari,
CarPole,Flashgames,Browser
task, etc.
Python A3C OpenAI
ELF MiniRTS, Atari, Go Python PG, AC Facebook
Coach OpenAI Gym, ViZDoom,
Roboschool, GymExtensions,
PyBullet
Python
DQN, DDQN, Dueling Q Network, MMC,
PAL, Distributional DQN, Bootstrapped
DQN, NEC
bootstrappedDistributed: N-Step Q Learning,NAF, PG,
A3C, DDPG, PPO, Clipped PPO, DFP
可参见
Intel
Unity Machine
Learning Agents
3D Balance Ball, GridWorld Python PPO Unity
下⾯介绍下它们的环境搭建。基础环境Ubuntu 16.04,Cuda 8.0(cuDNN 6.0),TensorFlow 1.2.1,Anaconda 4.4.0, Python 2.7/3.5。
ViZDoom
依赖中其它还好,⽐较⿇烦的是需要Torch 7 。安装⽅法参考。
安装完成后运⾏examples/python/basic.py,会起⼀个图形界⾯,其中智能体(agent)采取的动作是随机的。
它还⽤多种语⾔实现了DQN算法,位于examples⽬录下。
Roboschool
MuJoCo在许多的DRL论⽂中被⽤于经典的控制场景实验。但它有个缺点是要钱(除了30天免费版及学⽣版)。⽽这个缺点对于我们穷⼈来说可以说是致命的。作为MuJoCo实现的替代品,OpenAI开发了基于Bullet物理引擎的Roboschool。它提供了OpenAI Gym形式的接⼝⽤于模拟机器⼈控制。⽬前包含了12个环境。其中除了传统的类似MuJoCo的场景,还有交互控制,及多智能体控制场景。
安装⽅法⽐较简单,基本按github上readme即可。⽐如运⾏下⾯例⼦:
python $ROBOSCHOOL_PATH/agent_zoo/demo_race2.py
1
后的效果:
如果你不幸遇到下⾯的问题:
jzj@jlocal:~/source/roboschool$ python $ROBOSCHOOL_PATH/agent_zoo/RoboschoolHumanoidFlagrun_v0_2017may.py
[2017-10-28 21:56:26,100] Making new env: RoboschoolHumanoidFlagrun-v1
QGLShaderProgram: could not create shader program
bool QGLShaderPrivate::create(): Could not create shader of type 2.
python3: render-simple.cpp:250: void SimpleRender::Context::initGL(): Assertion `r0' failed.
Aborted (core dumped)
1
2
3
4
5
6
Multi-Agent Particle Environment
多智能体粒⼦世界。主要⽤于多智能体场景下的DRL相关研究。项⽬不⼤,依赖也⽐较简单,基本只要OpenAI gym。安装⽅法:pip3 install -e . --user
1
然后就可以运⾏了:
bin/interactive.py --scenario <env>
1
其中<env>在其readme中有列。⽐如:
bin/interactive.py --scenario simple_push.py
1
TensorFlow Models
这是TensorFlow models中提供的强化学习算法集。环境搭建⽐较简单,如果已经装了OpenAI Gym和MuJoCo,基本装完了TensorFlow就可以跑。建议拿python 2.7跑,拿3.x要改些东西,⽐较⿇烦。
装完后跑个readme中的例⼦试下:
python trainer.py --logtostderr --batch_size=400 --env=DuplicatedInput-v0 \
--validation_frequency=25 --tau=0.1 --clip_norm=50 \
--num_samples=10 --objective=urex
1
2
3
看到下⾯这样的输出就是在训练了:
TensorFlow Agents
由Google两位研究员研发,⽤于在TensorFlow中构建并⾏强化学习算法。⽐较⼤的特点是容易开发并⾏强化学习算法。除了TensorFlow 和OpenAI Gym,还需要安装ruamel.yaml:
pip install ruamel.yaml
1
按readme可以运⾏下例⼦:
$ python3 -m ain --logdir=./log --config=pendulum
$ tensorboard --logdir=./ --port=2222
1
2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论