Ch08 RNN序列模型

GRU 门控循环单元 (Gated Recurrent Unit)

一句话理解

GRU 是 LSTM 的简化版——把三个门精简为两个门(更新门+重置门),去掉细胞状态只保留隐藏状态。参数更少、训练更快,效果经常差不多。

零基础理解

LSTM 有三个门像一个精密的保险柜(遗忘门、输入门、输出门 + 细胞状态)。GRU 发现:其实两个门就够了——一个门(更新门)同时决定”忘多少旧信息”和”记多少新信息”,另一个门(重置门)决定”过去的信息有多少对当前有用”。更简单,但一样好用。

核心架构

两个门

GRU 单元内部结构:

输入: x_t (当前输入), h_{t-1} (上一时刻隐藏状态)
输出: h_t (当前隐藏状态)

两个门:
1. 重置门 r_t: 决定忽略多少过去的信息
2. 更新门 z_t: 决定保留多少过去信息 vs 写入多少新信息

数学公式

组件公式激活函数作用
重置门Sigmoid(0~1)0=忽略过去, 1=全部保留
更新门Sigmoid(0~1)控制新旧信息的混合比例
候选隐藏状态Tanh(-1~1)新信息候选, 受重置门调控
隐藏状态更新—新旧混合

两个门的直观理解

重置门 (Reset Gate)

场景重置门输出效果
句子结束,开始全新话题接近 0忽略过去,当作第一个词处理
同一个句子中,前后相关接近 1保留过去信息
阅读到转折词”但是”0.3-0.5部分忽略前面内容

核心作用:当 时,候选隐藏状态 就像只看当前输入 一样,完全忽略历史。这对捕获短期依赖很有用。

更新门 (Update Gate)

场景更新门输出效果
遇到关键信息,需要长期记住接近 0,保留旧信息
遇到新信息,需要更新状态接近 1,写入新信息
常规流式处理0.3-0.7平滑混合新旧信息

核心作用:更新门同时做了 LSTM 中遗忘门和输入门的工作—— 控制保留多少旧信息, 控制写入多少新信息。两者天然互补,一个门就够了。

GRU vs LSTM 详细对比

维度LSTMGRU
门数量3 (遗忘/输入/输出)2 (重置/更新)
状态数量2 (隐藏状态 h + 细胞状态 c)1 (隐藏状态 h)
参数量4 × (hidden_size × (hidden_size + input_size))3 × (hidden_size × (hidden_size + input_size))
相对参数量100%~75%
训练速度基准约 15-25% 更快
内存占用基准约 25% 更少
长距离依赖很好好(略逊于 LSTM)
短期依赖好好
梯度消失大幅缓解缓解
提出年份1997 (Hochreiter & Schmidhuber)2014 (Cho et al.)
提出背景解决 RNN 长距离依赖为 Seq2Seq 机器翻译简化 LSTM

什么时候用 GRU 不用 LSTM

场景推荐原因
数据量较少GRU参数少,不容易过拟合
训练资源有限GRU训练更快,显存更少
任务相对简单GRU简单任务不需要 LSTM 的完整门控
长序列(>100 步)LSTM细胞状态对长距离依赖更稳定
需要精确的门控LSTM三个门各自独立,控制更精细
计算资源充足LSTM略好的性能值得额外的计算
2026 年 NLP都不用Transformer 已取代两者

经验法则:如果用小数据集训练 RNN,先试 GRU;如果 GRU 不够好,再试 LSTM。两者效果差异通常不大,但 GRU 收敛更快。

门控机制的演化

架构年份门状态核心创新
简单 RNN198601 (h)循环连接
LSTM199732 (h, c)门控 + 细胞状态
GRU201421 (h)精简门控,去掉细胞状态
MGU201611 (h)最小门控单元,进一步精简
SRU201721 (h)简化循环计算,加速训练
QRNN201821 (h)卷积 + 门控,比 LSTM 快 16 倍

GRU 处于”刚好够用”的甜点——比 LSTM 简单很多,但比简单 RNN 强大很多。

2026 年 GRU 的地位

GRU 和 LSTM 一样,在 NLP 主流领域已被 Transformer 取代。但 GRU 因其简洁高效,在以下场景仍有一席之地:

领域使用情况
嵌入式设备参数量少,适合 MCU/边缘设备
实时系统推理速度快,延迟低
小数据时间序列参数少不容易过拟合
强化学习作为策略网络的序列编码器
教学比 LSTM 更容易理解和实现

相关笔记

来源

关联6

知识图谱

局部图谱 · 点节点跳转