趋近智
循环神经网络(RNN)在学习序列中的长距离依赖关系时面临挑战。主要的困难在于梯度消失问题,这导致在反向传播过程中,梯度变得过小,无法有效更新网络在较早时间步的权重。这种局限性阻碍了它们捕捉远距离元素间关系的能力。为了解决这一问题,一种更先进的循环架构被提出:长短期记忆(LSTM)网络,由Hochreiter和Schmidhuber于1997年首次引入。
LSTM 被明确设计用于长期记忆信息。其核心改进是细胞状态(Ct),常被视为网络的“记忆”,它能够在许多时间步中相对不变地传递信息。与简单RNN中单一的隐藏状态变换不同,LSTM使用一套门系统来精细调节信息进出此细胞状态。
一个LSTM单元顺序处理数据,接收当前时间步的输入(xt)和来自前一时间步的隐藏状态(ht−1),以计算新的隐藏状态(ht)并更新其内部细胞状态(Ct)。这个过程由三个主要门控制:
遗忘门(ft): 这个门决定从细胞状态中丢弃哪些信息。它会查看ht−1和xt,并为前一细胞状态Ct−1中的每个数值输出一个0到1之间的数。1表示“完全保留”,而0表示“完全丢弃”。它使用sigmoid激活函数(σ)。 ft=σ(Wf[ht−1,xt]+bf) 其中,[ht−1,xt]表示前一隐藏状态和当前输入的拼接,Wf是权重,bf是遗忘门的偏置。
输入门(it): 这个门决定哪些新信息将被存储到细胞状态中。它由两部分组成:
tanh层创建新的候选值向量C~t,这些值可以添加到状态中。
C~t=tanh(WC[ht−1,xt]+bC)
这两部分结合起来更新细胞状态。更新细胞状态: 旧细胞状态Ct−1更新为新细胞状态Ct。我们将旧状态乘以ft,从而遗忘我们之前决定遗忘的信息。然后我们添加it∗C~t。这是新的候选信息,根据我们决定更新每个状态值的程度进行缩放。 Ct=ft∗Ct−1+it∗C~t 注意这里的加法运算。这种加法交互对于梯度更好地流动很重要,相比之下,简单RNN中是重复的乘法运算。
输出门(ot): 这个门决定下一个隐藏状态ht(此时间步的输出)应该是什么。输出将基于过滤后的细胞状态。
tanh函数(将值推到-1和1之间),并乘以sigmoid门ot的输出。这确保我们只输出我们决定要输出的部分。
ht=ot∗tanh(Ct)隐藏状态ht随后被传递到下一个时间步(作为ht−1),也可以作为模型在当前时间步的输出。
一个LSTM细胞的结构,其门控着信息流经细胞状态,可以如下所示:
单个LSTM细胞内的数据流。箭头表示数据依赖关系。标有'X'的圆表示按元素乘法,'+'表示按元素加法,'\u03c3'表示sigmoid函数,'tanh'表示双曲正切函数。细胞状态就像一条传送带,门控着信息的移除和添加。
LSTM能够优于简单RNN处理长距离依赖关系的机制在于细胞状态和门控机制。
可以将细胞状态视为一条随时间传递信息的传送带。遗忘门从传送带上移除项目,输入门添加新项目,输出门从传送带上读取项目以决定即时输出(隐藏状态)。这种结构在长时间内保留信号方面更有效。
LSTM在各种NLP任务中取得了巨大成功,包括机器翻译、情感分析和序列标注,这正是因为它们能够捕获长距离上下文。虽然它们比简单RNN更复杂,但其有效性通常足以弥补额外的计算开销。
在下一节中,我们将介绍门控循环单元(GRU),它是LSTM的一个略微简化的变体,通常能达到相当的性能。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造