1. 绪论
1.1 强化学习可以解决什么问题
可以用一句话来说明强化学习所能解决的问题:智能决策问题。更确切地说是序贯决策问题。
什么是序贯决策问题呢?就是需要连续不断地做出决策,才能实现最终目标的问题。
1.2 强化学习如何解决问题
- 强化学习和监督学习的异同点:强化学习和监督学习的共同点是两者都需要大量的数据进行训练,但是两者所需要的数据类型不同。
- 监督学习需要的是多样化的标签数据,强化学习需要的是带有回报的交互数据。
- 强化学习要解决的是序贯决策问题,它不关心输入长什么样,只关心当前输入下应该采用什么动作才能实现最终的目标。当前采用什么动作与最终的目标有关。
- 监督学习→认知:是什么; 强化学习→决策:怎么做
(2)利用Anaconda建一个虚拟环境。
Anaconda创建虚拟环境的格式为:conda create–name 你要创建的名字 Python=版本号。比如我创建的虚拟环境名字为gymlab,用的Python版本号为3.8,可这样写:
conda create --name gymlab python=3.8
操作完此步之后,会在anaconda3/envs文件夹下多一个gymlab。Python3.8就在gymlab下的lib文件夹中。
(3)安装gym。
上一步已经装了一个虚拟环境gymlab,在这一步要开始应用。先开一个新的终端,然后用命令source activate gymlab激活虚拟环境,再装gym。具体步骤如下。
- ① 键入git clone https://github.com/openai/gym.git,将gym克隆到计算机中。如果你的计算机中没有安装git,那么可以键入:sudo apt install git,先安装git。
- ② cd gym 进入gym文件夹。
- ③ pip install-e ‘.[all]’进行完全安装。等待,这个过程会装一系列的库,装完后可以将 gym 安装文件的目录写到环境变量中;一种方法是打开.bashrc 文件,在末尾加入语句:
export PYTHONPATH=你的gym目录:$PYTHONPATH。
不出意外的话,你就可以开始享用gym了。 - 对于③,如果报错可以先安装依赖项,键入命令 sudo 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
下面给出一个最简单的例子。
① 开一个终端(ctr+alt+t),然后激活用Anaconda建立的虚拟环境;source activate gymlab;
② 运行Python:python;
③ 导入Gym模块:import gym;
④ 创建一个小车倒立摆模型:env=gym.make(‘CartPole-v0’);
⑤ 初始化环境:env.reset;
⑥ 刷新当前环境,并显示:env.render()。
通过这6步,我们可以看到一个小车倒立摆系统,如图2所示。
————————————————————————————————
centos和Ubuntu可能配置方法不同,但大同小异,如果有环境搭建问题,欢迎留言讨论。