返回 深度学习 思维导图
中文·English
🧠 深度学习ID: rnn-basics

RNN 与 BPTT

RNN & BPTT
🎯核心定义
RNN(循环神经网络)是序列建模的基础模型, 核心是跨时间步共享权重。隐状态递推 ht=tanh(Whhht1+Wxhxt+bh)h_t = \tanh(W_{hh}h_{t-1} + W_{xh}x_t + b_h), 输出 yt=Whyhty_t = W_{hy}h_t: 每个时刻复用同一组 Whh,WxhW_{hh}, W_{xh}, 与 DNN/CNN 逐层独立的权重形成对比。训练用 BPTT(Backpropagation Through Time): 把时间维展开成 TT 层“虚拟网络”做反向传播, 梯度沿 hTh1=t=2Ththt1=t=2TWhhTdiag(tanh(ht1))\frac{\partial h_T}{\partial h_1} = \prod_{t=2}^{T} \frac{\partial h_t}{\partial h_{t-1}} = \prod_{t=2}^{T} W_{hh}^T \mathrm{diag}(\tanh'(h_{t-1})) 连乘传递——这就是梯度消失/爆炸的数学根源: 当谱半径 ρ(Whh)<1\rho(W_{hh}) < 1 时乘积指数衰减(0.9500.0050.9^{50} \approx 0.005), 相隔 50 步的依赖几乎学不到; 当 >1> 1 时梯度爆炸。此即“长期依赖困境”。
💡使用场景
文本/语音/时序等序列数据的入门模型, 面试中作为“RNN → LSTM/GRU → Transformer/Mamba”演进链的第一环; 高频追问包括 BPTT 推导、BPTT 与标准 BP 的区别、梯度消失/爆炸的数学解释与缓解手段(梯度裁剪、正交初始化、门控、截断 BPTT)。
解决的核心痛点
相比定长窗口模型(N-gram、1D-CNN), 权重共享使参数量与序列长度无关(单步 O(d2)O(d^2)), 并能处理变长序列、在原理上编码任意长程依赖。代价是连乘式梯度传播使长期记忆指数失效, 因此被 LSTM/GRU 的加性门控路径取代, 而 Transformer/Mamba 则从并行性与复杂度两个方向进一步演进。
🎯5 个高频面试考点 (Exam Points)
1
写出标准 RNN 前向 ht=tanh(Whhht1+Wxhxt+bh)h_t = \tanh(W_{hh}h_{t-1} + W_{xh}x_t + b_h), 解释为什么跨时间步共享权重、参数量为何与序列长度 TT 无关?
2
BPTT 与标准反向传播的区别: 误差如何沿 htht1\frac{\partial h_t}{\partial h_{t-1}} 连乘回到早期时刻, 为什么对 WhhW_{hh} 的梯度是所有时间步贡献之和?
3
推导梯度消失/爆炸: 展开 hTh1=t=2TWhhTdiag(tanh)\frac{\partial h_T}{\partial h_1} = \prod_{t=2}^{T} W_{hh}^T \mathrm{diag}(\tanh'), 说明谱半径 ρ(Whh)\rho(W_{hh}) 与激活函数导数如何决定长期依赖能否学到 (0.9500.0050.9^{50} \approx 0.005)。
4
缓解梯度问题的手段有哪些? 为什么梯度裁剪(clip 1.0)对爆炸有效、对消失无效? 正交初始化与门控分别起什么作用?
5
RNN 为什么无法并行训练(hth_t 依赖 ht1h_{t-1})? 单步复杂度 O(d2)O(d^2) 指什么? 与 Transformer(O(L2)O(L^2) 可并行)和 Mamba(O(L)O(L) 可并行)的对比如何?
📖 关联深度指南:📄 rnn-lstm-and-mamba-ssm
更新于 2026-08-12
🎯
检验攻克程度:针对「RNN 与 BPTT」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点ViT 与归纳偏置下一个知识点LSTM 门控

🔗 更多 深度学习 知识点卡片

激活函数演进Adam/AdamWAutograd 动态图BatchNorm 批归一化