理解openAI 5的模型(1024单元LSTM强化学习)

Understanding the model of openAI 5 (1024 unit LSTM reinforcement learning)

我最近接触到 openAI 5。我很好奇他们的模型是如何构建的并了解它。我阅读了包含架构方案的 wikipedia that it "contains a single layer with a 1024-unit LSTM". Then I found this pdf。

我的问题

从这一切我不明白一些事情:

  1. 拥有 1024 个单元的 LSTM 层意味着什么?这是否意味着我们有 1024 个时间步长和一个 LSTM 单元,或者这是否意味着我们有 1024 个单元。你能给我看一些可视化的图表吗?我尤其难以在一层中可视化 1024 个单元格。 (我尝试查看几个 SO 问题,例如 , , or the openAI 5 blog,但它们并没有多大帮助)。

  2. 如何在这种模型上进行强化学习?我习惯了 RL 与 Q-Tables 一起使用,并且它们在训练期间被更新。这是否仅仅意味着他们的损失函数就是奖励?

  3. 这么大的模型怎么没有梯度消失之类的问题?尚未在 pdf 中看到任何类型的规范化。

  4. 在 pdf 中你可以看到一个蓝色的矩形,看起来像是一个单位,并且有 N 个。这是什么意思?如果我弄错了请纠正我,粉红色的盒子用来 select 最好的 move/item(?)


总的来说,所有这些都可以概括为“openAI 5 模型是如何工作的?

  1. 这意味着隐藏状态的大小是1024个单位,这本质上是你的LSTM在每个时间步长中有1024个单元。我们事先不知道我们会有多少个时间步。

  2. LSTM 的状态(隐藏状态)表示代理观察到的当前状态。它使用收到的输入在每个时间步更新。此隐藏状态可用于预测 Q-function(如 Deep Q-learning)。您没有 (state, action) -> q_value 的显式 table,而是有一个 1024 大小的向量表示状态并馈送到另一个密集层,该层将为所有可能的操作输出 q_values .

  3. LSTM 是帮助阻止梯度消失的机制,因为长程记忆还允许梯度更容易回流。

  4. 如果您指的是蓝色和粉红色的大框,那么粉红色的框看起来像是通过网络放置并汇集在每个拾取器或修改器上的输入值。蓝色 space 似乎在每个单元上都是一样的。拾取、修改器、单位等术语在他们玩的游戏的上下文中应该有意义。

这是 LSTM 的图像 - 每一步的黄色节点是 n:

向量 h 是 LSTM 的隐藏状态,它被传递到下一个时间步并用作该时间步的输出。