LSTM:从 RNN 的梯度问题到门控记忆机制
LSTM(Long Short-Term Memory) 是深度学习历史上最重要的序列模型之一。 它解决了传统 RNN 在长序列训练过程中容易出现的梯度消失、梯度爆炸以及长期依赖难以学习等问题。
虽然今天 Transformer 已经成为 NLP、LLM 和多模态模型的主流架构,但理解 LSTM 依然非常重要,因为它能够帮助我们真正理解:
序列建模 → 状态记忆 → 梯度传播 → Attention → Transformer
这一整条技术演进路线。
一、LSTM 是什么?
LSTM 全称:
Long Short-Term Memory
中文:
长短期记忆网络
它属于:
Recurrent Neural Network
↓
RNN
↓
LSTM
LSTM 最核心的思想只有一句话:
通过门控机制决定哪些信息应该保留、哪些信息应该遗忘、哪些信息应该输出。
传统神经网络:
x
↓
Network
↓
y
而 LSTM:
xₜ
↓
LSTM
↓
hₜ
↓
LSTM
↓
hₜ₊₁
↓
LSTM
模型在处理当前输入的同时,还会保留之前的信息。
因此 LSTM 天然适合:
时间序列
语音
文本
股票数据
传感器数据
日志序列
用户行为序列
二、为什么需要 LSTM?
理解 LSTM,必须先理解 RNN。
假设有一个句子:
我出生在中国,后来去了美国,现在我说一口流利的 ______ 。
模型在预测最后一个词的时候,需要记住:
中国
甚至可能需要记住前面很远的信息。
传统 DNN:
Input
↓
DNN
↓
Output
每个输入基本独立。
而 RNN:
x₁ → RNN → h₁
↓
x₂ → RNN → h₂
↓
x₃ → RNN → h₃
↓
...
↓
xₙ → RNN → hₙ
其中:
hₜ
就是隐藏状态。
可以理解为:
hₜ 是 RNN 对过去信息的压缩记忆。
三、传统 RNN 的核心公式
RNN 的基本公式:
hₜ = tanh(Wₓxₜ + Wₕhₜ₋₁ + b)
其中:
xₜ 当前输入
hₜ₋₁ 上一个隐藏状态
hₜ 当前隐藏状态
Wₓ 输入权重
Wₕ 隐藏状态权重
b bias
结构:
hₜ₋₁
│
↓
xₜ ───→ RNN ───→ hₜ
所以:
当前状态
=
当前输入
+
过去状态
这就是 RNN 的核心。
四、RNN 最大的问题:长期依赖
假设:
x₁
↓
x₂
↓
x₃
↓
...
↓
x₁₀₀
如果:
x₁
的信息对于:
x₁₀₀
非常重要,那么 RNN 必须让这个信息经过:
99次状态传递
才能到达最终位置。
训练时则涉及:
Backpropagation Through Time
简称:
BPTT
梯度需要:
∂L/∂h₁₀₀
↓
∂L/∂h₉₉
↓
∂L/∂h₉₈
↓
...
↓
∂L/∂h₁
于是出现一个严重问题:
梯度需要经过大量连续乘法。
五、为什么会出现梯度消失?
假设每次梯度传播都会乘以:
0.5
连续10次:
0.5¹⁰ ≈ 0.00098
连续100次:
0.5¹⁰⁰ ≈ 7.9 × 10⁻³¹
梯度几乎变成:
0
于是前面的网络层几乎无法学习。
这就是:
Vanishing Gradient
梯度消失导致:
RNN 很难学习非常长距离的依赖关系。
六、LSTM 的核心思想
LSTM 不再简单地:
过去状态 + 当前输入
而是增加一个非常重要的状态:
Cell State
完整结构:
┌─────────────────────┐
│ Cell State │
│ Cₜ │
└─────────────────────┘
↑
│
Forget / Input
│
xₜ ───────→ LSTM ───────→ hₜ
↑
│
hₜ₋₁
LSTM 有两个核心状态:
hₜ
Cₜ
其中:
hₜ = Hidden State
Cₜ = Cell State
可以粗略理解为:
hₜ
→ 当前对外表现出来的状态
Cₜ
→ 内部长期记忆
七、LSTM 为什么叫“记忆网络”?
可以把:
Cₜ
想象成一条贯穿整个序列的:
Memory Highway
数据沿着:
Cₜ₋₁
↓
Cₜ
↓
Cₜ₊₁
↓
Cₜ₊₂
传播。
LSTM 不会每一步都彻底重写记忆。
而是通过:
Forget Gate
Input Gate
Output Gate
控制:
忘掉什么
记住什么
输出什么
这就是 LSTM 最核心的设计。
八、LSTM 的三个 Gate
LSTM 有三个主要门:
Forget Gate
Input Gate
Output Gate
可以理解成一个“记忆管理系统”。
LSTM
│
┌────────┼────────┐
↓ ↓ ↓
Forget Input Output
Gate Gate Gate
│ │ │
↓ ↓ ↓
忘记 写入 输出
九、Forget Gate:应该忘记什么?
Forget Gate:
决定之前的记忆哪些应该被删除。
公式:
fₜ = σ(W_f[hₜ₋₁, xₜ] + b_f)
其中:
σ = Sigmoid
输出范围:
0 ~ 1
例如:
fₜ = 0.1
表示:
这个信息基本忘掉
如果:
fₜ = 0.9
表示:
这个信息大部分保留
所以可以理解成:
0 → Forget
1 → Keep
十、Input Gate:应该记住什么?
Input Gate 决定:
当前输入中哪些信息值得写入长期记忆。
首先计算:
iₜ = σ(W_i[hₜ₋₁, xₜ] + b_i)
然后产生候选记忆:
C̃ₜ = tanh(W_c[hₜ₋₁, xₜ] + b_c)
这里有两个概念:
iₜ
→ 写入多少
C̃ₜ
→ 写入什么
十一、Cell State 如何更新?
这是 LSTM 最核心的公式之一:
Cₜ = fₜ ⊙ Cₜ₋₁ + iₜ ⊙ C̃ₜ
拆开:
旧记忆
↓
fₜ × Cₜ₋₁
表示:
保留多少旧信息。
然后:
新信息
↓
iₜ × C̃ₜ
表示:
写入多少新信息。
最终:
新记忆
=
旧记忆 × Forget Gate
+
新信息 × Input Gate
这就是 LSTM 的核心机制。
十二、Output Gate:应该输出什么?
LSTM 内部可能保存了大量信息。
但不是所有信息都需要输出。
因此有:
oₜ = σ(W_o[hₜ₋₁, xₜ] + b_o)
最终:
hₜ = oₜ ⊙ tanh(Cₜ)
所以:
Cell State
↓
tanh()
↓
Output Gate
↓
Hidden State
十三、LSTM 完整数学公式
把整个 LSTM 放在一起:
Forget Gate
fₜ = σ(W_f[hₜ₋₁, xₜ] + b_f)
Input Gate
iₜ = σ(W_i[hₜ₋₁, xₜ] + b_i)
Candidate Cell State
C̃ₜ = tanh(W_c[hₜ₋₁, xₜ] + b_c)
Cell State
Cₜ = fₜ ⊙ Cₜ₋₁ + iₜ ⊙ C̃ₜ
Output Gate
oₜ = σ(W_o[hₜ₋₁, xₜ] + b_o)
Hidden State
hₜ = oₜ ⊙ tanh(Cₜ)
这六个公式就是标准 LSTM 的数学核心。
十四、为什么 LSTM 能缓解梯度消失?
重点观察:
Cₜ = fₜ ⊙ Cₜ₋₁ + iₜ ⊙ C̃ₜ
传统 RNN:
hₜ = tanh(...)
每一步都经历:
非线性变换
而 LSTM 有一条:
Cell State
允许信息进行相对直接的传播。
梯度可以沿着:
Cₜ₋₁
↓
Cₜ
↓
Cₜ₊₁
传播。
这就是所谓的:
Memory Highway
它显著缓解了长期依赖学习中的梯度消失问题。
注意:
LSTM 是“缓解”而不是数学意义上彻底消除梯度消失。
十五、一个非常直观的类比
可以把 LSTM 想象成一个项目经理。
每天都会收到新的信息:
xₜ
项目经理脑子里有:
长期记忆 Cₜ
同时还需要决定:
Forget Gate
这个信息已经没用了
→ 删除
Input Gate
这个新信息非常重要
→ 记录
Output Gate
这个信息现在需要告诉团队
→ 输出
因此:
LSTM
=
记忆
+
遗忘
+
写入
+
读取
十六、LSTM 与普通 RNN 的结构区别
普通 RNN:
xₜ
│
↓
┌───────────┐
│ RNN │
│ │
│ tanh │
└───────────┘
│
↓
hₜ
LSTM:
Cₜ₋₁
│
┌───────┴───────┐
│ │
Forget Input
│ │
└───────┬───────┘
↓
Cₜ
│
Output
│
↓
hₜ
LSTM 内部明显更加复杂。
但是这种复杂性换来了:
更强的长期记忆能力。
十七、为什么 LSTM 使用 Sigmoid?
三个 Gate:
fₜ
iₜ
oₜ
都需要表达:
0 ~ 1
因此使用:
Sigmoid
例如:
0
表示:
完全关闭
而:
1
表示:
完全打开
所以 Sigmoid 非常适合作为:
Gate
十八、为什么 Candidate 使用 Tanh?
候选记忆:
C̃ₜ
需要表示:
正的信息
+
负的信息
因此:
tanh
输出:
-1 ~ 1
比 Sigmoid 更适合表示有正负方向的信息。
因此经典 LSTM:
Gate
→ Sigmoid
Candidate
→ Tanh
十九、LSTM 的参数量
假设:
input_size = D
hidden_size = H
LSTM 有四组主要计算:
Forget
Input
Candidate
Output
每一组都有:
Input Weight
Hidden Weight
Bias
所以参数量大致:
4 × (D×H + H×H + H)
即:
4H(D + H + 1)
例如:
D = 128
H = 256
参数:
4 × 256 × (128 + 256 + 1)
约:
394,240
这比普通 RNN:
H(D + H + 1)
大约多四倍。
因此:
LSTM 的表达能力增强,同时计算成本也明显增加。
二十、PyTorch 实现 LSTM
PyTorch:
import torch
import torch.nn as nn
lstm = nn.LSTM(
input_size=128,
hidden_size=256,
num_layers=2,
batch_first=True
)
输入:
[batch_size, sequence_length, input_size]
例如:
[32, 100, 128]
表示:
Batch = 32
Sequence = 100
Feature = 128
输出:
output, (h_n, c_n) = lstm(x)
其中:
output
h_n
c_n
分别对应不同层面的序列输出和最终状态。
二十一、完整 LSTM 分类模型
例如文本分类:
import torch
import torch.nn as nn
class LSTMClassifier(nn.Module):
def __init__(
self,
input_size,
hidden_size,
num_layers,
num_classes
):
super().__init__()
self.lstm = nn.LSTM(
input_size=input_size,
hidden_size=hidden_size,
num_layers=num_layers,
batch_first=True
)
self.fc = nn.Linear(
hidden_size,
num_classes
)
def forward(self, x):
output, (h_n, c_n) = self.lstm(x)
last_hidden = h_n[-1]
output = self.fc(last_hidden)
return output
结构:
Input Sequence
↓
Embedding / Features
↓
LSTM
↓
Last Hidden State
↓
Fully Connected
↓
Classification
二十二、LSTM 中的 h 和 c
这是初学者非常容易混淆的地方。
LSTM:
output, (h_n, c_n) = lstm(x)
有:
h_n
c_n
h_n
Hidden State
可以理解成:
当前时刻对外暴露的状态。
c_n
Cell State
可以理解成:
LSTM 内部长期记忆。
简单记:
h = hidden
c = cell
二十三、output 和 h_n 的区别
假设:
batch = 32
sequence = 100
hidden = 256
那么:
output
=
[32, 100, 256]
表示:
每一个时间步的 Hidden State。
而:
h_n
通常是:
[num_layers, batch, hidden]
表示:
每一层最后一个时间步的 Hidden State。
例如:
[2, 32, 256]
表示:
2 layers
32 batch
256 hidden
二十四、Many-to-One
LSTM 很适合:
Sequence
↓
Single Output
例如:
一整段文本
↓
情感分类
结构:
x₁ → LSTM
x₂ → LSTM
x₃ → LSTM
...
xₙ → LSTM
↓
hₙ
↓
Classifier
↓
Positive
典型:
Sentiment Analysis
二十五、Many-to-Many
也可以:
Sequence
↓
Sequence
例如:
输入:
我 爱 北京
输出:
I love Beijing
或者:
Token
↓
NER
↓
Token Label
例如:
我 O
爱 O
北京 B-LOC
二十六、Many-to-One 和 Many-to-Many
总结:
Many-to-One
x1
x2
x3
↓
LSTM
↓
y
应用:
文本分类
情感分析
异常检测
Many-to-Many:
x1 → y1
x2 → y2
x3 → y3
应用:
序列标注
NER
时间序列预测
二十七、Bidirectional LSTM
普通 LSTM:
过去 → 现在
Bidirectional LSTM:
过去 → 现在
现在 ← 未来
即:
Forward LSTM
Backward LSTM
↓
Concatenate
例如:
x1 → x2 → x3 → x4
x1 ← x2 ← x3 ← x4
最后:
hₜ = [h_forward ; h_backward]
因此模型同时利用:
过去信息
+
未来信息
二十八、为什么 NLP 中 BiLSTM 很有价值?
例如:
我去银行存钱
判断:
银行
的含义时,前后文都很重要。
BiLSTM可以:
Forward
→ 利用左侧上下文
Backward
→ 利用右侧上下文
因此:
双向 LSTM 在传统 NLP 任务中非常有效。
二十九、Stacked LSTM
可以堆叠多层 LSTM:
Input
↓
LSTM Layer 1
↓
LSTM Layer 2
↓
LSTM Layer 3
↓
Output
例如:
nn.LSTM(
input_size=128,
hidden_size=256,
num_layers=3
)
这样可以学习:
低层序列特征
↓
中层序列特征
↓
高层序列特征
类似 DNN 的:
Deep Representation Learning
三十、LSTM 的 Dropout
当:
num_layers > 1
可以使用:
nn.LSTM(
input_size=128,
hidden_size=256,
num_layers=3,
dropout=0.2
)
Dropout主要作用于:
不同 LSTM 层之间的连接。
它可以降低:
Overfitting
三十一、LSTM 与时间序列
LSTM 曾经在时间序列预测中非常流行。
例如股票:
Day1
↓
Day2
↓
Day3
↓
...
↓
Day30
↓
Prediction Day31
输入:
Open
High
Low
Close
Volume
可以构建:
[30, 5]
送入:
LSTM
↓
Hidden State
↓
Linear
↓
Price
三十二、LSTM 与异常检测
例如服务器监控:
CPU
Memory
QPS
Latency
Error Rate
每分钟:
t1
t2
t3
...
t100
LSTM学习正常模式:
Normal Sequence
↓
LSTM
↓
Prediction
如果:
Prediction
与实际值差异很大:
Error > Threshold
可以判断:
Anomaly
三十三、LSTM 与日志分析
如果系统日志:
Login
↓
Query
↓
Payment
↓
Order
↓
Logout
可以看成:
Event Sequence
LSTM可以学习:
正常行为模式
然后发现:
异常行为
例如:
Login
↓
Login
↓
Login
↓
Admin
↓
Delete
可能具有异常模式。
三十四、LSTM 的主要缺点
虽然 LSTM 很优秀,但它存在明显缺点。
1. 顺序计算
LSTM:
x1
↓
x2
↓
x3
↓
x4
必须按照时间顺序处理。
因此:
很难充分利用 GPU 的并行计算能力。
2. 长序列效率低
例如:
Sequence Length = 10000
LSTM需要:
10000 steps
依次计算。
Transformer则可以:
Parallel Attention
大规模训练更加高效。
3. 参数多
相比普通 RNN:
LSTM
≈ 4 × 参数量
计算成本更高。
三十五、GRU 为什么出现?
LSTM:
Forget Gate
Input Gate
Output Gate
Cell State
Hidden State
结构比较复杂。
于是出现:
GRU
全称:
Gated Recurrent Unit
GRU的核心思想:
用更少的门实现类似的记忆机制。
主要包括:
Update Gate
Reset Gate
没有独立的:
Cell State
因此结构更加简单。
三十六、LSTM vs GRU
| 特性 | LSTM | GRU |
|---|---|---|
| Forget Gate | 有 | 融合到 Update |
| Input Gate | 有 | 融合 |
| Output Gate | 有 | 没有独立 |
| Cell State | 有 | 没有 |
| Hidden State | 有 | 有 |
| 参数量 | 较多 | 较少 |
| 计算速度 | 较慢 | 较快 |
| 长期依赖 | 强 | 强 |
| 模型复杂度 | 高 | 较低 |
可以简单理解:
LSTM
→ 更完整的记忆机制
GRU
→ 更简洁的门控机制
三十七、LSTM 为什么最终被 Transformer 超越?
这是理解现代 AI 架构演进非常重要的问题。
LSTM:
x1 → x2 → x3 → x4 → ... → xn
信息必须一步一步传播。
Transformer:
x1 ─┐
x2 ─┤
x3 ─┼→ Self-Attention
x4 ─┤
x5 ─┘
一个 Token 可以直接关注:
任何其他 Token
例如:
x₁ ───────────────→ x₁₀₀
不需要:
x₂
x₃
x₄
...
x₉₉
一个一个传递。
这就是:
Self-Attention 对长距离依赖的巨大优势。
三十八、LSTM 与 Transformer 的根本区别
LSTM:
Memory-Based
依赖:
Hidden State
Cell State
Transformer:
Attention-Based
依赖:
Attention Matrix
LSTM:
过去
↓
状态
↓
现在
Transformer:
所有Token
↓
Attention
↓
Context
因此 Transformer 更容易进行:
Large Scale Parallel Training
三十九、LSTM 与 Attention 的结合
在 Transformer 之前,还有一个非常重要的阶段:
LSTM + Attention
例如 Encoder:
x1 → LSTM → h1
x2 → LSTM → h2
x3 → LSTM → h3
x4 → LSTM → h4
传统 Decoder可能只使用:
h4
问题是:
h4需要压缩整个输入序列。
Attention则允许:
Decoder
↓
Attention
├── h1
├── h2
├── h3
└── h4
动态选择重要信息。
这成为 Transformer 出现前的重要技术过渡。
四十、LSTM → Attention → Transformer
可以把技术演进理解成:
RNN
↓
LSTM
↓
解决长期记忆
↓
LSTM + Attention
↓
减少信息压缩问题
↓
Transformer
↓
Self-Attention
↓
大规模并行计算
↓
BERT / GPT
↓
LLM
这条技术路线非常重要。
四十一、LSTM 对理解 LLM 有什么价值?
现在学习 LSTM 仍然有很大意义。
因为它能帮助理解:
1. State
hₜ
Cₜ
为什么序列模型需要状态。
2. Memory
为什么:
过去的信息
会影响:
当前预测
3. Gradient
理解:
Vanishing Gradient
4. Attention
理解:
为什么 Transformer 不再依赖传统 RNN 的顺序记忆。
5. Sequence Modeling
理解:
Token
Sequence
Context
Dependency
这些概念对 LLM 都非常重要。
四十二、从 AI 工程师角度理解 LSTM
如果从工程角度看,LSTM 可以理解成:
Input Event
↓
State
↓
Memory Update
↓
Output
↓
Next Event
这和传统后端系统中的:
Request
↓
Session State
↓
State Update
↓
Response
有一定的类比。
例如:
User Event
↓
LSTM
↓
User State
↓
Next Action Prediction
这类思路可以用于:
推荐系统
用户行为预测
异常检测
时间序列
事件预测
四十三、LSTM 训练过程
完整训练过程:
Training Data
↓
Sequence
↓
Embedding / Feature
↓
LSTM
↓
Prediction
↓
Loss
↓
BPTT
↓
Gradient
↓
Optimizer
↓
Update Parameters
注意:
LSTM仍然使用:
Backpropagation
只是由于存在时间维度,所以称为:
Backpropagation Through Time
即:
BPTT
四十四、BPTT 是怎么回事?
假设:
x1 → LSTM → h1
↓
x2 → LSTM → h2
↓
x3 → LSTM → h3
↓
x4 → LSTM → h4
最终:
h4
↓
Loss
反向传播:
Loss
↓
h4
↓
h3
↓
h2
↓
h1
所以叫:
Backpropagation
Through
Time
这也是为什么序列越长,训练越困难。
四十五、LSTM 的工程优化
生产环境中使用 LSTM,需要考虑:
Sequence Length
Batch Size
Hidden Size
Number of Layers
Bidirectional
GPU Memory
Padding
Packing
特别是:
Variable Length Sequence
例如:
Sequence A = 10
Sequence B = 50
Sequence C = 100
通常需要:
Padding
或者:
PackedSequence
减少无效计算。
四十六、LSTM 中 Padding 的问题
假设:
A = [x1,x2,x3]
B = [x1,x2,x3,x4,x5]
统一长度:
A = [x1,x2,x3,PAD,PAD]
B = [x1,x2,x3,x4,x5]
那么:
PAD
实际上没有意义。
因此需要:
Masking
或者 PyTorch:
pack_padded_sequence()
让 LSTM 尽可能避免处理无效 Padding。
四十七、LSTM 的典型应用场景
今天 LSTM 虽然不再是 NLP 主流,但仍然适合很多场景。
时间序列
CPU
Memory
Temperature
Stock
Demand
Traffic
工业
Sensor
Machine State
Failure Prediction
推荐
User Behavior Sequence
异常检测
Log Sequence
Transaction Sequence
语音
Audio Feature Sequence
NLP
Sequence Classification
NER
Text Classification
尤其在:
数据量有限、模型规模不大、实时性要求高的场景中,LSTM 依然可能具有工程价值。
四十八、LSTM 最重要的知识结构
如果准备 AI Engineer / Machine Learning Engineer 面试,可以建立下面的知识树:
LSTM
│
├── RNN
│ ├── Hidden State
│ ├── Recurrence
│ └── BPTT
│
├── Problem
│ ├── Vanishing Gradient
│ └── Long-Term Dependency
│
├── Memory
│ ├── Hidden State
│ └── Cell State
│
├── Gates
│ ├── Forget Gate
│ ├── Input Gate
│ └── Output Gate
│
├── Activation
│ ├── Sigmoid
│ └── Tanh
│
├── Architecture
│ ├── Stacked LSTM
│ ├── BiLSTM
│ └── LSTM + Attention
│
└── Modern Evolution
└── Transformer
四十九、面试中最容易问的 LSTM 问题
Q1:LSTM 为什么能够解决 RNN 的长期依赖问题?
核心:
Cell State
+
Gated Mechanism
通过:
Forget Gate
Input Gate
Output Gate
控制信息流。
Q2:LSTM 为什么有两个 State?
hₜ
→ Hidden State
Cₜ
→ Cell State
其中:
Cₜ
负责更加长期的信息传递。
Q3:为什么 Gate 使用 Sigmoid?
因为:
Sigmoid ∈ (0,1)
可以自然表示:
关闭程度
保留程度
Q4:Candidate 为什么使用 Tanh?
因为:
Tanh ∈ (-1,1)
能够表达:
正向信息
+
负向信息
Q5:LSTM 为什么比 RNN 参数更多?
因为 LSTM 有四组核心计算:
Forget
Input
Candidate
Output
因此参数量约为普通 RNN 的四倍。
Q6:LSTM 为什么最终被 Transformer 替代?
主要原因:
LSTM
→ Sequential Computation
Transformer
→ Parallel Attention
Transformer 更适合:
GPU
TPU
Large Dataset
Long Sequence
Large Model
五十、最终总结
LSTM 可以浓缩成下面这一张图:
LSTM
│
┌──────┴──────┐
↓ ↓
Hidden State Cell State
│ │
│ │
└──────┬──────┘
↓
┌─────────────┐
│ │
Forget Input
Gate Gate
│ │
└──────┬──────┘
↓
Memory
│
↓
Output Gate
│
↓
hₜ
最重要的公式:
fₜ = σ(W_f[hₜ₋₁,xₜ] + b_f)
iₜ = σ(W_i[hₜ₋₁,xₜ] + b_i)
C̃ₜ = tanh(W_c[hₜ₋₁,xₜ] + b_c)
Cₜ = fₜ ⊙ Cₜ₋₁ + iₜ ⊙ C̃ₜ
oₜ = σ(W_o[hₜ₋₁,xₜ] + b_o)
hₜ = oₜ ⊙ tanh(Cₜ)
真正理解 LSTM,需要抓住三个关键词:
State
Memory
Gate
而从整个 AI 技术演进来看:
DNN
↓
RNN
↓
LSTM
↓
LSTM + Attention
↓
Transformer
↓
BERT / GPT
↓
LLM
↓
Agent
其中 LSTM 最重要的历史贡献是:
它第一次非常成功地把“记忆”和“信息流控制”结合起来,让神经网络能够更加有效地学习长期依赖。
而 Transformer 的革命性突破,则是进一步把:
“依靠递归状态记忆过去”
转变成:
“通过 Attention 直接访问上下文”
这也是从传统序列模型走向今天 LLM 的关键一步。
建议下一篇
如果按照你现在的 DNN → CNN → LSTM 学习脉络继续,下一篇最值得深入的是:
《Transformer 深度技术博客:从 Self-Attention、Multi-Head Attention 到 GPT/LLM》
重点可以直接进入源码级和数学级分析:
LSTM
↓
为什么需要 Attention
↓
Self-Attention 数学原理
↓
Q / K / V
↓
Scaled Dot-Product Attention
↓
Multi-Head Attention
↓
Positional Encoding
↓
Transformer Encoder / Decoder
↓
GPT
↓
LLM