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 之前的序列模型」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 3 篇文章,帮助深入理解该术语。

  1. 1

    RNN 与 LSTM:处理序列数据

    理解循环神经网络的记忆机制与 LSTM 的门控设计

  2. 2

    NLP 基础:从词嵌入到 Transformer

    自然语言处理的核心技术路线。从 One-Hot 到 Word2Vec,从 RNN/LSTM 到注意力机制,再到 Transformer 架构的完整演进历程。包含词向量可视化、注意力权重计算和简易 Transformer 的 Python 实现。

  3. 3

    神经网络基础:从感知机到多层网络

    理解神经元、激活函数、反向传播和梯度消失问题

外部参考

维基百科:查看「RNN」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。