【第四章:大模型(LLM)】01.神经网络中的 NLP-(1)RNN、LSTM 和 GRU 的基本原理和应用
第四章:大模型(LLM)
第二部分:神经网络中的 NLP
第一节:RNN、LSTM 和 GRU 的基本原理和应用
一、引言:为何使用循环神经网络?
在处理自然语言或序列数据(如时间序列、语音)时,上下文信息至关重要。传统的前馈神经网络(如 MLP、CNN)无法自然捕捉序列中的时间依赖关系。因此,循环神经网络(RNN)被提出,以支持信息在序列中传递,从而实现“记忆”功能。
二、RNN:循环神经网络基础
1. 基本结构
RNN 的核心思想是:当前的输出不仅依赖当前输入,还依赖之前的隐藏状态(即“记忆”)。
数学表达为:
hₜ = tanh(Wₓxₜ + Wₕhₜ₋₁ + b)
其中:
xₜ:当前时刻输入;
hₜ:当前隐藏状态;
hₜ₋₁:上一个时间步的隐藏状态;
Wₓ,Wₕ:权重矩阵。
2. 问题:梯度消失与爆炸
由于时间展开导致的深层链式反向传播,RNN 在长序列上容易出现:
梯度消失:信息无法从后往前传播;
梯度爆炸:参数不稳定,训练失败。
三、LSTM:长短期记忆网络
为了解决 RNN 的记忆瓶颈问题,Hochreiter & Schmidhuber 在 1997 年提出 LSTM(Long Short-Term Memory)。
1. 核心思想
LSTM 通过门机制(Gates)来控制信息流:
遗忘门(forget gate):决定保留多少旧记忆;
输入门(input gate):决定接受多少新信息;
输出门(output gate):决定输出多少记忆给下一个时间步。
公式简化如下:
fₜ = σ(W_f · [hₜ₋₁, xₜ]) ← 遗忘门
iₜ = σ(W_i · [hₜ₋₁, xₜ]) ← 输入门
oₜ = σ(W_o · [hₜ₋₁, xₜ]) ← 输出门
ĉₜ = tanh(W_c · [hₜ₋₁, xₜ]) ← 候选记忆cₜ = fₜ * cₜ₋₁ + iₜ * ĉₜ ← 更新记忆单元
hₜ = oₜ * tanh(cₜ) ← 输出隐藏状态
2. 优点
保留长距离依赖;
学习重要性动态权重;
应用于机器翻译、语言建模、情感分析等任务中。
四、GRU:门控循环单元
GRU(Gated Recurrent Unit) 是 LSTM 的简化版本,由 Cho 等人在 2014 年提出。
1. 结构简洁
GRU 将 LSTM 的三个门压缩为两个:
更新门(update gate) zₜ;
重置门(reset gate) rₜ。
核心计算:
zₜ = σ(W_z · [hₜ₋₁, xₜ])
rₜ = σ(W_r · [hₜ₋₁, xₜ])
h̃ₜ = tanh(W_h · [rₜ * hₜ₋₁, xₜ])
hₜ = (1 - zₜ) * hₜ₋₁ + zₜ * h̃ₜ
2. 相较于 LSTM 的优势:
结构更简单,参数更少;
训练更快,性能相当;
在某些任务(如语音建模)表现优异。
五、应用场景
应用领域 | 描述 |
---|---|
语言建模 | 根据前文预测下一个单词(如 GPT 的基本训练任务) |
文本分类 | 通过 RNN/LSTM/GRU 提取序列特征用于情感、意图分类 |
序列标注 | 用于命名实体识别(NER)、分词、POS 等序列到序列任务 |
机器翻译 | Seq2Seq 架构最初是 LSTM 编码器+解码器组合 |
语音识别 | RNN 能捕捉声音序列中时间依赖特征 |
时间序列预测 | 金融市场分析、用户行为预测等 |
六、总结
RNN、LSTM 和 GRU 是序列建模的三大经典结构。它们为现代 NLP 奠定了基础,尤其在 Transformer 浪潮之前,占据了主导地位。
尽管如今大多数 LLM(如 GPT)已采用 Transformer 架构,但在小型模型、边缘设备和特定任务中,LSTM 和 GRU 依然具有极高的实用价值。