[原创] 强化学习的Atari环境下的frame skipping(跳帧)是指什么

转载需注明出处:https://www.codelast.com/

查看更多强化学习的文章请点击这里

Atari是强化学习领域最常用的一个游戏实验环境,在很多文章以及代码中,会看到frame skipping(跳帧)这个概念,那么它到底是指什么呢?

使用ALE接口来实现agent与Atari环境的交互时,Atari环境会返回游戏的每一帧图像作为observation,agent需要为这个observation选择一个action,再让Atari环境去执行这个action。
由于游戏是一个持续不断进行的过程,因此,为了减少运算量,一种叫做 frame skipping跳帧)的技术被发明出来了,即,原来agent与environment的交互应该是这种画风:
Atari给出一帧图像→agent选择一个action→Atari执行该action给出下一帧图像→agent选择下一个action→(如此循环下去)
现在变成了这种画风:
Atari给出一帧图像→agent选择一个action→Atari执行该action给出下一帧图像→agent重复使用上次的action给Atari执行→Atari执行该action给出下一帧图像agent重复使用上次的action给Atari执行→Atari执行该action给出下一帧图像→(如此重复N帧)→agent重新选择一个action→Atari执行该action给出下一帧图像→......
文章来源:https://www.codelast.com/
注意上面的重复部分,简单地说就是:每经过N帧,agent才会选择一次action,在接下来的N帧内,会重复使用之前最后一次选择的那个action。
为什么要这样做?因为action selection的过程是一个计算量较大的过程(想像成model的inference过程),而Atari环境向前走一步相对来说是计算量较小的过程,让Atari每走N步才选择一次action的话,可以让玩一次游戏的时间大幅减少,因此agent就能在单位时间内得到更充分的训练。
这种每跳过N帧才选择一次action的技术,就叫 frame skipping跳帧),在很多强化学习框架中,也会看到这个参数的设定。

发表评论

电子邮件地址不会被公开。 必填项已用*标注