Reinforcement Learning(强化学习)- Pong 环境介绍

王 茂南 2021年11月3日07:02:01
评论
1 1512字阅读5分2秒
摘要本文会介绍 OpenAI Gym 中的一款 Atari 游戏,Pong(类似乒乓)。会分别介绍 Observation,Action 和 Reward 的含义。最后给一个随机的 policy,来控制一下 Agent 的移动。同时也会介绍 Pong-ram-v0 与 Pong-v0 的区别。

简介

本文介绍 OpenAI Gym 中的一个 Atari 游戏,Pong。这个游戏内容非常简单,控制板击打对方打过来的求,谁没有接住设就算输(类似于乒乓球)。获胜的一方获得 1 个积分,当谁先到 21 分则游戏结束。

Reinforcement Learning(强化学习)- Pong 环境介绍

如果想要能正常运行 Atari 游戏,需要按照下面一样进行安装:

  1. pip install 'gym[atari]'
  2. pip install 'gym[accept-rom-license]'

 

参考资料

 

Pong 环境介绍

gym 中,会有 Pong-v0Pong-v4,这两者的区别是,带有 v0env 表示会有 25% 的概率执行上一个 action,而 v4 表示只执行 agent 给出的 action,不会重复之前的 action

Obs 和 Action 的介绍

该环境的观测(obs)值为一个 2101603 的图像,表示游戏的画面。而动作是六种离散的动作:

  1. import gym
  2. env = gym.make("Pong-v0")
  3. # 查看 obs
  4. print(env.observation_space.shape)
  5. # (210, 160, 3)
  6. # 查看 action
  7. print(env.action_space)
  8. # Discrete(6)

我们可以通过 env.unwrapped.get_action_meanings() 拿到每一个 action 的含义,其中的六个动作含义分别如下:

  1. env.unwrapped.get_action_meanings()
  2. # ['NOOP', 'FIRE', 'RIGHT', 'LEFT', 'RIGHTFIRE', 'LEFTFIRE']

其实只有三个有效的动作,分别是左,右和不动(其中 LeftLeftfire 是一样的,RightRightfire 是一样的,NoopFire 是一样的)。

 

Reward 的介绍

Pong-v0 中,reward 的设计十分简单。获胜则 reward=1,失败则 reward=-1,否则 reward=0

 

使用随机策略进行游戏

上面介绍完 Pong-v0obsactionreward 。下面使用随机策略来简答测试一下:

  1. import gym
  2. env = gym.make("Pong-v0")
  3. env.reset()
  4. env.render()
  5. # 随机策略
  6. env.reset()
  7. done = False
  8. while not done:
  9.     action = env.action_space.sample()
  10.     observation, reward, done, _ = env.step(action)
  11.     print('obs: {}; reward: {}'.format(observation.shape, reward))
  12.     env.render()

最终的效果如下所示:

Reinforcement Learning(强化学习)- Pong 环境介绍

 

Pong-ram-v0 环境

Pong-ram-v0Pong-v0 两个环境只有 obs 是不相同的,其他的包括 actionreward 都是相同的。在 Pong-ram-v0 中,observationRAM of the Atari machine, consisting of (only!) 128 bytes。所以 observation 的长度为 128,每个值的取值范围为 0-255

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2021年11月3日07:02:01
  • 转载请务必保留本文链接:https://mathpretty.com/14216.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: