深度学习

LSTM

Understanding LSTM

Understanding LSTMs 内容总结

Understanding LSTM 豆包总结截图

本文围绕循环神经网络(RNN)的局限与改进展开,重点讲解长短期记忆网络(LSTM)的原理、结构及变体,旨在帮助读者理解LSTM如何解决RNN的长期依赖问题,以及其在序列任务中的重要价值。

一、背景:循环神经网络(RNN)的作用与局限

1. RNN的核心价值:解决“记忆缺失”问题

传统神经网络无法利用历史信息(如理解句子时无法关联前文、分析视频时无法结合过往帧),而RNN通过网络内的循环结构实现信息持久化——将前一步的输出 作为当前步的输入之一,形成“信息传递链”,天然适配序列数据(文本、语音、视频等)。

  • 结构本质:可看作“多个相同神经网络模块的复制链”,每个模块将信息传递给下一个模块(展开循环后呈链状)。
  • 实际应用:近年来在语音识别、语言建模、机器翻译、图像 caption 生成等领域广泛应用。

2. RNN的关键局限:长期依赖问题

RNN理论上能关联长序列中的历史信息(如“我在法国长大……我说流利的____”中,需通过“法国”推断空缺为“法语”),但在实际训练中,当“相关信息与当前任务的间隔变大”时,会因梯度消失/爆炸无法学习到长期关联。

  • 短期依赖场景:间隔小时可正常工作(如“云朵在____”,通过“云朵”可直接推断“天空”);
  • 长期依赖场景:间隔大时失效(如长文本中,早期关键信息无法传递到后期任务)。 该问题由Hochreiter(1991)和Bengio等人(1994)深入研究,证实其存在基础性障碍。

二、LSTM:解决长期依赖的“改进版RNN”

LSTM(Long Short Term Memory)是RNN的特殊变体,由Hochreiter & Schmidhuber(1997)提出,后经多人优化普及。其核心设计是通过“细胞状态”和“门结构”,让信息长期稳定传递,默认实现“长期记忆”而非“遗忘”

1. LSTM与标准RNN的结构差异

  • 标准RNN:重复模块仅含1个tanh层,结构简单,无法控制信息传递;
  • LSTM:重复模块含4个交互层(3个门控层+1个候选记忆层),通过复杂协作实现信息的“筛选、更新、输出”。

2. 核心概念:细胞状态(Cell State)与门结构(Gates)

(1)细胞状态:信息的“主传送带”

  • 形态:水平贯穿LSTM链的“主线”,类似传送带,仅通过线性交互(无复杂非线性变换)传递信息,确保信息在长序列中几乎无损耗。 - 核心作用:存储长期信息,是LSTM“记忆”的核心载体。

(2)门结构:信息的“控制器”

门结构由sigmoid层(输出0-1值,控制信息通过率)+ 点积操作(按比例筛选信息) 组成,0代表“完全阻断”,1代表“完全通过”。LSTM通过3个门的协作,实现对细胞状态的“遗忘、更新、输出”控制。

3. LSTM的四步工作流程(逐模块解析)

步骤1:遗忘门(Forget Gate)——决定“丢弃哪些旧信息”

  • 输入:前一步隐藏状态(hₜ₋₁)+ 当前输入(xₜ);
  • 操作:sigmoid层输出fₜ(0-1向量),与旧细胞状态(Cₜ₋₁)点积,筛选需保留的旧信息;
  • 示例:语言模型中,当遇到新主语时,通过遗忘门“丢弃旧主语的性别信息”。
  • 公式:fₜ = σ(Wf·[hₜ₋₁, xₜ] + bf)(σ为sigmoid函数,Wf、bf为可学习参数)。

步骤2:输入门(Input Gate)+ 候选记忆层——决定“添加哪些新信息”

  • 分两步筛选新信息:
  1. 输入门(sigmoid层)输出iₜ(0-1向量),确定“哪些新信息需被更新到细胞状态”;
  2. tanh层生成“候选记忆向量”Ĉₜ(值范围-1~1),包含当前步的新信息;
  • 示例:语言模型中,通过输入门和候选层“将新主语的性别信息加入候选记忆”。
  • 公式:iₜ = σ(Wi·[hₜ₋₁, xₜ] + bi)Ĉₜ = tanh(Wc·[hₜ₋₁, xₜ] + bc)

