OpenAI gym Atari游戏的环境设置

Breakout-v0, Breakout-v4, BreakoutNoFrameskip-v4和BreakoutDeterministic-v4的区别

  • v0v4是环境执行输入action的区别(即env.step(action)):

    • 带有v0的环境会有25%的概率执行上一个action75%的概率执行输入的action
    • v4表示100%执行输入的action,不会重复上一个action
  • 注意:以上解释仅适用于atari环境。在普通的cart-pole等环境中,v0v1等后缀的含义是根据环境而变化的。


  • NoFrameskipDeterministic是环境输出下一帧画面时的区别(即obs, reward, done, info = env.step(action)):
    • 带有NoFrameskipenv表示没有跳帧,环境会顺序地输出游戏中的每一帧游戏画面。
    • 带有Deterministicenv表示每4帧才输出一张游戏中的画面(即跳过3帧)。
    • 游戏名后面什么都不带的(如Breakout-v0),会随机从(2, 5)中采样一个跳帧数量。

  • 在训练agent时,如果想让环境跳帧,建议直接使用make_atari()函数对环境进行包装 make_atari() 源代码

    env = gym.make(env_id)
    assert 'NoFrameskip' in env.spec.id
    env = NoopResetEnv(env, noop_max=30)
    env = MaxAndSkipEnv(env, skip=4)
    

    从源码中我们可以看出,该函数是先定义原始atari环境中带有NoFrameskip的环境,然后使用atari_wrappers中的MaxAndSkipEnv()进行包装 (MaxAndSkipEnv() 源代码),包装后的env便会执行跳帧操作。
    此时,使用MaxAndSkipEnv()包装后的环境在跳帧时,一个action会被执行多帧(取决于跳帧数量),并且每帧获取的reward也会被累加至下一次画面输出。
    此外,跳帧时,输出画面是从每n帧中的最后2帧的像素值中的最大值来组成一张图片(即比较最后2帧的每一个对应位置的像素值,然后取较大的那个像素)。因为在Atari游戏中,有些画面是仅在奇数帧出现的,因此要对最后两帧取最大值。
    个人总结:不要轻易使用带有跳帧操作的原始环境,尽量使用NoFrameskip的环境,然后使用make_atari()进行包装,实现跳帧操作。此外,尽量使用v4环境,减少执行action的随机性。
    参考链接


Atari游戏的图片预处理

Downsampling, FrameStack等技巧。

FrameStack 源代码 以及 英文原理讲解中文原理解释

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenAI Gym是一个用于开发和比较强化学习算法的开源工具包。它提供了许多标准的环境,供研究人员和开发者用于测试和验证他们的算法。 OpenAI Gym环境可以分为两类:离散动作空间和连续动作空间。 在离散动作空间中,动作的选择是离散的,比如向左、向右、不动等。这类环境包括经典的游戏,如CartPole和FrozenLake。 CartPole是一个很简单的环境,目标是让杆子保持平衡。智能体可以选择向左或向右施加力量来控制杆子的平衡。 FrozenLake是一个迷宫环境,智能体需要从起点到达目标,避免掉入冰冻的湖中。它有四种动作:向上、向下、向左、向右。 在连续动作空间中,动作的选择是连续的,可以是任意值。这类环境更接近于真实场景,比如自动驾驶和机器人控制。其中一个连续动作空间的环境是MountainCar。 MountainCar是一个小车爬坡的环境,目标是让小车爬到山顶。智能体可以选择施加的力量,力量的取值范围是[-1, 1]。 除了这些环境OpenAI Gym还提供了许多其他的环境供选择,涵盖了各种不同的问题和挑战。比如Atari游戏,如Pong和Breakout,以及一些经典的控制问题,如Acrobot和Pendulum。 总的来说,OpenAI Gym提供了丰富多样的强化学习环境,使研究人员和开发者能够快速开发、测试和评估他们的算法。无论是离散动作空间还是连续动作空间,都能够找到适合自己需求的环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值