强化学习
强化学习--实验一倒立摆
- 强化学习
- 一、安装库
- 二、实验代码及解释
一、安装库
首先需要安装pygame与gym,直接在命令窗口中运行如下指令即可
pip install pygame
pip install gym
如果安装不成功,可下载相应的镜像进行安装。
二、实验代码及解释
import gym # 导入 Gym 的 Python 接口环境包
env = gym.make('CartPole-v0') # 构建实验环境
env.reset() # 重置一个回合
for _ in range(1000):env.render() # 显示图形界面action = env.action_space.sample() # 从动作空间中随机选取一个动作env.step(action) # 用于提交动作,括号内是具体的动作
env.close() # 关闭环境
按链接中代码运行会报如下错误
D:\Users\Administrator\anaconda3\lib\site-packages\gym\envs\registration.py:564: UserWarning: WARN: The environment CartPole-v0 is out of date. You should consider upgrading to version `v1`.logger.warn(
将上述代码中的实验环境由’CartPole-v0’更改为’CartPole-v1’后,该错误消失。
执行这段代码时,机器人会驾驶着小车朝某个方向一直跑,直到不见,这是因为还没开始训练机器人。
Gym 库中的大部分小游戏都可以用一个普通的实数或者向量来表示动作。输出env.action_space.sample()的返回值,能看到输出为 1 或者 0。env.action_space.sample()的含义是,在该游戏的所有动作空间里随机选择一个作为输出。在这个例子中,动作只有两个:0 和 1,一左一右。env.step()方法有4个返回值:observation、reward、done、info 。
observation 是状态信息,是在游戏中观测到的屏幕像素值或者盘面状态描述信息。reward 是奖励值,即动作提交以后能够获得的奖励值。这个奖励值因游戏的不同而不同,但总体原则是,对完成游戏有帮助的动作会获得比较高的奖励值。done 表示游戏是否已经完成,如果完成了,就需要重置游戏并开始一个新的回合。info 是一些比较原始的用于诊断和调试的信息,或许对训练有帮助。不过,OpenAI 在评价我们提交的机器人时,是不允许使用这些信息的。
在每个训练中都要使用的返回值有 observation、reward、done。但 observation 的结构会由于游戏的不同而发生变化。