序言
在序列建模领域,循环神经网络( Recurrent Neural Network, RNN \text{Recurrent Neural Network, RNN} Recurrent Neural Network, RNN)及其变体,如长短期记忆网络( LSTM \text{LSTM} LSTM)和递归神经网络( Recursive Neural Network, RNN \text{Recursive Neural Network, RNN} Recursive Neural Network, RNN),扮演着至关重要的角色。这些网络通过捕捉序列数据中的时间依赖性,实现了对复杂序列数据的建模与预测。然而,尽管它们在处理短期依赖方面表现出色,但在处理长期依赖时却面临着严峻的挑战。
简述
-
长期依赖的挑战主要源于梯度在反向传播过程中的消失或爆炸问题。在 RNN \text{RNN} RNN中,梯度通过时间步的累积,其值可能因多次乘法操作而逐渐减小(梯度消失)或急剧增大(梯度爆炸)。梯度消失导致网络难以学习到序列中较远距离的信息,而梯度爆炸则可能使训练过程变得不稳定。
-
具体来说,当序列长度较长时,较早时间步的信息在传播到较晚时间步时,其影响可能已变得微乎其微,甚至完全消失。这限制了 RNN \text{RNN} RNN在处理需要长期记忆的任务(如自然语言处理中的长文本理解)时的性能。
长期依赖的挑战
- 学习循环网络长期依赖的数学挑战在
神经网络优化中的挑战篇 - 长期依赖
中引入。- 根本问题是,经过许多阶段传播后的梯度倾向于消失(大部分时间)或爆炸(很少,但对优化过程影响很大)。
- 即使我们假设循环网络是参数稳定的(可存储记忆,且梯度不爆炸),但长期依赖的困难来自比短期相互作用指数小的权重(涉及许多 Jacobian \text{Jacobian} Jacobian相乘)。
- 许多资料提供了更深层次的讨论 ( Hochreiter, 1991a; Doya, 1993; Bengio et al., 1994a; Pascanuet al., 2013a \text{Hochreiter, 1991a; Doya, 1993; Bengio et al., 1994a; Pascanuet al., 2013a} Hochreiter, 1991a; Doya, 1993; Bengio et al., 1994a; Pascanuet al., 2013a)。在本篇中,我们会更详细地描述该问题。其余几节介绍克服这个问题的方法。
- 循环网络涉及相同函数的多次组合,每个时间步一次。这些组合可以导致极端非线性行为,如
图例1
所示。 - 特别地, 循环神经网络所使用的函数组合有点像矩阵乘法。我们可以认为,循环联系:
h ( t ) = W ⊤ h ( t − 1 ) \boldsymbol{h}^{(t)}=\boldsymbol{W}^\top\boldsymbol{h}^{(t-1)} h(t)=W⊤h(t−1) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1 - 是一个非常简单的、缺少非线性激活函数和输入 x 的循环神经网络。如在
神经网络优化中的挑战篇 - 长期依赖
中描述,这种递推关系本质上描述了幂法。它可以被简化为:
h ( t ) = ( W t ) ⊤ h ( 0 ) \boldsymbol{h}^{(t)}=(\boldsymbol{W}^t)^\top\boldsymbol{h}^{(0)} h(t)=(Wt)⊤h(0) — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2 - 而当
W
\boldsymbol{W}
W符合下列形式的特征分解:
W = Q Λ Q ⊤ \boldsymbol{W}=\boldsymbol{Q}\Lambda\boldsymbol{Q}^\top W=QΛQ⊤ — 公式3 \quad\textbf{---\footnotesize{公式3}} —公式3 - 其中,
Q
\boldsymbol{Q}
Q是正交,循环性可进一步简化为:
h ( t ) = Q ⊤ Λ t Q h ( 0 ) \boldsymbol{h}^{(t)}=\boldsymbol{Q}^\top\Lambda^t\boldsymbol{Qh}^{(0)} h(t)=Q⊤ΛtQh(0) — 公式4 \quad\textbf{---\footnotesize{公式4}} —公式4 - 特征值提升到 t t t 次后,导致幅值不到一的特征值衰减到零,而幅值大于一的就会激增。任何不与最大特征向量对齐的 h ( 0 ) \boldsymbol{h}^{(0)} h(0) 的部分将最终被丢弃。
- 这个问题是针对循环网络的。
- 在标量情况下,想象多次乘一个权重 w w w。
- 根据 w w w 的幅值,该乘积 w ( t ) w^{(t)} w(t) 要么消失要么激增。
- 然而,如果每个时刻使用不同权重 w ( t ) w^{(t)} w(t) 的非循环网络,情况就不同了。
- 如果初始状态给定为 1 1 1,那么时刻 t t t 的状态可以由 ∏ t w ( t ) \prod_tw^{(t)} ∏tw(t) 给出。
- 假设 w ( t ) w^{(t)} w(t) 的值是随机生成的,各自独立,且有 0 0 0 均值 v v v 方差。乘积的方差就为 O ( v n ) \Omicron(v^n) O(vn)。
- 为了获得某些期望的方差 v ∗ v^\ast v∗,我们可以选择单个方差为 v = v ∗ n v=\sqrt[n]{v^\ast} v=nv∗权重。
- 因此,非常深的前馈网络通过精心设计的比例可以避免梯度消失和爆炸问题,如 Sussillo (2014) \text{Sussillo (2014)} Sussillo (2014) 所主张的。
-
RNN
\text{RNN}
RNN梯度消失和爆炸问题是由不同研究人员独立发现 (
Hochreiter, 1991a; Bengio et al., 1993, 1994a
\text{Hochreiter, 1991a; Bengio et al., 1993, 1994a}
Hochreiter, 1991a; Bengio et al., 1993, 1994a)。
- 有人可能会希望通过简单地停留在梯度不消失或爆炸的参数空间来避免这个问题。
- 不幸的是,为了储存记忆并对小扰动的鲁棒, RNN \text{RNN} RNN必须进入参数空间中的梯度消失区域 ( Bengio et al., 1993, 1994a \text{Bengio et al., 1993, 1994a} Bengio et al., 1993, 1994a)。
- 具体来说,每当模型能够表示长期依赖时,长期相互作用的梯度幅值就会变得指数小(相比短期相互作用的梯度幅值)。
- 这并不意味着这是不可能学习的,由于长期依赖关系的信号很容易被短期相关性产生的最小波动隐藏,因而学习长期依赖可能需要很长的时间。
- 实践中, Bengio et al. (1994a) \text{Bengio et al. (1994a)} Bengio et al. (1994a) 的实验表明,当我们增加了需要捕获的依赖关系的跨度,基于梯度的优化变得越来越困难, SGD \text{SGD} SGD在长度仅为 10 10 10 或 20 20 20 的序列上成功训练传统RNN的概率迅速变为 0 0 0。
- 将循环网络作为动力系统更深入探讨的资料见:
- Doya (1993) \text{Doya (1993)} Doya (1993);
- Bengio et al. (1994a) \text{Bengio et al. (1994a)} Bengio et al. (1994a);
- Siegelmann and Sontag (1995) \text{Siegelmann and Sontag (1995)} Siegelmann and Sontag (1995),及
- Pascanu et al. (2013b) \text{Pascanu et al. (2013b)} Pascanu et al. (2013b) 的回顾。
- 序列建模之循环和递归网络后续篇章中的其余部分将讨论目前已经提出的降低学习长期依赖(在某些情况下,允许一个 RNN \text{RNN} RNN学习横跨数百步的依赖)难度的不同方法,但学习长期依赖的问题仍是深度学习中的一个主要挑战。
- 图例1:重复组合函数。
-
重复组合函数。
-
说明:
- 当组合许多非线性函数(如这里所示的线性 tanh \text{tanh} tanh 层)时,结果是高度非线性的,通常大多数值与微小的导数相关联,也有一些具有大导数的值,以及在增加和减小之间的多次交替。
- 此处,我们绘制从 100 100 100 维隐藏状态降到单个维度的线性投影,绘制于 y y y 轴上。
- x x x轴是 100 100 100 维空间中沿着随机方向的初始状态的坐标。
- 因此,我们可以将该图视为高维函数的线性截面。
- 曲线显示每个时间步之后的函数,或者等价地,转换函数被组合一定次数之后。
-
总结
因此,解决长期依赖问题是提升循环和递归网络性能的关键。研究者们通过引入LSTM等门控机制、设计多时间尺度的模型结构以及采用优化算法等手段,努力缓解梯度消失和爆炸问题。这些努力不仅推动了序列建模技术的发展,也为处理更复杂、更长的序列数据提供了有力工具。未来,随着技术的不断进步,我们有理由相信,循环和递归网络将在更多领域展现出其独特的优势和潜力。