2025-4-23-RNN/LSTM简介
RNN(循环神经网络)
核心结构: RNN 的设计目的是处理序列数据(如文本、语音),其核心特点是隐藏层神经元之间存在循环连接,允许信息在时间序列中传递。

输入层:接收当前时刻的输入 \(x_t\)。
隐藏层:
不仅接收当前输入 \(x_t\),还通过循环连接接收前一时刻的隐藏状态 \(h_{t-1}\)。
隐藏层状态更新公式:
\[ h_t = \sigma(W_{xh} \cdot x_t + W_{hh} \cdot h_{t-1} + b_h) \] 其中,\(W_{xh}\) 是输入到隐藏层的权重矩阵,\(W_{hh}\) 是隐藏层自连接的权重矩阵,\(\sigma\) 通常为 sigmoid 或 tanh 激活函数。
输出层:根据当前隐藏状态 \(h_t\) 生成输出 \(o_t\),如分类任务中通过 softmax 输出概率。
局限性:梯度消失问题。当序列较长时,早期时间步的梯度通过多次矩阵乘法传递,若权重矩阵的特征值小于 1,梯度会指数级衰减,导致模型难以捕捉长距离依赖。
LSTM(长短期记忆网络)
核心结构: LSTM 是 RNN 的改进版本,通过引入门控机制解决长距离依赖和梯度消失问题。
在每个时间步 t,LSTM 接收当前输入 \(x_t\) 和上一时刻的隐藏状态 \(h_{t - 1}\) 及细胞状态 \(C_{t - 1}\)。
- 首先,遗忘门根据输入决定从细胞状态中遗忘哪些信息;
- 接着,输入门生成候选信息并决定添加哪些信息到细胞状态;
- 然后,细胞状态进行更新;
- 最后,输出门根据更新后的细胞状态生成当前时刻的隐藏状态 \(h_t\) 用于后续计算或输出。
其核心单元是 LSTM 细胞(Cell),包含以下组件:

遗忘门(Forget Gate):决定丢弃细胞状态中的哪些信息,输出 \(f_t\)(0 表示丢弃,1 表示保留):
\[ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \]输入门(Input Gate):决定当前输入 \(x_t\) 中哪些信息需要更新到细胞状态,输出 \(i_t\)(候选状态 \(\tilde{C}_t\) 通过 tanh 生成):
\[ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i), \quad \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \]细胞状态更新:结合遗忘门和输入门,更新细胞状态 \(C_t\):
\[ C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t \]输出门(Output Gate):决定隐藏状态 \(h_t\) 的输出内容,基于细胞状态 \(C_t\) 和 tanh 激活:
\[ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o), \quad h_t = o_t \cdot \tanh(C_t) \]
关键优势
- 门控机制:遗忘门和输入门允许模型选择性地保留或丢弃长期信息,缓解梯度消失问题。
- 梯度传播路径:细胞状态 \(C_t\) 直接通过线性操作(加法)传递,避免了传统 RNN 中多次非线性变换导致的梯度衰减。
为什么叫 “长短时”?
- 短时记忆:LSTM 中的隐藏状态 \(h_t\) 类似于传统 RNN 中的隐藏状态,它会根据当前输入和上一时刻的隐藏状态进行更新,能够捕捉到序列中近期的信息,反映了序列的短期变化,因此可以看作是短时记忆。例如,在处理文本时,隐藏状态可以记住当前词及其前后几个词的信息。
- 长时记忆:细胞状态 \(C_t\) 可以长期保存信息,它通过遗忘门和输入门的控制,能够选择性地保留或丢弃信息,使得模型能够记住序列中较远距离的信息。例如,在处理一篇长文章时,细胞状态可以记住文章开头提到的关键信息,并在后续的处理中使用,因此体现了长时记忆的能力。
对比总结
模型 | 结构特点 | 解决的问题 | 适用场景 |
---|---|---|---|
RNN | 隐藏层循环连接,结构简单 | 短期序列依赖 | 简单序列任务(如短文本分类) |
LSTM | 引入门控机制和细胞状态 | 长距离依赖、梯度消失 | 长序列任务(如机器翻译、语音识别) |