核心要点

  • RNN 按时间步循环传递隐藏状态,但长序列上易梯度消失/爆炸,难记住远距离依赖。

  • LSTM 引入细胞状态和输入门、遗忘门、输出门,让梯度沿细胞状态稳定流动,能记长依赖。

  • GRU 把门简化为更新门和重置门,无独立细胞状态,参数更少、训练更快。

  • 选型:长依赖、数据多用 LSTM;资源有限或追求速度用 GRU;二者效果常相近。

标准回答

RNN 及其问题

RNN 在每个时间步用同一组权重,把上一步隐藏状态与当前输入结合,递归处理序列。但反向传播跨很多时间步连乘梯度,容易梯度消失(学不到远距离依赖)或梯度爆炸,长序列建模能力差。

LSTM 如何改进

LSTM 增加一条贯穿时间的细胞状态(cell state),并用三个门控制信息:

  • 遗忘门:决定丢弃多少旧记忆。
  • 输入门:决定写入多少新信息。
  • 输出门:决定输出多少细胞状态。

细胞状态以近似加法方式更新,使梯度能较稳定地长距离传播,从而缓解梯度消失、记住长依赖。

GRU 的简化

GRU 只有两个门:更新门(兼顾遗忘与写入)和重置门(控制对历史的依赖),并合并隐藏状态与细胞状态。参数更少、计算更快,在中小数据上常与 LSTM 表现相当。

常见误区

⚠️ 常见踩坑

说 LSTM「彻底解决」了梯度消失——它只是显著缓解,超长序列仍会衰减;门控也无法消除梯度爆炸,仍需梯度裁剪。

追问

追问 1LSTM 为什么能缓解梯度消失?

关键在细胞状态的更新近似为加法(C_t = f_t·C_{t-1} + i_t·g_t),遗忘门控制保留比例。当遗忘门接近 1 时,梯度可沿细胞状态近乎恒等地向前传播,避免了普通 RNN 因激活函数导数连乘导致的指数衰减,因此能学到更长的依赖。

追问 2什么时候选 GRU 而不是 LSTM?

GRU 参数比 LSTM 少约四分之一,训练更快、更省内存,在数据量较小或对延迟/算力敏感时更合适,且容易收敛。LSTM 门控更细致,在超长序列或大数据上可能略优。实践中常两者都试,按验证集结果选择。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。