视频封面

视频元信息

  • 所属课程:吴恩达深度学习专项课程 - 序列模型(Sequence Models)- 1.10 长短期记忆(LSTM)
  • 主题:LSTM(Long Short-Term Memory,长短期记忆网络)的结构、公式、门控机制、与 GRU 的对比

内容摘要(TL;DR)

本节介绍 LSTM(长短期记忆网络),它是比 GRU 更强大、更通用的序列建模单元,由 Hochreiter 与 Schmidhuber 提出。LSTM 通过更新门、遗忘门、输出门三个门控制记忆单元 C,并取消了 GRU 中 A=C 的设定,使 A 由输出门与 C 逐元素相乘得到。LSTM 能更好地捕捉长距离依赖,是历史上更被验证的默认选择。


一、从 GRU 到 LSTM 的引入 [00:00]

上一节讲了 GRU(Gated Recurrent Unit,门控循环单元),它能学习序列中的长距离连接。本节介绍另一种同样擅长此事的单元——LSTM(Long Short-Term Memory,长短期记忆网络),它比 GRU 更强大。

回顾 GRU 的设定:

  • A_t = C_t(激活值等于记忆单元值)
  • 有两个门:更新门(update gate) 和 相关门(relevance gate)
  • C̃_t 是用于替换记忆单元的候选值
  • 用更新门 Γ_u 决定是否用 C̃_t 更新 C_t

考点:GRU 只有 2 个门,LSTM 有 3 个门;GRU 中 A=C,LSTM 中 A≠C。 这是两者最核心的结构差异,也是考试和面试高频对比点。


二、LSTM 的历史渊源 [00:43]

LSTM 由 Sepp Hochreiter 和 Jürgen Schmidhuber 提出(转录中 "step-hawk writer and your arrangement Ruber" 为语音识别错误)。

  • 这是一篇奠基性(seminal)论文,对序列建模产生了巨大影响。
  • 论文较难阅读,大量涉及梯度消失(vanishing gradients)理论。
  • 因此,很多人是通过其他资料而非原论文来学习 LSTM 细节的。
  • 理解:原论文偏理论,而吴恩达课程用公式+图示的方式讲解,更适合工程入门。

三、LSTM 的核心公式与门控机制 [01:19]

LSTM 继续沿用记忆单元 C 和候选值 C̃_t,但有几个关键变化。

3.1 取消 A=C 的设定 [01:35]

  • LSTM 中 不再有 A_t = C_t。
  • 公式中更明确地使用 A_{t-1}、C_{t-1}。
  • LSTM 中不使用 GRU 的相关门 Γ_r(不过某些 LSTM 变体可以把它加回来,常见版本不加)。

3.2 两个独立门:更新门与遗忘门 [02:08]

GRU 用一个更新门同时控制两项(Γ_u 和 1−Γ_u)。LSTM 则拆成两个独立门:

  • 更新门 Γ_u:控制新候选值 C̃_t 的写入
  • 遗忘门 Γ_f:控制旧记忆 C_{t-1} 的保留

$$\Gamma_f = \sigma(W_f \cdot [A_{t-1}, X_t] + b_f)$$

易错点:GRU 中是 (1 − Γ_u),LSTM 中替换为独立的遗忘门 Γ_f。 这是 LSTM 公式与 GRU 公式最关键的一处区别,考试常考。

3.3 输出门 Γ_o [03:05]

LSTM 新增输出门 Γ_o:

$$\Gamma_o = \sigma(W_o \cdot [A_{t-1}, X_t] + b_o)$$

3.4 记忆单元更新公式 [03:05]

$$C_t = \Gamma_u \odot \tilde{C}t + \Gamma_f \odot C$$

  • ⊙ 表示逐元素相乘(element-wise multiplication)
  • 含义:记忆单元可以选择保留旧值 C_{t-1},再叠加新值 C̃_t
  • 推导:若 Γ_u=0、Γ_f=1,则 C_t = C_{t-1},记忆原封不动传递下去,这正是 LSTM 能长期记忆的数学根源。

3.5 激活值输出公式 [03:57]

$$A_t = \Gamma_o \odot C_t$$

  • 不再像 GRU 那样 A_t = C_t,而是输出门与 C_t 逐元素相乘。