步骤3:细胞状态更新——融合“旧信息”与“新信息”

  • 操作:旧细胞状态(Cₜ₋₁)× 遗忘门输出(fₜ)→ 保留需记忆的旧信息;候选记忆(Ĉₜ)× 输入门输出(iₜ)→ 筛选需加入的新信息;两者相加得到新细胞状态(Cₜ。 - 示例:语言模型中,此处完成“丢弃旧主语性别+加入新主语性别”的核心更新。 - 公式:Cₜ = fₜ × Cₜ₋₁ + iₜ × Ĉₜ

步骤4:输出门(Output Gate)——决定“输出哪些信息到下一步”

  • 输出基于新细胞状态,但需进一步筛选:
  1. sigmoid层输出oₜ(0-1向量),确定“细胞状态中哪些部分需输出”;
  2. 新细胞状态(Cₜ)经tanh层压缩到-1~1,再与oₜ点积,得到当前步隐藏状态(hₜ),传递给下一步。 - 示例:语言模型中,若刚处理完主语,输出门可“优先输出主语的单复数信息”,为后续动词变形做准备。
  • 公式:oₜ = σ(Wo·[hₜ₋₁, xₜ] + bo)hₜ = oₜ × tanh(Cₜ)

三、LSTM的常见变体

实际研究中,LSTM存在多种微调版本,核心逻辑一致,但结构细节有差异,以下为3种典型变体:

1. 带窥视孔连接(Peephole Connections)的LSTM

由Gers & Schmidhuber(2000)提出,允许门结构直接查看细胞状态(而非仅依赖hₜ₋₁xₜ),增强门控决策的准确性。

  • 示例:遗忘门输入变为[Cₜ₋₁, hₜ₋₁, xₜ],输入门、输出门也可加入细胞状态依赖(不同论文可能仅给部分门添加窥视孔)。
  • 公式调整:fₜ = σ(Wf·[Cₜ₋₁, hₜ₋₁, xₜ] + bf)(同理调整iₜoₜ)。

2. 耦合遗忘门与输入门的LSTM

不再“分别决定遗忘和添加”,而是“联动决策”:只有当需要添加新信息时,才遗忘旧信息;只有当遗忘旧信息时,才添加新信息,避免冗余或冲突。

3. 门控循环单元(GRU):简化版LSTM

由Cho等人(2014)提出,是LSTM的轻量化变体,合并多个结构、减少参数,训练效率更高,近年应用广泛:

  • 核心简化:将“遗忘门+输入门”合并为“更新门(zₜ)”,取消独立细胞状态(合并细胞状态与隐藏状态),新增“重置门(rₜ)”控制对历史隐藏状态的依赖;
  • 公式:
    • zₜ = σ(Wz·[hₜ₋₁, xₜ])(更新门:决定保留多少旧状态);
    • rₜ = σ(Wr·[hₜ₋₁, xₜ])(重置门:决定利用多少旧状态生成候选);
    • ĥₜ = tanh(W·[rₜ×hₜ₋₁, xₜ])(候选隐藏状态);
    • hₜ = (1-zₜ)×hₜ₋₁ + zₜ×ĥₜ(最终隐藏状态)。

4. 变体效果对比

  • Greff等人(2015)对比主流变体,发现性能差异极小;
  • Jozefowicz等人(2015)测试超10000种RNN结构,发现部分结构在特定任务上优于LSTM,但LSTM仍为“通用且稳定”的选择。

三、结论与未来方向

1. LSTM的核心价值

几乎所有RNN在序列任务中的“突破性成果”都基于LSTM——它通过精巧的门控与细胞状态设计,彻底解决了RNN的长期依赖问题,成为处理序列数据的核心模型之一。尽管公式看似复杂,但核心逻辑是“通过可控的信息传递,实现长期记忆”。

2. RNN研究的未来方向

LSTM是RNN的重要突破,但研究仍在推进,当前热点包括:

  • 注意力机制(Attention):让RNN每一步“主动选择需关注的信息”(如生成图像caption时,每生成一个词都聚焦图像的对应区域),Xu等人(2015)已实现相关应用,是当前主流方向;
  • 网格LSTM(Grid LSTMs,Kalchbrenner等人,2015):扩展LSTM的维度,适配更复杂的序列结构;
  • 生成模型中的RNN应用:如Gregor等人(2015)、Chung等人(2015)将RNN用于生成任务,探索更灵活的序列生成能力。 作者认为,RNN领域在过去数年已取得巨大进步,未来将有更多突破。

四、致谢

作者感谢Google同事(如Oriol Vinyals、Ilya Sutskever)、Kyunghyun Cho等研究者的反馈,以及两次神经网络研讨会参与者的建议;同时提及Felix Gers、Alex Graves等人为现代LSTM发展的贡献。