核心要点
能解释隐藏状态 h_t 如何传递时序信息
能举序列建模典型场景(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)、语音识别、股价预测等顺序依赖任务。
变体:
局限:难以并行(逐步递归);极长序列仍难捕获远程依赖;训练不稳定。2017 年后 Transformer 在 NLP 主流任务上全面超越 RNN,但 RNN 在边缘低算力、流式小模型、经典时序基线场景仍有价值。
常见误区
⚠️ 常见踩坑
把 RNN 说成「只能处理固定长度」;忽视双向/多层 RNN;声称 RNN 已完全被淘汰而不提边缘与流式场景。
追问
追问 1:LSTM 如何解决梯度消失?
通过细胞状态 C_t 与门控线性传递路径,使梯度可较长时间稳定回传;遗忘门控制保留多少历史,输入门控制写入多少新信息,避免 vanilla RNN 中连乘导致的指数衰减。
追问 2:Seq2Seq + Attention 与纯 RNN 编码解码有何不同?
纯 Seq2Seq 将整个源句压缩为固定向量,长句信息瓶颈严重。Bahdanau Attention 让解码每步动态关注编码器各位置,是迈向 Transformer 的关键一步。
追问 3:RNN 和 1D CNN 处理序列如何选型?
RNN 擅长时间步依赖与变长序列;1D CNN+膨胀卷积用固定感受野、可高度并行。WaveNet 用膨胀 CNN 做语音;许多时序任务先试 TCN 或 Transformer。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具