深度强化学习中的 LSTM 与经验回放有何不同?

人工智能 强化学习 长短期记忆 深度学习 比较 经验回放
2021-11-13 20:28:09

在论文Deep Recurrent Q-Learning for Partially Observable MDPs中,作者处理了最后带有 LSTM 层的 Atari 游戏帧。我的问题是:

  • 这种方法与经验回放有何不同,因为它们都在训练中使用过去的信息?

  • 这两种技术的典型应用是什么?

  • 他们可以一起工作吗?

  • 如果它们可以一起工作,是否意味着状态不再是单个状态,而是一组连续的状态?

1个回答

这种方法与经验回放有何不同,因为它们都在训练中使用过去的信息?这两种技术的典型应用是什么?

使用循环神经网络是代理建立隐藏或未观察状态模型的一种方法,以便在直接观察不能提供足够信息时改进其预测,但观察历史可能会提供更好的信息。另一种方法是学习隐马尔可夫模型这两种方法都建立了一个内部表示,当代理做出决定时,它被有效地视为状态的一部分。它们是解决POMDP的一种方法

您可以考虑使用来自 Atari 游戏的单个帧图像作为 POMDP 的状态,因为每个单独的帧不包含有关速度的信息。游戏中物体的速度是许多电子游戏中的一个重要概念。通过将问题表述为具有单个图像输入的 POMDP,这挑战了智能体从一系列图像中找到速度的某种表示(或概念上类似的东西)。从技术上讲,NN 也可以一次使用 4 帧的固定输入来执行此操作(根据原始 DQN Atari 论文),但在这种情况下,设计者故意为代理提前“解决”了问题的部分可观察部分,通过从一开始就选择更好的状态表示。

经验回放解决了一些不同的问题:

  • 通过从观察到的转换中反复学习,有效地利用经验。当代理需要使用低学习率时,这一点很重要,因为当环境具有随机元素或代理包含复杂的非线性函数逼近器(如神经网络)时。

  • 对样本进行去相关处理,以避免最适合 iid 数据的函数逼近器出现问题。如果您没有有效地打乱数据集,则每个时间步之间的相关性可能会导致前馈神经网络出现重大问题。

这两个问题对于学习 DQN 中神经网络的稳定性很重要。如果没有经验回放,通常使用神经网络的 Q-learning 将根本无法收敛。

他们可以一起工作吗?

有点,但不是很直接,因为 LSTM 需要一次输入多个相关的时间步,而不是随机采样的单个时间步。但是,您可以保留较长轨迹的历史记录,并从中抽取部分作为历史记录,以便训练 LSTM。这仍然可以实现有效利用经验的目标。根据 LSTM 架构,您可能需要对相当长的轨迹甚至完整的情节进行采样才能做到这一点。

从 Muppet 的评论来看,似乎甚至可以通过保存 LSTM 状态来对单个步骤进行更随机的采样。例如,有一篇论文“时间序列的深度强化学习:玩理想化的交易游戏”,作者得到了一个工作系统来做这件事。我自己没有这种方法的经验,并且有理论上的原因可能无法在所有情况下都有效,但这是一种选择。

如果它们可以一起工作,是否意味着状态不再是单个状态,而是一组连续的状态?

并非如此,任何时间步长的状态仍然是单个状态表示,在概念上与观察是分开的,并且在概念上与用于训练 RNN 的轨迹或状态序列分开(其他 RL 方法,例如 TD(λ)也需要更长的轨迹)。使用 LSTM 意味着您在每个时间步都有隐藏状态(与您能够观察到的相比),并且您希望 LSTM 能够找到一种表示它的方法。

一种思考方式是状态是当前观察,加上观察历史的总结。最初的 Atari DQN 论文只是简单地将前三个观察结果硬编码为这个“总结”,这似乎捕获了足够的信息来使预测值函数可靠。

LSTM 方法在一定程度上很有趣,因为它不依赖人工输入来决定如何从观察中构建状态,而是自己发现了这一点。深度学习的一个关键目标是设计和架构更少依赖于人类对问题的解释(通常这些使用特征工程来协助学习过程)。一个可以直接从原始观察中工作的代理已经解决了更多的问题,而不需要构建它的工程师注入知识。