action_space
Pong-v0 的打印Discrete(6)
作为输出,即是根据文档在环境中定义的操作。但是,游戏只需要 2 个控件。为什么我们会有这种差异?此外,是否有必要确定从 0 到 5 的哪个数字对应于健身房环境中的哪个动作?
OpenAI 健身房的“Pong-v0”环境的不同动作代表什么?
人工智能
强化学习
环境
健身房
行动空间
2021-11-14 22:30:32
3个回答
您可以自己尝试这些操作,但如果您需要其他参考,请查看 GitHub 上的 ALE 文档。
特别是,0 表示没有动作,1 表示开火,这就是为什么它们对球拍没有影响。
这是一个更好的方法:
env.unwrapped.get_action_meanings()
您可以尝试使用此类脚本找出操作的确切作用:
action = 0 # modify this!
o = env.reset()
for i in xrange(5): # repeat one action for five times
o = env.step(action)[0]
IPython.display.display(
Image.fromarray(
o[:,140:142] # extract your bat
).resize((300, 300)) # bigger image, easy for visualization
)
action
0 和 1 似乎没用,因为球拍没有任何反应。
action
2 & 4 使球拍上升,action
3 & 5 使球拍下降。
有趣的是,当我将上面的脚本运行action
两次(从 2 到 5 次)时,我得到了不同的结果。有时球拍到达顶部(底部)边界,有时没有。我认为球拍的速度可能存在一些随机性,因此可能很难衡量哪种类型的 UP(2 或 4)更快。
2 & 4 和 3 & 5 之间似乎没有区别。Icyblade 提到的不一致是由于 Pong 环境的机制。
“每个动作在 k 帧的持续时间内重复执行,其中 k 是从 {2,3,4} 中均匀采样的”
因此,由于随机性,该动作只是重复了不同的次数
其它你可能感兴趣的问题