长短期记忆网络

Long Short-Term Memory

长短期记忆网络(LSTM)是循环神经网络(RNN)的一种特殊变体。它被精心设计用来解决标准RNN在处理长序列时遇到的长程依赖 (Long-Term Dependency) 问题。LSTM通过引入一个细胞状态 (Cell State) 和三个精巧的门控机制 (Gating Mechanisms),能够有效地学习、记忆和遗忘序列中的长期信息,是深度学习在序列建模领域的里程碑式成就。

核心动机:克服梯度消失

标准循环神经网络在理论上可以连接过去的信息到当前任务,但在实践中,如果序列过长,在训练时会遭遇梯度消失问题。这意味着来自早期时间步的、用于更新网络权重的梯度信号,在通过许多时间步反向传播后会变得极其微弱,导致网络无法学习到长期依赖关系。LSTM的结构正是为了克服这一缺陷而设计的。

LSTM的核心:细胞状态与门

LSTM的关键在于其单元(Cell)内部的设计。除了像普通RNN一样传递隐藏状态(ht)外,LSTM还引入了一个贯穿整个处理链的细胞状态(Ct,可以看作是一条“记忆传送带”。理论上,信息可以在这条传送带上一直流动而不发生改变。而对这条传送带上信息的增删改查,则是由三个“门”来控制的。

每个“门”都是一个小型的神经网络层(通常是一个Sigmoid激活函数)和一个按元素相乘的操作。Sigmoid层的输出介于0和1之间,表示允许多少信息通过(0代表完全不允许,1代表完全允许)。

1. 遗忘门 (Forget Gate)

作用: 决定从细胞状态中丢弃什么信息。

它查看上一个时间步的隐藏状态 ht1 和当前输入 xt,然后为上一个细胞状态 Ct1 中的每个数字输出一个0到1之间的值。1表示“完全保留”,0表示“完全遗忘”。

ft=σ(Wf[ht1,xt]+bf)

2. 输入门 (Input Gate)

作用: 决定让什么新信息存入细胞状态。

这个过程分两步:

  1. 一个Sigmoid层(输入门)决定哪些值需要更新。
  2. 一个tanh层创建一个新的候选值向量 C~t
it=σ(Wi[ht1,xt]+bi)C~t=tanh(WC[ht1,xt]+bC)

然后,结合遗忘门和输入门的结果,来更新细胞状态:

Ct=ftCt1+itC~t

3. 输出门 (Output Gate)

作用: 决定要从细胞状态中输出什么信息。

  1. 一个Sigmoid层决定细胞状态的哪些部分将被输出。
  2. 将细胞状态通过一个tanh层(将其值缩放到-1到1之间),然后与Sigmoid门的输出相乘。

这样,模型就只输出它认为相关的部分作为当前时间步的隐藏状态 ht

ot=σ(Wo[ht1,xt]+bo)ht=ottanh(Ct)

GRU:一个流行的变体

门控循环单元 (Gated Recurrent Unit, GRU) 是LSTM的一个简化版本。它将遗忘门和输入门合并为单一的“更新门”,并混合了细胞状态和隐藏状态。GRU的参数更少,计算上更高效,在许多任务中表现与LSTM相当,因此非常受欢迎。

地位的演变

Transformer架构出现之前,LSTM及其变体是处理序列数据的绝对王者,在机器翻译、文本生成等领域取得了巨大成功。然而,由于其固有的序列计算依赖性,使其难以并行化。如今,在许多大规模自然语言处理任务中,基于注意力机制的Transformer已经取代了LSTM的主导地位。尽管如此,LSTM因其高效性和在某些特定场景下的优异表现,仍在许多应用中占有一席之地。


循环神经网络