“frame stacking”---帮助强化学习稳定提升和收敛技巧
frame stacking
- 在计算机视觉中的应用
- 在强化学习中的应用
- 实现方式
- 参考资料
帮助强化学习稳定提升和收敛技巧
强化学习以Markov Decision Process为基础,然而Atari游戏问题中,一个frame只是一个静止图像,无法提供物体的运动速度和方向等动态信息,所以信息不完整,这就变成了一个Partial Observable MDP问题。如果我们把前面相续的多个frame叠加到当前frame上,可以近似转化为MDP问题。Frame stacking是问题相关的trick,属于Problem Formulation,所以不入DQN本身。
“Frame stacking” 是一种在处理视频或序列数据时常用的技术,尤其在计算机视觉和强化学习领域。这个技术的基本思想是将连续的多帧图像组合在一起作为一个整体来处理,以捕捉时间维度上的动态信息。
frame stacking在强化学习中,特别是在处理如Atari游戏这样的视觉输入时,将多个连续的帧(画面)叠加在一起作为一个输入提供给神经网络。这样做的目的是为了捕捉到环境的动态信息,因为单帧图像无法提供物体的运动速度和方向等动态信息。具体来说,frame stacking允许网络从多个时间点的图像中学习到物体的运动趋势,从而更好地理解环境的动态变化。通过这种方式,原本属于部分可观测的马尔可夫决策过程(Partial Observable MDP)问题被近似转化为完全可观测的马尔可夫决策过程(Markov Decision Process),使得算法能够更有效地进行决策。
在计算机视觉中的应用
在计算机视觉中,frame stacking 可用于提供给模型更多的上下文信息。例如,在动作识别或者物体追踪的任务中,单独分析某一帧可能不足以理解场景中发生的动作或变化。通过将连续的几帧叠加在一起,可以为算法提供更多关于运动轨迹、速度等动态特征的信息,从而提高识别或跟踪的准确性。
在强化学习中的应用
在强化学习(特别是深度强化学习)中,frame stacking 被用来作为状态表示的一部分。这样做可以帮助智能体更好地理解环境的状态,因为单个帧可能无法提供足够的信息来推断物体的移动方向或速度。通过观察几个连续帧,智能体可以获得有关物体如何移动以及其速度和方向的信息,这有助于做出更明智的决策。
实现方式
实现 frame stacking 通常涉及到选择一个固定的帧数 (n),然后从视频流或游戏模拟器中获取连续的 (n) 帧,并将它们堆叠在一起形成一个新的输入样本。例如,在许多情况下,可能会选择堆叠4帧灰度图像,创建一个具有特定宽度、高度和(n)通道(对于灰度图像是(n),对于彩色图像是(3n))的张量作为模型的输入。
这种方法虽然增加了计算复杂性和内存需求,但它能够显著提高模型对动态环境的理解能力。
参考资料
【001】DQN一直不收敛怎么办? https://www.zhihu.com/question/599218964/answer/3015707632
【002】DQN表现稳定提升和收敛的技巧集锦https://zhuanlan.zhihu.com/p/625559091