记忆增强神经网络:从神经图灵机到可微神经计算机
1. 循环神经网络的潜力与挑战
循环神经网络(RNN)在解决复杂问题(如机器翻译)方面已展现出显著效果。理论上,RNN 架构是通用的函数表示器,即具有图灵完备性。这意味着在合适的连接和参数下,RNN 能够学习解决任何可计算问题,也就是能用计算机算法或图灵机解决的问题。
然而,在实践中实现这种通用性极为困难。原因在于 RNN 可能的连接方式和参数值构成了一个极其庞大的搜索空间,梯度下降法难以在这个巨大空间中为任意问题找到合适的解决方案。
2. 神经图灵机(NTM)的诞生
2.1 灵感来源
以一个简单的阅读理解问题为例:
Mary travelled to the hallway. She grabbed the milk glass there. Then she travelled to the office, where she found an apple and grabbed it. How many objects is Mary carrying?
若用简单的计算机程序解决此问题,步骤如下:
1. 为计数器分配一个内存位置。
2. 将计数器初始化为 0。
3. 遍历段落中的每个单词:
- 若单词为 ‘grabbed’,则计数器加 1。
4. 返回计数器的值。
人类大脑处理此类任务的方式与之类似。阅读时,大脑会分配内存并存储信息,根据不同句子更新存储内容,最后根据问题查询相应内存位置得出答案。这种临时存储和处理信息的系统被称为工作记忆,它是神经图灵机研究的主要灵感来源。
2.2 NTM 架构
2014 年,Google DeepMind 的 Graves 等人提出了神经图灵机(NTM)。NTM 由一个控制器神经网络(通常是 RNN)和一个类似于大脑工作记忆的外部存储器组成。NTM 与现代计算机架构有相似之处:外部存储器类似于 RAM,读写头类似于读写总线,控制器网络类似于 CPU,但不同的是控制器网络会自主学习程序,而 CPU 是被输入程序。
2.3 NTM 的优势
从 RNN 的图灵完备性角度看,为 RNN 增加外部存储器用于临时存储,能大幅缩小搜索空间。因为我们不再需要寻找既能处理又能存储信息的 RNN,只需关注能处理外部存储信息的 RNN。这使得 NTM 能够挖掘出 RNN 之前被限制的潜力,例如它可以学习完成从复制输入序列、模拟 N - 元模型到对数据进行优先排序等多种任务。
3. 基于注意力的内存访问
3.1 可微性要求
为了使用基于梯度的搜索方法训练 NTM,整个架构必须是可微的,即具有端到端可微性,这样才能计算输出损失相对于处理输入的模型参数的梯度。如果像数字计算机访问 RAM 那样通过离散地址访问 NTM 的内存,地址的离散性会导致输出梯度出现不连续性,从而无法使用基于梯度的方法训练模型。因此,需要一种连续的方式访问内存,同时能够“聚焦”到特定位置,而注意力机制可以实现这种连续聚焦。
3.2 注意力向量的使用
每个头生成一个与内存位置数量相同大小的归一化 softmax 注意力向量,而不是生成离散的内存地址。通过这个注意力向量,可以以模糊的方式同时访问所有内存位置,向量中的每个值表示对相应位置的关注程度或访问可能性。
3.2.1 读取操作
在时间步 t,从 N × W 的 NTM 内存矩阵 $M_t$(N 为位置数量,W 为位置大小)中读取向量时,生成一个大小为 N 的注意力向量(或加权向量)$w_t$,读取向量 $r_t$ 可通过以下公式计算:
$r_t = M_t^T w_t$
其中 $T$ 表示矩阵转置操作。
3.2.2 写入操作
写入头也使用类似的注意力加权方法。控制器通过擦除向量 $e_t$(包含 W 个介于 0 和 1 之间的值,用于指定擦除内容)和写入向量 $v_t$(包含 W 个值,用于指定写入内容)来控制写入操作。内存矩阵的更新公式为:
$M_t = M_{t - 1} \circ E - w_t e_t^T + w_t v_t^T$
其中 $E$ 是全 1 矩阵,$\circ$ 表示元素级乘法。加权向量 $w_t$ 指示了擦除和写入操作的聚焦位置。
4. NTM 内存寻址机制
4.1 基于内容的寻址机制
NTM 期望能够根据内存位置包含的值访问该位置,基于内容的寻址机制可以实现这一点。控制器发出一个键 $k_t$,然后测量该键与每个内存位置存储信息的相似度,将注意力集中在最相似的位置。这种加权计算方式如下:
$\alpha(M, k, \beta) = \frac{\exp(\beta \cdot sim(M, k))}{\sum_{i = 0}^{N} \exp(\beta \cdot sim(M_i, k))}$
其中 $sim$ 是某种相似度度量(如余弦相似度),$\beta$ 是一个额外的参数,称为键强度,用于在需要时调整注意力权重。
4.2 基于位置的寻址机制
4.2.1 插值操作
为了在内存中前后移动,需要结合上一步的访问加权 $w_{t - 1}$ 和新的基于内容的加权 $w_t^c$。通过一个介于 0 和 1 之间的标量 $g_t$ 进行插值:
$w_t^g = g_t w_t^c + (1 - g_t) w_{t - 1}$
$g_t$ 称为插值门,由控制器发出,用于控制当前时间步使用的信息类型。当 $g_t$ 接近 1 时,倾向于基于内容查找的寻址;当 $g_t$ 接近 0 时,倾向于传递当前位置信息而忽略基于内容的寻址。
4.2.2 移位操作
为了在内存中移动聚焦位置,将插值后的加权向量 $w_t^g$ 与控制器发出的移位加权向量 $s_t$ 进行卷积。移位加权向量 $s_t$ 是一个大小为 $n + 1$ 的归一化 softmax 注意力向量($n$ 是一个偶数,表示围绕聚焦位置的可能移位数量)。移位操作通过旋转卷积实现,以处理移位权重超出插值加权向量范围的情况。移位后的加权向量 $w_t^s$ 计算公式如下:
$w_{t, i} = \sum_{j = 0}^{n} s_{t, j} w_{t, (i + \frac{n}{2} - j) \bmod N}^g$
4.2.3 锐化操作
由于卷积操作的性质,不尖锐的移位加权向量会导致移位后的加权向量变得模糊。为了克服这种模糊效果,对移位后的加权向量进行锐化操作。控制器发出一个标量 $\gamma_t \geq 1$,通过以下公式锐化加权向量:
$w_t = \frac{(w_t^s)^{\gamma_t}}{\sum_{i = 0}^{N} (w_{t, i}^s)^{\gamma_t}}$
4.3 NTM 解决任务示例:复制任务
复制任务是一个能深入了解 NTM 工作原理的例子。在该任务中,向模型输入一系列随机二进制向量,以一个特殊的结束符号结尾,然后要求模型将输入序列复制到输出。可视化结果显示,在输入阶段,NTM 会逐步将输入写入连续的内存位置;在输出阶段,NTM 会回到第一个写入的向量,依次读取并返回之前写入的输入序列。
以下是 NTM 内存寻址机制的流程图:
graph TD;
A[开始] --> B[基于内容的寻址];
B --> C[插值操作];
C --> D[移位操作];
D --> E[锐化操作];
E --> F[最终加权向量];
F --> G[执行读写操作];
G --> H[结束];
5. 可微神经计算机(DNC)的出现
5.1 NTM 的局限性
尽管 NTM 功能强大,但在内存机制方面存在一些局限性:
1.
数据干扰问题
:NTM 无法确保写入的数据之间不发生干扰或重叠。由于“可微”写入操作的性质,新数据会在一定程度上写入整个内存,尽管注意力机制通常会使写入权重集中在单个内存位置,但不能保证完全无干扰。
2.
内存复用问题
:一旦一个内存位置被写入,即使其中存储的数据变得无关紧要,也无法再次使用该位置。这导致新数据会被写入新的位置,通常是连续的位置。
3.
时间信息记录问题
:NTM 记录写入数据时间信息的唯一方式是将连续数据存储在连续位置。如果写入头在写入连续数据时跳到内存的其他位置,读取头将无法恢复跳跃前后数据之间的时间联系。
5.2 DNC 架构
2016 年 10 月,DeepMind 的 Graves 等人提出了可微神经计算机(DNC),以改进 NTM 并解决上述局限性。DNC 同样由一个控制器和一个外部存储器组成。外部存储器由 $N$ 个大小为 $W$ 的单词组成,形成一个 $N \times W$ 的矩阵 $M$。
控制器接收一个大小为 $X$ 的输入向量和上一步从存储器中读取的 $R$ 个大小为 $W$ 的向量($R$ 为读取头的数量),经过神经网络处理后返回两部分信息:
- 一个接口向量,包含查询存储器(即读写操作)所需的所有信息。
- 一个大小为 $Y$ 的预输出向量。
外部存储器接收接口向量,通过单个写入头执行写入操作,然后读取 $R$ 个新向量。这些新向量与预输出向量相加,得到最终的输出向量。
5.3 DNC 与 NTM 的比较
| 比较项 | NTM | DNC |
|---|---|---|
| 数据结构 | 仅外部存储器 | 除外部存储器外,还有其他数据结构用于跟踪内存状态 |
| 注意力机制 | 基于内容和位置的寻址机制 | 共享基于内容的寻址机制,但使用更复杂的机制更高效地访问内存 |
| 内存管理 | 存在数据干扰、无法复用内存和时间信息记录问题 | 解决了 NTM 的局限性 |
以下是 DNC 工作流程的流程图:
graph TD;
A[输入向量和读取向量] --> B[控制器处理];
B --> C[生成接口向量和预输出向量];
C --> D[外部存储器];
D --> E[写入操作];
E --> F[读取操作];
F --> G[读取新向量];
G --> H[与预输出向量相加];
H --> I[最终输出向量];
5.4 DNC 内存访问
为了使整个架构可微,DNC 通过大小为 $N$ 的权重向量访问内存。读取头有 $R$ 个权重向量 $w_{t, r, 1}, \cdots, w_{t, r, R}$,写入头有一个权重向量 $w_{t, w}$。内存矩阵的更新和读取向量的计算方式与 NTM 类似:
- 内存矩阵更新:$M_t = M_{t - 1} \circ E - w_{t, w} e_t^T + w_{t, w} v_t^T$
- 读取向量计算:$r_{t, i} = M_t^T w_{t, r, i}$
虽然在写入和读取操作的公式上与 NTM 相似,但 DNC 在获取访问权重的注意力机制上更为复杂,使用了更复杂的机制来更高效地访问内存。
综上所述,从神经图灵机到可微神经计算机的发展,是为了不断挖掘循环神经网络的潜力,解决实际应用中遇到的问题。可微神经计算机通过改进内存机制,在处理复杂任务时具有更大的优势。未来,这些技术有望在更多领域得到应用,如自然语言处理、图像识别等。
记忆增强神经网络:从神经图灵机到可微神经计算机
6. DNC 注意力机制的优势
6.1 更高效的内存利用
DNC 的注意力机制相较于 NTM 更为复杂和高效,这使得它在内存利用上有显著提升。NTM 由于存在数据干扰和无法复用内存的问题,在处理复杂任务时可能会浪费大量的内存资源。而 DNC 通过引入额外的数据结构和更精细的注意力机制,能够更好地管理内存,确保数据的存储和读取更加有序。例如,在处理长序列数据时,DNC 可以更准确地定位和使用所需的内存位置,避免了不必要的内存占用。
6.2 更好的时间信息处理
在记录数据的时间信息方面,DNC 也表现出色。NTM 只能通过连续存储数据来记录时间顺序,一旦写入头跳跃,时间信息就会丢失。DNC 则通过其复杂的注意力机制和额外的数据结构,能够更好地捕捉和维护数据之间的时间关系。这使得 DNC 在处理具有时间依赖的任务,如语音识别、视频分析等方面具有更大的优势。
6.3 增强的任务适应性
由于 DNC 解决了 NTM 的局限性,它能够更好地适应各种不同的任务。无论是简单的复制任务,还是复杂的阅读理解、推理任务,DNC 都能够通过调整其注意力机制和内存管理策略来有效地完成。这种增强的任务适应性使得 DNC 在实际应用中具有更广泛的前景。
以下是 NTM 和 DNC 在不同方面的对比表格:
| 对比方面 | NTM | DNC |
| ---- | ---- | ---- |
| 数据干扰 | 可能存在,无法保证无干扰 | 有效解决,减少数据干扰 |
| 内存复用 | 无法复用已写入的内存位置 | 可以复用内存,提高利用率 |
| 时间信息记录 | 仅通过连续存储记录,易丢失 | 能更好地捕捉和维护时间关系 |
| 任务适应性 | 对某些任务有局限性 | 能适应更广泛的任务类型 |
7. DNC 在实际任务中的应用
7.1 阅读理解任务
以之前提到的阅读理解问题为例,DNC 可以通过其强大的内存管理和注意力机制来解决这类任务。具体步骤如下:
1.
输入处理
:将文本段落和问题作为输入传递给控制器。
2.
内存存储
:在读取文本过程中,DNC 会将关键信息(如人物、地点、动作、物品等)存储到外部存储器中,并通过注意力机制对不同信息进行加权。
3.
问题分析
:控制器根据问题生成查询信息,利用注意力机制在存储器中查找相关信息。
4.
答案生成
:结合查找到的信息,控制器生成最终的答案。
7.2 序列预测任务
在序列预测任务中,如股票价格预测、天气预测等,DNC 可以利用其对时间信息的处理能力和高效的内存管理来提高预测的准确性。具体操作流程如下:
1.
数据输入
:将历史序列数据作为输入传递给 DNC。
2.
特征提取
:控制器从输入数据中提取特征,并将相关信息存储到存储器中。
3.
时间信息建模
:利用注意力机制捕捉序列数据中的时间依赖关系,更新存储器中的信息。
4.
预测生成
:根据存储器中的信息和当前输入,控制器生成对未来序列的预测。
以下是 DNC 处理阅读理解任务的流程图:
graph TD;
A[输入文本段落和问题] --> B[控制器处理输入];
B --> C[将关键信息存储到存储器];
C --> D[根据问题生成查询信息];
D --> E[利用注意力机制查找信息];
E --> F[生成答案];
F --> G[输出答案];
8. 总结与展望
8.1 总结
从循环神经网络到神经图灵机,再到可微神经计算机,记忆增强神经网络的发展是为了不断挖掘神经网络的潜力,解决实际应用中遇到的问题。NTM 通过引入外部存储器和注意力机制,为 RNN 提供了处理复杂任务的能力,但在内存管理方面存在局限性。DNC 则通过改进内存机制,解决了 NTM 的问题,提高了内存利用率、时间信息处理能力和任务适应性。
8.2 展望
未来,记忆增强神经网络有望在更多领域得到应用。在自然语言处理方面,DNC 可以用于更复杂的语义理解、对话系统和机器翻译任务。在图像识别领域,它可以处理具有时间序列的图像数据,如视频分析、动态场景识别等。此外,随着技术的不断发展,记忆增强神经网络可能会与其他技术(如强化学习、生成对抗网络等)相结合,创造出更强大的智能系统。
同时,我们也需要关注记忆增强神经网络的一些挑战,如模型的训练复杂度、计算资源需求等。未来的研究可以致力于优化模型结构和训练算法,降低计算成本,提高模型的效率和性能。总之,记忆增强神经网络为人工智能的发展带来了新的机遇和挑战,值得我们深入研究和探索。
超级会员免费看
342

被折叠的 条评论
为什么被折叠?



