核心要点
能解释隐藏状态 h_t 如何传递时序信息
能举序列建模典型场景(NLP、时序、语音)
知道 Transformer 在很多场景已替代 vanilla RNN
标准回答
专为序列数据设计:每步接收输入 x_t 与上一步隐藏状态 h_{t-1},更新 h_t = f(Wx_t + Uh_{t-1} + b),再输出 y_t。
二、核心思想
参数在时间步共享,用有限状态概括历史——适合语言建模、机器翻译(Seq2Seq)、语音识别、股价预测等顺序依赖任务。
三、变体
- LSTM:门控机制(遗忘/输入/输出门)缓解 梯度消失
- GRU:简化版 LSTM,参数更少
- 双向 RNN:同时看过去与未来上下文(标注任务)
面试里不要只停在公式或名词,可以补 循环神经网络RNN 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。
四、局限
难以并行(逐步递归);极长序列仍难捕获远程依赖;训练不稳定。2017 年后 Transformer 在 NLP 主流任务上全面超越 RNN,但 RNN 在边缘低算力、流式小模型、经典时序基线场景仍有价值。
工程上 PyTorch 提供 nn.RNN/nn.LSTM/nn.GRU;详见 序列模型。
回答思路
【定义】用一句话说清「什么是循环神经网络(RNN)?有哪些应用场景」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
术语:RNN、Transformer。知识库:序列模型、深度学习基础。工具:PyTorch。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:把 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。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
