核心要点

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

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

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

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

标准回答

一、RNN 及其问题

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

二、LSTM 如何改进

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

  • 遗忘门:决定丢弃多少旧记忆。
  • 输入门:决定写入多少新信息。
  • 输出门:决定输出多少细胞状态。
    细胞状态以近似加法方式更新,使梯度能较稳定地长距离传播,从而缓解梯度消失、记住长依赖。

三、GRU 的简化

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

面试里不要只停在公式或名词,可以补 RNN、LSTM、GRU 有什么区别 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:说 LSTM「彻底解决」了梯度消失——它只是显著缓解,超长序列仍会衰减;门控也无法消除梯度爆炸,仍需梯度裁剪。

追问

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

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

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

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

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习