循环神经网络
循环神经网络(Recurrent Neural Network, RNN)是一类专门处理序列数据的神经网络。与传统前馈网络不同,RNN具有循环连接,能够在时间步之间传递隐藏状态,从而捕捉序列中的时序依赖关系。
核心思想
RNN在每个时间步接收当前输入 和上一时间步的隐藏状态 ,输出当前隐藏状态 :
这种循环结构使RNN具有”记忆”能力,理论上可以保留序列中任意长度的历史信息。
展开计算
在训练时,RNN在时间维度上展开为一个深层的前馈网络,使用随时间反向传播算法(Backpropagation Through Time, BPTT)计算梯度并更新参数。
存在的问题
梯度消失与梯度爆炸
由于RNN在时间维度上展开后是一个很深的网络,在反向传播过程中,梯度需要沿着时间步不断连乘。当权值矩阵的最大特征值小于1时,梯度会指数级衰减(梯度消失);大于1时,梯度会指数级增长(梯度爆炸)。
- 梯度消失:网络难以学习长距离依赖关系
- 梯度爆炸:训练不稳定,参数更新过大
长距离依赖捕获能力弱
理论上RNN可以处理任意长度的序列,但实际中,由于梯度消失问题,RNN只能有效捕获短距离的依赖关系,难以处理序列中的长程依赖。
应用场景
- 语言建模与文本生成
- 机器翻译
- 语音识别
- 时间序列预测
- 情感分析
变体
为了克服标准RNN的梯度消失问题,研究者提出了多种改进结构,其中最著名的是LSTM和GRU,它们通过门控机制更有效地管理长期记忆。

链接到
- 上一个知识点:5.1 卷积神经网络
- 下一个知识点:5.3 LSTM