
视频元信息
- 所属课程:吴恩达深度学习专项课程 - 序列模型(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