RNN(循环神经网络)
RNN按顺序读文本的老架构
亦作、亦称:循环神经网络 · Recurrent Neural Network
循环神经网络(RNN)是一类专为序列数据设计的神经网络,其核心特征是隐藏状态会跨时间步递归传递,使网络具备对历史上下文的「记忆」能力。从语音识别到机器翻译,RNN 曾是序列建模的主流架构,后逐步被 LSTM/GRU 改良版本及 Transformer 所取代。
概述
循环神经网络(RNN)是一类专为序列数据设计的神经网络,其核心特征是隐藏状态会跨时间步递归传递,使网络具备对历史上下文的「记忆」能力。从语音识别到机器翻译,RNN 曾是序列建模的主流架构,后逐步被 LSTM/GRU 改良版本及 Transformer 所取代。
核心机制
RNN 的本质是在前馈网络基础上引入时间维度的循环连接。
- 隐藏状态(hidden state):每个时间步 t 的隐藏层输出 hₜ 由当前输入 xₜ 与上一步状态 hₜ₋₁ 共同决定
- 参数共享:同一组权重矩阵在所有时间步复用,大幅降低参数量且使序列长度无关
- 时间反向传播(BPTT):训练时将网络沿时间轴展开后执行反向传播
- 可变长度输入:因循环结构无需固定输入长度,天然适合句子、语音帧等序列
发展脉络
RNN 经历了从基础模型到门控架构、再到被 Transformer 超越的演进过程。
- 1986:Rumelhart、Hinton、Williams 在《Nature》反向传播论文中正式引入循环网络及 BPTT 训练方法
- 1990:Elman 提出「Elman Network」,将隐藏层状态作为下一步输入,成为经典 Simple RNN 范式
- 1997:Hochreiter 与 Schmidhuber 发表 LSTM(Neural Computation),引入输入门/遗忘门/输出门解决长程依赖
- 2014:Cho 等人提出 GRU,以更简洁的门控结构取得与 LSTM 相近性能;Sutskever 等提出 Seq2Seq 框架
- 2015:Bahdanau 等人提出注意力机制,解决 Seq2Seq 固定向量的信息瓶颈
- 2017:「Attention Is All You Need」发表,Transformer 在大多数 NLP 任务上超越 RNN
梯度消失与爆炸
标准 RNN 在处理长序列时面临严重的训练稳定性问题。
- 梯度消失:梯度在时间轴反向传播时被连续乘以小于 1 的权重,指数级衰减,早期时间步的权重几乎无法更新
- 梯度爆炸:若权重较大,梯度则指数级膨胀,训练发散;实践中常用梯度裁剪(Gradient Clipping)缓解
- 截断 BPTT:常见缓解手段是只展开固定步数,但会损失长程信息
- 根本解法:LSTM 的门控机制与恒定误差传递路径(Constant Error Carousel)从结构上绕开梯度消失
主要变体
围绕 RNN 衍生出多种改进架构以应对不同场景。
- LSTM(Long Short-Term Memory):含记忆单元(cell state)与三种门,擅长捕获长程依赖,1997 年提出
- GRU(Gated Recurrent Unit):将 LSTM 的三门简化为更新门与重置门,参数更少、训练更快,2014 年提出
- 双向 RNN(BiRNN):同时从前向后与从后向前扫描序列,获取双向上下文,适合序列标注
- 深层 RNN(Stacked RNN):多层堆叠以提取更高级抽象特征
- Seq2Seq:编码器 RNN 将输入序列压缩为上下文向量,解码器 RNN 生成目标序列,催生了注意力机制
典型应用场景
RNN 在深度学习早期主导了多个序列建模领域。
- 语音识别:配合 CTC 损失函数处理语音帧与文字的对齐问题,双向 LSTM 是 2010 年代主流 ASR 方案
- 机器翻译:Seq2Seq + Attention 架构在 Transformer 出现前的主流方案,2016 年 Google NMT 大规模上线
- 文本生成与语言模型:逐词预测下一个 token,是早期字符级/词级语言模型基础
- 时间序列预测:金融、气象等领域的趋势与异常检测,LSTM 至今仍有应用
- 手写识别:LSTM + CTC 是深度学习时代早期手写识别的标准方案
局限性与被取代原因
尽管 LSTM/GRU 缓解了梯度问题,RNN 仍有结构性瓶颈。
- 顺序计算瓶颈:时间步间的依赖使 RNN 无法并行化,训练速度远慢于 Transformer,是被取代的核心原因
- 长程遗忘:即使是 LSTM,在超长序列(数千 token)下仍会丢失早期信息,不如 Transformer 稳健
- 上下文压缩瓶颈:Seq2Seq 中编码器须将整个输入压缩为固定维度向量,信息损耗严重
- 硬件利用率低:现代 GPU/TPU 为矩阵并行优化,顺序计算的 RNN 难以充分发挥算力
- 现实仍有用武之地:在端侧资源受限或需要严格流式处理的场景,RNN/LSTM 仍是可行选择
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「按顺序读文本的老架构」
- 「一个 token 一个 token 地记状态」
- 「Transformer 之前的序列模型」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级概念高频查看详解 →
RNN、LSTM、GRU 有什么区别?
RNN 长序列梯度消失,LSTM 用输入/遗忘/输出门加细胞状态缓解,GRU 合并为更新/重置门更轻量。
- 中级概念高频查看详解 →
相比 RNN,Transformer 处理序列有什么优势与代价?
Transformer 并行、自注意力捕获长依赖、易扩展,代价是 O(n²) 复杂度与显存、需位置编码、数据需求大。
- 高级场景查看详解 →
什么是循环神经网络(RNN)?有哪些应用场景?
RNN 通过循环隐藏状态逐步处理序列,使当前输出依赖历史信息;适用于文本、语音、时间序列等有序数据,但长序列有梯度消失问题,LSTM/GRU 或 Transformer 常是更好选择。
- 高级概念查看详解 →
什么是人工神经网络?
人工神经网络是由多层神经元(线性变换+非线性激活)组成的可微函数逼近器,通过前向计算预测、反向传播更新权重,从数据中自动学习输入到输出的映射。
延伸阅读
从知识库精选 3 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「RNN」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
