强化学习实战——OpenAI Spinning Up项目
前面的文章介绍了太多强化学习的理论,今天我们就通过具体项目,理论结合实践深入理解和学习强化学习。
1. Spinning Up 项目简介
Spinning Up 是大名鼎鼎的Open AI推出的免费强化学习教学项目,旨在降低强化学习的门槛,让初学者能在项目实践的过程中一步一步循序渐进地学习。项目不仅提供了详细的理论介绍,同时还有完整的练习代码,真的不不愧是学习深度强化学习的良心之作。
废话不多说,网站和文档在这里,拿走不谢。当然官方文档是英文的,英文有困难的同学可以在这里找到热心网友翻译的中文镜像。
2. 学习环境的安装
环境安装其实不困难,按照官网文档一步一步来就可以了,我这里提几个关键注意的点。
- 官方目前只支持Ubuntu和Mac OS X系统,所以Windows用户得注意了。
- 官方推荐使用Anaconda配置环境,如果不知道Anaconda是什么,出门Google。
- 使用官方推荐的Python版本,Anaconda非常方便安装和管理软件版本,以免出现未知问题。
- Tensorflow 需要手动安装,在Anaconda的环境下安装也很方便,一条命令搞定
conda install tensorflow
3. MuJoCo安装(选装)
官方推荐安装MuJoCo, MuJoCo是一个物理引擎,能够更加形象地展示Agent(机器人)的学习过程,文章结尾会展示一个MuJoCo的3D动画。
MuJoCo是一个商业软件,但是可以提供30天的免费许可证书,同时对学生也可以提供一年的免费许可证书,如果有大学的邮箱的读者朋友,强烈建议安装。
安装 MuJoCo 需要到Github页面按照文档一步一步进行安装。由于MuJoCo文档是写给有一定开发经验的开发者看的,所以写得比较简单,同时还有一些坑需要注意。
1. Windows和Python 2 都不再支持了,这里需要注意。
2. 获得学生一年免费证书需要三步:
第一步,在官网用学校邮箱注册后,如果审核通过会收到账号。
第二步,账号需要绑定电脑ID,电脑ID获取方法(Mac 为例),下载可执行文件getid_osx后,在终端getid_osx文件目录下,执行下面命令
chmod -f 711 getid_osx
./getid_osx
第三步,绑定账号和电脑ID,稍后会收到许可证书『mjkey.txt.』文档。
3. 在安装的时候比较坑的地方来了,文档中需要将许可证书放在这个目录,("~"代表用户的home 目录)
~/.mujoco/mjkey.txt
这样的话后续安装会出错,正确的位置应该是这里
~/.mujoco/mjpro150/bin/mjkey.txt`
4. 最后不要忘了用这个命令安装mujoco-py 对应的gym 环境
pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'
pip3 install gym[mujoco,robotics]
4. 测试
注意测试的时候,如果用Anaconda不要忘了激活环境(如果环境名是spinningup)
source activate spinningup
如果没有安装 MuJoCo的话使用这条命令
python -m spinup.run ppo --hid "[32,32]" --env LunarLander-v2 --exp_name installtest --gamma 0.999
训练完成后,通过这条命令可以查看训练的动画效果,是一个飞船定点落地的动画。
图片来自我的电脑截图
如果安装了MuJoCo的话可以使用这条命令来训练机器人走路
python -m spinup.run ppo --hid "[32,32]" --env Walker2d-v2 --exp_name mujocotest
最后欣赏一下训练成果吧:
图片来自我的电脑截图