跳到正文
AI 图鉴
03 深度学习进阶本域第 5 篇

循环神经网络

让网络拥有“记忆”:同一个单元沿着时间反复使用,处理任意长度的序列

定义

循环神经网络是一类处理序列的网络。它在每个时间步读入一个输入,同时接收上一步的隐状态,算出新的隐状态并输出。由于同一个单元在时间上反复复用、且各步共享同一组权重,它能处理变长序列,并把历史信息带入当前判断。

直观理解

读一句话就像听一个人讲话:你不需要重听整段,而是一边听一边在心里更新“到目前为止讲了什么”——这份不断改写的摘要就是隐状态。可惜普通 RNN 的“记忆”很短:信息每经过一步就被乘一次,几十步之后早先的内容要么被冲淡(梯度消失)、要么被放大到失控(梯度爆炸)。门控机制,本质上就是给这份摘要加了几道“该记、该忘、该说”的闸门。

图 1

沿时间展开的循环网络:同一个单元在每个时间步读入 xₜ、更新隐状态 hₜ 并输出 yₜ,相邻隐状态之间传递同一组共享权重 Wₕ

图 2

序列越长,普通 RNN 越难保留早期信息,准确率大幅下滑;带门控的 LSTM/GRU 在长序列上明显更稳(任务为长程依赖基准,数量级取自典型公开结果)

  • 普通 RNN
  • LSTM
  • GRU

工作原理

  1. 01

    隐状态与时间展开

    hₜ = f(W hₜ₋₁ + U xₜ + b)。虽然名字叫“循环”,实际训练时会沿时间轴展开成一条很深的链,每个时间步共享同一组权重。

  2. 02

    梯度消失与爆炸

    误差要沿时间反向传播(BPTT),每步都乘以权重矩阵与激活导数。连乘使梯度随步数指数衰减或增长,长程依赖因此很难学到。

  3. 03

    门控机制:LSTM 与 GRU

    LSTM 用输入门、遗忘门、输出门决定“记什么、忘什么、露什么”,并用一条近似恒等的细胞状态通道保护梯度;GRU 用更少的门达到相近效果。

  4. 04

    被注意力取代

    即便有门控,RNN 仍必须按顺序逐步计算,无法像 Transformer 那样并行,也难以稳定记忆极长上下文。注意力机制用“直接看到全部位置”替代“逐字传递”,于是成为今天的主流。

应用场景

  • 语言建模与机器翻译(在注意力普及之前的主流方案)
  • 语音识别、手写识别等按帧推进的任务
  • 时间序列预测:传感器、气象与金融数据
  • 序列到序列任务的编码器与解码器

常见误区

  • “RNN 有记忆”是有限度的:普通 RNN 的有效记忆通常只有几十步,超出这个范围的信息很难保留。
  • LSTM 是缓解而非根治长程依赖。门控增加了计算量,却没有改变顺序计算的本质瓶颈。
  • 训练时用真值引导(teacher forcing)、推理时自由生成,两者的分布差异会累积并放大误差。

关键术语

隐状态
随时间更新的“到目前为止”的摘要向量
BPTT
沿时间展开后做反向传播
门控
用 Sigmoid 输出的 0–1 系数控制信息通过量
长程依赖
序列中相距很远的元素之间的相互影响

延伸阅读