OpenAI Gym Atari环境命名约定和陷阱


TL; DR

  • 使用OpenAI Gym的Atari环境时,请使用名为{}NoFrameskip-v4的环境。

    • 环境侧无跳帧
    • ALE侧没有repeat_action_probability

关于OpenAI Gym的Atari环境

简介

本文是关于OpenAI Gym 0.10.5版本(2018/04/05版本; https://github.com/openai/gym/releases/tag/v0.10.5)。请注意,我们尚未确认其他版本的任何内容。

1
2
$ pip freeze | grep gym
gym==0.10.5

环境列表

参考:python-列出openai健身房中的所有环境ID-堆栈溢出

可以使用以下代码完整输出当前在Gym中注册的环境列表:

1
2
3
4
5
from gym import envs
    all_envs = envs.registry.all()
    env_ids = [env_spec.id for env_spec in all_envs]
    for env_id in env_ids:
        print(env_id)

命名约定

截至目前(2018年5月14日),在OpenAI Gym的Atari中,您可以检查每个游戏的以下环境(游戏名称在{}中):

  • {} -v0
  • {} -v4
  • {}确定性v0
  • {}确定性v4
  • {} NoFrameskip-v0
  • {} NoFrameskip-v4
  • {} -ram-v0
  • {} -ram-v4
  • {} -ramDeterministic-v0
  • {} -ramDeterministic-v4
  • {} -ramNoFrameskip-v0
  • {} -ramNoFrameskip-v4

例如,对于Pong:

  • 傍v0
  • 傍v4
  • Pong确定性v0
  • Pong确定性v4
  • PongNoFrameskip-v0
  • PongNoFrameskip-v4
  • Pong-ram-v0
  • Pong-ram-v4
  • Pong-ram确定性v0
  • Pong-ramDeterministic-v4
  • Pong-ramNoFrameskip-v0
  • Pong-ramNoFrameskip-v4

我想找出每个后缀的含义。
如果您遵循OpenAI Gym的源代码,则可以看到含义:

  • https://github.com/openai/gym/blob/v0.10.5/gym/envs/__init__.py#L424
  • https://github.com/openai/gym/blob/v0.10.5/gym/envs/atari/atari_env.py#L19

每个后缀都是部分有意义的组合,因此我将从上面的代码中解释每个后缀。

v0 / v4

v0和v4之间的差异是repeat_action_probability之间的差异。

  • v0:repeat_action_probability = 0.25

    • 换句话说,在ALE端,"无论输入什么动作,都以0.25的概率重复先前的动作"。
  • v4:repeat_action_probability = 0.0

    • 换句话说,ALE侧重复动作的概率为零。

(对应部分:https://github.com/openai/gym/blob/v0.10.5/gym/envs/__init__.py#L454,https://github.com/openai/gym/blob/v0 .10.5 / gym / envs / atari / atari_env.py#L40)

repeat_action_probability是此处使用的变量,详细说明可以在下一期中找到:
由于ALEInterface的repeat_action_probability设置,AtariEnv不确定性加倍·问题#349·openai / Gym

根据此问题,

  • repeat_action_probability是ALE侧的动作重复设置。

  • 除非您将其显式设置为零,否则它将无法正常工作。

您可以看到


从上面可以看出,除非有特定原因,否则最好使用v4。

内存 /