核心要点

  • 细胞状态(cell state)贯穿时间,是承载长期记忆的主干

  • 遗忘门:决定从 cell 丢弃多少旧信息

  • 输入门:配合候选状态决定写入多少新信息

  • 输出门:决定从 cell 输出多少作为当前隐藏状态

标准回答

LSTM(长短期记忆网络)通过一个细胞状态三个门解决普通 RNN 难以保留长期信息、易梯度消失的问题。

细胞状态(Cell State, C_t)
它像一条贯穿整个序列的「传送带」,只受门控的加法 / 乘法修改,信息可以近乎无损地沿时间流动,是长期记忆的载体。

三个门(输入都是上一步隐藏状态 h_{t-1} 与当前输入 x_t 的拼接)

  1. 遗忘门(Forget Gate, f_t)f_t = σ(W_f·[h_{t-1}, x_t] + b_f)。用 sigmoid 输出 0~1,决定旧细胞状态 C_{t-1} 保留多少,0 表示彻底遗忘、1 表示完全保留。
  2. 输入门(Input Gate, i_t)+ 候选状态(C̃_t)i_t = σ(...) 决定写入多少新信息;候选 C̃_t = tanh(...) 用 tanh 生成待写入的新内容。两者相乘即本步要加入的信息。
  3. 输出门(Output Gate, o_t)o_t = σ(...)决定从细胞状态输出多少作为隐藏状态

协作流程(状态更新)

  • 更新细胞状态:C_t = f_t * C_{t-1} + i_t * C̃_t(先按遗忘门擦除旧信息,再按输入门写入新信息)。
  • 计算隐藏状态:h_t = o_t * tanh(C_t)(把细胞状态压到 -1~1 再由输出门过滤)。

直觉:sigmoid 门是 0~1 的「开关 / 阀门」,控制信息流多少;tanh 负责生成或压缩具体数值。三门协作让网络能选择性地记住、遗忘和读取信息,从而维持长期依赖。

常见误区

⚠️ 常见踩坑

把遗忘门和输出门搞混。遗忘门作用在「写入前」的细胞状态更新上,控制旧记忆保留多少;输出门作用在「读取时」,控制从细胞状态输出多少给隐藏状态。两者一个管内部记忆的留存、一个管对外的暴露,不能混为一谈。另外门用 sigmoid(当阀门)、候选状态用 tanh(造内容),别记反。

追问

追问 1为什么门用 sigmoid 而候选状态用 tanh?

sigmoid 输出 01,天然适合做「保留比例 / 开关」,控制信息通过的多少;tanh 输出 -11,关于 0 对称、零均值,适合表示可正可负的候选信息内容,数值范围有界也利于稳定训练。一个负责「开多大」,一个负责「写什么」,分工不同。

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

关键在细胞状态的更新是加性的:C_t = f_t * C_{t-1} + i_t * C̃_t。当遗忘门接近 1 时,梯度可以沿细胞状态这条「恒等通路」近似无衰减地回传,避免了普通 RNN 中反复乘以雅可比矩阵导致的指数级梯度消失。

追问 3GRU 和 LSTM 的主要区别是什么?

GRU 把 LSTM 的三门简化为更新门和重置门两门,且不单独维护细胞状态,直接在隐藏状态上做门控。参数更少、计算更快,小数据或对效率敏感时常更好;LSTM 表达能力略强,在某些长序列任务上可能更稳。实践中两者效果常接近,需按任务实测选择。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

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