核心要点

  • 能解释隐藏状态 h_t 如何传递时序信息

  • 了解 RNN/LSTM/GRU 的区别与梯度问题

  • 能举序列建模典型场景(NLP、时序、语音)

  • 知道 Transformer 在很多场景已替代 vanilla RNN

简要回答

RNN(循环神经网络 专为序列数据设计:每步接收输入 x_t 与上一步隐藏状态 h_{t-1},更新 h_t = f(Wx_t + Uh_{t-1} + b),再输出 y_t;

核心思想:参数在时间步共享,用有限状态概括历史——适合语言建模、机器翻译(Seq2Seq)、语音识别、股价预测等顺序依赖任务

标准回答

RNN(循环神经网络) 专为序列数据设计:每步接收输入 x_t 与上一步隐藏状态 h_{t-1},更新 h_t = f(Wx_t + Uh_{t-1} + b),再输出 y_t。

核心思想:参数在时间步共享,用有限状态概括历史——适合语言建模、机器翻译(Seq2Seq)、语音识别、股价预测等顺序依赖任务。

变体

  • LSTM:门控机制(遗忘/输入/输出门)缓解 梯度消失
  • GRU:简化版 LSTM,参数更少
  • 双向 RNN:同时看过去与未来上下文(标注任务)

局限:难以并行(逐步递归);极长序列仍难捕获远程依赖;训练不稳定。2017 年后 Transformer 在 NLP 主流任务上全面超越 RNN,但 RNN 在边缘低算力流式小模型经典时序基线场景仍有价值。

工程上 PyTorch 提供 nn.RNN/nn.LSTM/nn.GRU;详见 序列模型

常见误区

⚠️ 常见踩坑

把 RNN 说成「只能处理固定长度」;忽视双向/多层 RNN;声称 RNN 已完全被淘汰而不提边缘与流式场景。

追问

追问 1LSTM 如何解决梯度消失?

通过细胞状态 C_t 与门控线性传递路径,使梯度可较长时间稳定回传;遗忘门控制保留多少历史,输入门控制写入多少新信息,避免 vanilla RNN 中连乘导致的指数衰减。

追问 2Seq2Seq + Attention 与纯 RNN 编码解码有何不同?

纯 Seq2Seq 将整个源句压缩为固定向量,长句信息瓶颈严重。Bahdanau Attention 让解码每步动态关注编码器各位置,是迈向 Transformer 的关键一步。

追问 3RNN 和 1D CNN 处理序列如何选型?

RNN 擅长时间步依赖与变长序列;1D CNN+膨胀卷积用固定感受野、可高度并行。WaveNet 用膨胀 CNN 做语音;许多时序任务先试 TCN 或 Transformer。

延伸学习

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

🛠️ AI 工具

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出

  • Tensorflow

    全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具