# Feedback Recurrent Memory Q-Network

> [Control of Memory, Active Perception, and Action in Minecraft](https://arxiv.org/pdf/1605.09128.pdf)

本文介绍了《我的世界》(一个可扩展的三维世界)的一套新的强化学习任务。然后，我们使用这些任务系统地比较和对比现有的深度强化学习结构和我们新的基于记忆的深度强化学习结构。这些任务旨在以可控的方式强调对人工呼吸方法构成挑战的问题，包括部分观察能力(由于第一人称视觉观察)、延迟奖励、高维视觉观察以及正确使用主动感知以在任务中表现良好的需要。虽然这些任务在概念上很容易描述，但由于同时具有所有这些挑战，它们对于当前的DRL架构来说是困难的。此外，我们还评估了在训练期间未使用的环境中的结构的泛化性能。实验结果表明，我们的新体系结构比现有的DRL所有体系结构更好地推广到未知环境。

## 方法

### Neural Networks with External Memory

Graves等人（2014）提出了神经图灵机（NTM），一种可微分的外部存储器架构，并表明它可以学习复制和逆算法。Zaremba& Sutskever (2015 )提出了具有不可微内存的反向链路传输机制，以扩大传输机制的寻址机制，并应用策略梯度来训练体系结构。Joulin和Mikolov（2015）使用神经网络实现了堆栈，并证明它可以推断出几种算法模式。Sukhbaatar等。 （2015b）提出了一个用于Q＆​​A和语言建模任务的内存网络（MemNN），它根据问题存储所有输入并检索相关的内存块。

### Architectures

从记忆中检索先前观察的重要性取决于当前的背景。 例如，在图1的迷宫中，指示器块的颜色决定了所需的目标颜色，只有当代理人看到一个潜在的目标并且必须决定是否需要时，指示器信息才是重要的。 探索或寻找不同的目标。 受现有DRL架构中缺乏“依赖于上下文的记忆检索”启发，我们在本节中提出了三种新的基于记忆的架构。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbQvUEopSHiuPKBOgeQ%2Fimage.png?alt=media\&token=8fab8f3e-4969-450a-90f2-e6741e59ba09)

我们提出的架构（图3c-e）包括用于从图像中提取高级特征的卷积网络（§4.1），一个保留最近观察历史的记忆（§4.2），以及用于两者的上下文向量。 记忆检索和（部分）行动价值估计（§4.3）。根据上下文向量的构造方式，我们获得三种新架构：Memory Q-Network（MQN），Recurrent Memory Q-Network（RMQN）和Feedback Recurrent Memory Q-Network（FRMQN）。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbQt4u_Yf8lUucYGZO2%2Fimage.png?alt=media\&token=b11cc840-6ad9-4dd4-88f8-1928fcf24c27)

#### Encoding

对于每个时间步长，将原始观察（像素）编码为固定长度矢量，如下所述：

$$
\mathbf{e}*{t}=\varphi^{e n c}\left(\mathbf{x}*{t}\right)
$$

在这项工作中，我们使用CNN对观察像素进行编码。

#### Memory

所提出的架构中的存储器操作与MemNN中的类似。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbQt0gv65kiHPOwzXs4%2Fimage.png?alt=media\&token=78abde0f-3ffc-4786-80e0-8b690228c389)

*Write*

如图2(a)所示，最后一组编码特征被线性转换并存储到记忆&#x4E2D;*。*&#x66F4;正式地说，两种类型的存储器块定义如下：

$$
\begin{aligned} \mathbf{M}*{t}^{k e y} &=\mathbf{W}^{k e y} \mathbf{E}*{t} \ \mathbf{M}*{t}^{v a l} &=\mathbf{W}^{v a l} \mathbf{E}*{t} \end{aligned}
$$

其中 $$\mathbf{E}*{t}=\left\[\mathbf{e}*{t-1}, \mathbf{e}*{t-2}, \dots, \mathbf{e}*{t-M}\right] \in \mathbb{R}^{e \times M}$$ 是最后M个观察状态的enconding连接。

*Read*

记忆的读取机制是基于软注意力如图2b所示。给定上下文向量 $$\mathbf{h}\_{t} \in \mathbb{R}^{m}$$ ( §4.3 )，存储器模块通过如下计算上下文和所有关键存储器块之间的内积来引起对存储器位置(以及隐含时间)的软注意：

$$
p\_{t, i}=\frac{\exp \left(\mathbf{h}*{t}^{\top} \mathbf{M}*{t}^{k e y}\[i]\right)}{\sum\_{j=1}^{M} \exp \left(\mathbf{h}*{t}^{\top} \mathbf{M}*{t}^{k e y}\[j]\right)}
$$

