RNN 的缺点:通用「不能并行」 + S-RNN 特有「长程依赖 / 梯度问题」¶
- 章节:第25章 · 循环神经网络(25.1 简单循环神经网络、25.2 常用循环神经网络)
- 出处:课本 p449(优缺点原话)、p454「梯度消失与爆炸」、p454 末–p455(长距离依存能力有限)。式 25.1 递归、\(A_t=\text{diag}(1-\tanh^2 r_t)\cdot U^\top\)。
问题¶
循环神经网络的优点和缺点各是什么?为什么不能并行?S-RNN 又有什么特有缺点?
正确答案(分两个层面)¶
一、循环神经网络(通用)的缺点 —— 书上明写「缺点」二字(p449)¶
课本原话:「循环神经网络的优点是可以处理任意长度的序列数据,缺点是不能进行并行化处理以提高计算效率。」
为什么不能并行:状态按递归方式计算(式25.1)
\[\boldsymbol h_t=\tanh(\boldsymbol U\cdot \boldsymbol h_{t-1}+\boldsymbol W\cdot \boldsymbol x_t+\boldsymbol b)\]
\(\boldsymbol h_t\) 依赖 \(\boldsymbol h_{t-1}\),所以前向必须从 \(t=1\) 依次算到 \(t=T\);反向传播同理,要先算第 \(T\) 个位置再一步步回传到第 1 个位置(BPTT 沿时间逐位置递推),无法像前馈网络/CNN 那样同时计算所有位置。
这正是后面 Transformer 用注意力取代 RNN 的主要动机——注意力可并行计算所有位置。
二、S-RNN 特有的缺点 —— 引出 LSTM/GRU 的那两个问题(p454–455)¶
① 长程依赖处理差(p454 末–p455)
课本原话:「S-RNN 对短距离依存关系可以有效地表示和学习,而对长距离依存关系的处理能力有限,因为长距离依存关系在模型中会被逐渐『遗忘』。」
② 梯度消失与爆炸更严重(p454 §2)
课本原话:「在循环神经网络的学习过程中,会产生梯度消失和梯度爆炸……反向传播的计算依赖矩阵的连乘……循环神经网络的梯度消失与梯度爆炸更严重,因为矩阵的连乘接近矩阵的连续自乘,而前馈神经网络一般不是。」
反向传播依赖的连乘矩阵:
\[A_t=\text{diag}\!\left(1-\tanh^2 r_t\right)\cdot \boldsymbol U^\top\]
由于各位置共享同一个 \(\boldsymbol U\),连乘 \(\approx\) 同一矩阵的连续自乘(接近 \(\boldsymbol U^\top\) 的幂),元素易趋于 0(消失)或 ∞(爆炸);前馈网络每层权重不同,一般不构成自乘,所以 RNN 更严重。
解法(书上紧接着给):「为避免梯度消失和梯度爆炸,可以使用 LSTM 和 GRU。」
易错点 / 补充¶
- 两类缺点别混:「不能并行」是所有 RNN 共有(p449);「长程依赖 + 梯度问题」是 S-RNN 特有、用来引出门控网络(p454-455)。
- 梯度爆炸 vs 消失的治法不同(老师录音强调):
- 梯度爆炸好治——权重衰减或梯度裁剪(gradient clipping)即可。
- 梯度消失难治——只能改进模型,即用 LSTM / GRU 门控网络。
- 「更严重」的关键词是矩阵连续自乘(共享 \(\boldsymbol U\)),这是 RNN 区别于前馈网络梯度问题的根因,答题写上得分。
- 优点别漏:可处理任意长度序列(前馈网络输入层宽度固定,做不到)。
背诵版¶
- 通用缺点:不能并行化、计算效率低(\(\boldsymbol h_t\) 依赖 \(\boldsymbol h_{t-1}\),前向/反向都得按时间顺序逐位置算)→ Transformer 动机。
- S-RNN 特有缺点:① 长程依赖会被逐渐遗忘;② 梯度消失/爆炸更严重(连乘≈矩阵连续自乘)→ 用 LSTM/GRU 缓解(爆炸还可权重衰减/梯度裁剪,消失只能改模型)。