考点:LSTM 三个门分别是——更新门(update)、遗忘门(forget)、输出门(output)。 记忆口诀:"更新写入、遗忘保留、输出激活"。


四、LSTM 的结构图与直觉 [04:22]

吴恩达用图示帮助理解(该图受 Chris Olah 的博客《Understanding LSTM Networks》 启发)。

4.1 图中关键要点 [04:58]

  • A_{t-1} 和 X_t 一起 用于计算所有门值:遗忘门、更新门、输出门。
  • 它们也通过一个 tanh 层计算候选值 C̃_t。
  • 这些值通过复杂的逐元素相乘等方式,从 C_{t-1} 组合出 C_t。

4.2 时间展开连接 [05:32]

将多个 LSTM 单元并排、按时间连接:

  • 输入 X_1、X_2、X_3……
  • 前一时间步的输出 A 作为下一时间步的输入 A
  • C 同理在时间步之间传递

4.3 顶部"传送带"的妙处 [05:59]

图中顶部有一条线(对应 C 的传递路径):

  • 只要适当设置遗忘门和更新门,LSTM 很容易把某个值 C_0 一路传递到最右边,例如 C_3 = C_0。
  • 这正是 LSTM(以及 GRU)擅长长期记忆的原因:某些存在记忆单元里的实数值,可以跨越很多很多时间步被保留。

重点:LSTM 的"恒定误差传送带(constant error carousel)"是缓解梯度消失的关键机制。 记忆单元 C 的线性传递路径让梯度可以近乎无衰减地回传。


五、LSTM 的常见变体:窥视孔连接 [06:36]

5.1 窥视孔连接(Peephole Connection)

最常见的一种变体:

  • 门值不仅依赖 A_{t-1} 和 X_t,还偷看(sneak in)C_{t-1}。
  • 这种设计叫 Peephole Connection(窥视孔连接)。
  • 窥视孔可以进入全部三个门的计算。

易错点:Peephole Connection 的含义是"用 C_{t-1} 影响门值"。 转录中语音识别成 "PPO connection",实际是 Peephole(窥视孔)。

5.2 维度与一一对应关系 [07:28]

  • 设隐藏记忆单元是 100 维向量。
  • C_{t-1} 的第 5 个元素只影响对应门的第 5 个元素。
  • 这是一种一一对应(one-to-one) 关系,而非全连接。
  • 理解:窥视孔是逐元素的,而非矩阵乘法,所以维度必须一致。

六、GRU 与 LSTM 的对比与选择 [08:16]

6.1 历史顺序 [08:16]

  • 虽然课程先讲 GRU,但LSTM 出现得更早。
  • GRU 是较新的发明,可看作是对复杂 LSTM 模型的简化产物。

6.2 性能对比 [08:48]

  • 研究者在很多问题上都试过两种模型,不同问题胜出者不同。
  • 没有放之四海皆准的更优算法,所以两者都值得掌握。

6.3 各自优势 [08:54]

维度 GRU LSTM
门数量 2 个 3 个
复杂度 更简单 更复杂
计算速度 更快 稍慢
可扩展性 更易搭建大网络 稍难扩展
表达能力 较弱 更强、更灵活
历史验证 较新 更充分

6.4 实践建议 [09:15]

  • LSTM 是历史上更被验证的选择,多数人今天仍把 LSTM 作为默认首选。
  • 但近几年 GRU 势头上升,越来越多团队使用 GRU,因为它更简单、往往效果相当,且更易扩展到更大问题。

考点:如果只能选一个,吴恩达推荐 LSTM 作为默认首选。 但 GRU 更简单、更快,近年使用增多。


七、本节总结 [09:43]

无论是 GRU 还是 LSTM,你都能构建出能够捕捉更长距离依赖的循环神经网络。

  • LSTM:3 个门(更新、遗忘、输出),A ≠ C,表达力更强
  • GRU:2 个门(更新、相关),A = C,更简单更快
  • 两者都能缓解梯度消失,实现长期记忆

关键标签 / 关键词

LSTM 长短期记忆 GRU 门控循环单元 更新门 遗忘门 输出门 记忆单元 候选值 Peephole Connection 窥视孔连接 梯度消失 长距离依赖 序列建模 Hochreiter Schmidhuber Chris Olah 循环神经网络 RNN


生成时间:2026-10-11 01:18:58 生成平台:VideoNote www.xygy.top