转载:http://blog.csdn.net/jinzhuojun/article/details/77144590
和其它的机器学习方向一样,强化学习(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)的搭建可参考前面的文章:http://blog.csdn.net/jinzhuojun/article/details/77140806。
pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'
如果安装过程中出现下面这种错误:
git clone https://github.com/openai/mujoco-py
cd mujoco-py
pip install -e . --no-cache
如果在后面有其它项目依赖到更高版本(如1.50.1),可以从官方release页面下载源码包(https://github.com/openai/mujoco-py/releases),然后用上面方法安装即可。然后运行下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等等:
通过源码下的examples/scripts/list_envs可以列出所有支持的场景。
conda install libgcc
pip uninstall Box2D-kengz
git clone https://github.com/pybox2d/pybox2d.git
cd pybox2d
python setup.py clean
python setup.py install
export PYTHONPATH=path_to_rllab:$PYTHONPATH
./scripts/setup_linux.sh
如果要想要在rllab中用MuJoCo的话再用下面脚本安装。
./scripts/setup_mujoco.sh
rllab使用的是mujoco 1.31版本,这个脚本里会让指定相应的mujoco包和license key文件。以上安装脚本中会创建Anaconda环境,名为rllab3。通过下面命令进入环境:
source activate rllab3
然后就可以运行例子了。比如用TRPO算法训练Cart-Pole场景的话,运行:
python examples/trpo_gym_cartpole.py
这些sample中默认是无UI的,如果要有UI,可以搜索其中的plot=True,将之反注释即可。
export THEANO_FLAGS=device=cpu
conda create --name py27 python=2.7
source activate py27
然后按官方readme中的说明(https://github.com/deepmind/lab/blob/master/docs/build.md)安装。由于编译是基于bazel,所以需要先安装bazel。
sudo apt-get install lua5.1 liblua5.1-0-dev libffi-dev gettext freeglut3-dev libsdl2-dev libosmesa6-dev python-dev python-numpy realpath
git clone https://github.com/deepmind/lab
cd lab
bazel build :deepmind_lab.so --define headless=glx
bazel run :python_module_test --define headless=glx
如果在Anaconda环境中,有可能碰到下面错误:
sudo apt-get remove python-numpy
sudo ~/.local/bin/pip2.7 uninstall numpy
bazel run :random_agent --define headless=false -- --length=10000 --width=640 --height=480
bazel run :game -- --level_script tests/demo_map
然后通过python api(https://github.com/deepmind/lab/blob/master/docs/python_api.md)就可以让强化学习算法利用该环境进行训练了。
sudo apt-get install xautomation
官方声明依赖Python 3.5,那就进入Python 3的环境(假设已创建Python 3.5的Anaconda环境py35):
source activate py35
然后用conda install numpy安装numpy。
git clone https://github.com/ugo-nama-kun/gym_torcs.git
然后进入其vtorcs-RL-color子目录,按其中readme编译安装定制版torcs。安装完了运行torcs命令就能看到界面了。注意按readme说明需要进行一些设置,如赛道以及分辨率,因为实现中只支持64x64分辨率。运行示例代码可以跑一个随机选取动作的agent。
python example_experiment.py
pip install pysc2
然后需要根据https://github.com/Blizzard/s2client-proto中readme说明安装StarCraft II的环境。主要那几个包都比较大,下载要些时间,下载完成后按readme中解压到指定path下即可。然后就可以测试下了。按readme用以下命令可以分别起agent玩家和人类玩家的环境:
python -m pysc2.bin.agent --map Simple64
python -m pysc2.bin.play --map Simple64
pip install baselines
或者用源码中的setup.py安装:
git clone https://github.com/openai/baselines
cd baselines
python setup.py install
除了列出来的依赖,还可能依赖下面的库,使用conda或pip安装:
conda install Pillow atari-py
export CUDA_VISIBLE_DEVICES=""
-------------------------------------------------
欢迎关注微信公众号:AITBOOK