$$
\mathbf{o}*{t}=\mathbf{M}*{t}^{v a l} \mathbf{p}\_{t}
$$

#### Context

要从内存中检索有用信息，上下文向量应从观察中捕获相关的时空信息。 为此，我们提出了三种不同的体系结构来构造上下文向量：

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbR3m_2kTI92PUPasIU%2Fimage.png?alt=media\&token=97b44b64-e18d-46aa-a1be-1c57ba640411)

FRMQN有一个从检索到的内存到上下文向量的反馈连接，如图4所示。这允许FRMQN体系结构基于先前检索的内存来优化其上下文，以便随着时间的推移它可以进行更复杂的调整。请注意，反馈连接类似于内存中的多跳概念，即体系结构基于先前检索的内存多次检索内存块。然而，FRMQN会随着时间的推移检索内存块，而MemNN不会。

最后，架构通过合并检索到的内存和上下文向量来估计动作值：

$$
\mathbf{q}*{t}=\varphi^{q}\left(\mathbf{h}*{t}, \mathbf{o}\_{t}\right)
$$

## 实验

实验、基线和任务的设计是为了研究上下文相关的记忆检索对于推广到看不见的地图是多么有用，以及FRMQN中的记忆反馈连接何时是有帮助的。

### I-Maze

我们的I-Maze任务受到T-Mazes的启发，T-Mazes已被用于动物认知实验（Olton，1979）。 此任务的地图（参见图5a）有一个顶部指示黄色或绿色的机会均等。 如果指示器为黄色，则红色块给出+1奖励，蓝色块给出-1奖励; 如果指标为绿色，则红色块给出-1，蓝色块给出+1奖励。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbR7BLZKdJQMMJTGNMl%2Fimage.png?alt=media\&token=dcd78f2b-2de5-461f-8882-17f6cd3c8c24)

### Pattern Matching

如图5b所示，该地图由两个3×3个房间组成。这两个房间的视觉模式相同或不同，概率相等。两个房间有完全相同的颜色模式，代理人应该访问蓝色区域。如果房间有不同的颜色模式，代理应该访问红色块。如果代理访问了正确的块，它将收到+ 1奖励；如果访问了错误的块，它将收到- 1奖励。这个模式匹配任务需要比上面的I-Maze任务更复杂的推理(比较在不同时间步长给出的两个虚拟模式)。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbR7PVAmbUWl4Vn2mR0%2Fimage.png?alt=media\&token=da6e2d4f-523e-41f4-97a4-8aef46a2be79)

*Analysis of memory retrieval*

图7b中显示了一个FR-MQN内存检索的例子。FR-MQN关注两个房间，随着时间的推移，权重逐渐从一个房间移动到另一个房间，这意味着上下文向量根据通过反馈连接检索到的房间的编码特征被反复细化。鉴于这种可视化及其良好的泛化性能，我们假设FRMQN利用反馈连接来比较两个可视化特征，而不是在一个单独的时间步骤中进行比较。这一结果支持了我们的观点，即反馈连接可以在需要对检索到的记忆进行更复杂推理的任务中发挥重要作用。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbR8hgYJxfKl-nVzNlA%2Fimage.png?alt=media\&token=99e9b220-7ba8-4629-aa5f-60976d7ff1a4)

### Random Mazes

随机迷宫任务由随机生成的墙和目标位置组成，如图5c和5d所示。我们使用随机迷宫呈现4类任务。

* 单一目标：任务是访问给予+1奖励的蓝色区块，同时避免给予-1奖励的红色区块
* 顺序目标：任务是访问红色块第一个，然后是蓝色块，后面分别给出+0.5和+1。 如果代理以相反的顺序访问彩色块，则它分别接收-0.5和-1奖励。
* 带指示器的单一目标:如果指示器为黄色，任务是访问红色块。如果指示器为绿色，任务是访问蓝色区块。访问正确的块会得到+ 1奖励，访问不正确的块会得到- 1奖励
* 带指示符的顺序目标：如果指标为黄色低，则任务是首先访问蓝色块，然后访问红色块。 如果指示器为绿色，则任务是首先访问红色块，然后访问蓝色块。 以正确的顺序访问块会导致第一个块为+0.5，第二个块为+1奖励。 以相反的顺序访问块会导致-0.5和-1奖励。

![](https://2281160879-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaNHyhKoX7GdL4Ytevq%2F-LbQsomd4_s6fuTpXBfI%2F-LbR8aL1dodIcPXUpg3X%2Fimage.png?alt=media\&token=3307af8f-337e-4e9d-ae35-150ebbc147f1)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hujian.gitbook.io/deep-reinforcement-learning/fang-fa/kai-fang-shi-jie-you-xi/recurrent-memory-q-network.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
