强化学习仿真环境gym搭建

先说说我为什么对强化学习有兴趣了,从大数据到机器学习、深度学习,现在我对智能化真的产生兴趣了,希望有一天能做出自己的机器人。
然而,学习的第一步就是环境,所以首先搭建一个gym的仿真环境。现在大家用的最多的是openai的gym( openai/gym),或者universe(,openai/universe),。这两个平台非常好,是通用的平台,而且与tensorflow和Theano无缝连接,虽然目前只支持python语言,但相信在不久的将来也会支持其他语言。下面我根据自己的理解,讲下关于gym的一些事情。

强化学习仿真环境gym(一)

搞深度强化学习,训练环境的搭建是必须的,因为训练环境是测试算法,训练参数的基本平台(当然,也可以用实际的样机进行训练,但时间和代价是相当大的)。

现在大家用的最多的是openai的gym( openai/gym),或者universe

(openai/universe),。这两个平台非常好,是通用的平台,而且与tensorflow和Theano无缝连接,虽然目前只支持python语言,但相信在不久的将来也会支持其他语言。下面我根据自己的理解,讲下关于gym的一些事情。

Gym的原理是什么?它是新东西吗?

在我看来,gym并不是完全的新东西,它不过是用python语言写的仿真器。对于仿真器大家肯定并不陌生。学控制的人都用过或听过matlab的simulink,学机械的人应该用过动力学仿真软件adams,gym在本质上和simulink,adams没什么区别。

如果把Gym,simulink,adams等等这些仿真器去掉界面显示(如动画显示),剩下的本质不过是一组微分方程。所以Gym,simulink,adams等等一切仿真器的本质是微分方程。比如,运动学微分方程,动力学微分方程,控制方程等。Gym在构造环境时,主要的任务就是构建描述你模型的微分方程。

我们举例说明:

Gym中的CartPole环境是如何构建的:

下面的链接是gym中CartPole环境模型:

https://github.com/openai/gym/blob/master/gym/envs/classic_control/cartpole.py

在该环境模型中,最核心的函数是def_step(self, action)函数,该函数定义了CartPole的环境模型。

图中方框中又是这段代码中最核心的地方,这两行代码便决定了CartPole的模型。简单的模型,通过手工推导便可完成。

那么对于复杂的模型,比如战斗机器人,各种大型游戏怎么办呢?

这就需要专门的多刚体仿真软件了,这些软件背后的核心技术都是物理引擎。大家可以搜下物理引擎这个词,游戏以及各种仿真软件都要用到物理引擎,用的多的而且开源的物理引擎有:ODE, Bullet, Havok, Physx等。原则上来说利用这些物理引擎都可以搭建训练环境。Gym在搭建机器人仿真环境用的是mujoco,ros里面的物理引擎是gazebo。

该小节讲的是gym在ubuntu下的安装,其他系统可参考官网安装过程。

1.1 为了便于管理,需要先装anaconda. 具体下载和安装步骤如下:

Step1. 下载anaconda安装包 .推荐利用清华镜像来下载,下载地址为:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive 。

我装的是Anaconda3-4.3.0版本。

Step2. 安装anaconda。下载完成anaconda后,安装包会在Dowloads文件夹下,在终Ctrl+Alt+T打开终端)键入cd Downloads, 然后键入 bash Anaconda3_4.3.0-Linux-x86_64.sh(小技巧,键入bash an然后按Tab键,linux系统会自动补全后面的名字)

Step3. 安装过程会询问你是否将路径安装到环境变量中,键入yes, 至此Anaconda安装完成。你会在目录/home/你的用户名文件夹下面看到anaconda3。关掉终端,再开一个,这样环境变量才起作用。

1.2. 利用anaconda建一个虚拟环境。

Anaconda创建虚拟环境的格式为:conda create –-name 你要创建的名字 python=版本号。比如我创建的虚拟环境名字为gymlab(你可以用自己的环境名), 用的python版本号为3.5,可这样写:

conda create –-name gymlab python=3.5

操作完此步之后,会在anaconda3/envs文件夹下多一个gymlab。Python3.5就在gymlab下得lib文件夹中。

1.3 安装gym

上一步已经装了一个虚拟环境gymlab, 在这一步要应用。

开一个新的终端,然后用命令source activate gymlab**虚拟环境,然后再装gym。具体步骤如下:

Step1. 键入git clone openai/gym,将gym克隆到计算机中. 如果你的计算机中没有安装git, 那么可以键入:sudo apt install git.先安装git.

Step2. cd gym 进入gym文件夹

Step3. pip install –e ‘.[all]’进行完全安装。等待,会装一系列的库等. 装完后可以将你的gym安装文件的目录写到环境变量中,一种方法是打开.bashrc文件,在末尾加入语句:

export PYTHONPATH=你的gym目录:$PYTHONPATH。如果不出意外的话,你就可以开始享用gym了。

对于step3, 如果报错可以先安装依赖项,键入命令sudo apt-get install -y python-numpy python-devcmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengllibboost-all-dev libsdl2-dev swig,然后再按照Step3的命令安装。

如果实在windows上安装,报如下错误:

强化学习仿真环境gym搭建

需要安装ffmpeg,把ffmpeg目录下的3个exe文件,拷贝到python环境中。

参考:https://zhuanlan.zhihu.com/p/26250938