Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI

和其它的机器学习方向一样,强化学习(Reinforcement Learning)也有一些经典的实验场景,像Mountain-Car,Cart-Pole等。话说很久以前,因为没有统一的开发测试平台,大家都会自己实现,有用C/C++的,有用Python,还有用Matlab的。所以大家论文中看到的场景虽然相似,但很多时候不完全一样。这样一方面重新造轮子,另一方面还有可能因为实验环境的差别影响结果的比较。于是后面大家渐渐开始建立统一的实验平台,另一方面,由于近年来深度强化学习(Deep Reinforcement Learning)的兴起,各种新的更复杂的实验场景也在不断涌现。于是出现了OpenAI Gym,MuJoCo,rllab, DeepMind Lab, TORCS, PySC2等一系列优秀的平台。你会在大量的强化学习相关论文中看到它们的身影。下面就简单介绍下这些平台在Ubuntu下的搭建过程。关于一些基础环境(如Cuda, Anaconda, TensorFlow)的搭建可参考:

MuJoCo

MuJoCo(Multi-Joint dynamics with Contact)是一个物理模拟器,可以用于机器人控制优化等研究。官方网站为。最新版本为1.50。下载地址为https://www.roboti.us/index.html。如果是Linux系统可以点mjpro150 linux。下载完成后解压到~/.mujoco下。注意要用是需要license的,可以在https://www.roboti.us/license.html上申请试用版30天免费license。先下载网站上提供的getid_linux,加执行权限在本地运行得到机器id连同其它信息填到申请页面,提交后会收到邮件包含key文件mjkey.txt。下载key文件后,放到~/.mujoco目录下。之后可以运行解压目录下bin里的simulate试下是否正常(需要将key文件也拷到simulate同级目录)。运行后将model目录下的模型拖入窗口,会看到类似下面的输出:

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI


OpenAI对MuJoCo引擎做了Python 3的binding-mujoco-py,源码位于https://github.com/openai/mujoco-py。按readme中你可以通过下面命令安装:

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'

如果安装过程中出现下面这种错误:
sh: 2: Syntax error: "(" unexpected
       ERROR: Invalid activation key
你可以下载源码安装:

git clone https://github.com/openai/mujoco-py cd mujoco-py pip install -e . --no-cache

然后运行下readme中的例子看是否运行正常。

OpenAI Gym

OpenAI Gym是OpenAI出的研究强化学习算法的toolkit,它里边cover的场景非常多,从经典的Cart-Pole, Mountain-Car到Atar,Go,MuJoCo都有。官方网站为https://gym.openai.com/,源码位于https://github.com/openai/gym,它的readme提供了安装和运行示例,按其中的安装方法:
最小安装:

git clone https://github.com/openai/gym.git cd gym pip install -e .

完全安装:

apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig Pillow libglfw3-dev pip install -e '.[all]'

然后可以跑readme中的例子,如SpaceInvaders, Go, LunarLander, CarPole, MuJoCo等等:

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI

       

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI

 

Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI

通过源码下的examples/scripts/list_envs可以列出所有支持的场景。


如果装了Anaconda,过程中出现下面错误的话:
OSError: /home/jzj/anaconda2/envs/py35/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/jzj/anaconda2/envs/py35/lib/python3.5/site-packages/atari_py/ale_interface/build/libale_c.so)
可以通过在Anaconda环境中安装libgcc解决:

conda install libgcc


如果在运行依赖Box2d引擎的sample时出现下面错误:
AttributeError: module 'Box2D._Box2D' has no attribute 'RAND_LIMIT'
可以先uninstall已有版本(如有),然后安装pybox2d:

pip uninstall Box2D-kengz git clone https://github.com/pybox2d/pybox2d.git cd pybox2d python setup.py clean python setup.py install


Gym中也可以通过mujoco-py集成MuJoCo。如果出现下面错误,说明mujoco-py版本不对。目前Gym中支持MuJoCo 1.31和mujoco-py 0.5。按前面说明装上相应版本后即可。
DependencyNotInstalled: No module named 'mujoco_py.mjlib'. (HINT: you need to install mujoco_py, and also perform the setup instructions here: https://github.com/openai/mujoco-py/.)

rllab

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13252.html