讨论深层网络的梯度传播时,最容易拿来用的一句话是:
如果 Jacobian 的谱半径小于 1,梯度消失;大于 1,梯度爆炸。
这句话在一个很窄的场景里是对的:每一层都使用同一个固定线性变换。但 Transformer 里的反向传播不是这么干净。每一层的 Jacobian 都依赖参数、输入、残差结构和 LayerNorm 的当前位置;把它们全部压成一个固定矩阵,会丢掉很多机制。
更合适的路线是:
fixed matrix→random scalar product→random matrix product→random Jacobian product.
这样看,梯度稳定性不再只是一个谱半径问题,而是一个长期指数增长率问题。固定矩阵的指数率是 logρ(A);标量随机乘积的指数率是 Eloga;随机矩阵乘积的指数率则由最高 Lyapunov exponent 控制。
符号表#
| 符号 | 含义 |
|---|
| A | 固定矩阵,A∈Cd×d |
| ρ(A) | A 的谱半径 |
| σ(A) | A 的特征值集合 |
| ai | 第 i 步的随机标量缩放 |
| Mi | 第 i 步的随机矩阵 |
| Πn | 随机矩阵乘积 MnMn−1⋯M1 |
| λ1 | 随机矩阵乘积的最高 Lyapunov exponent |
| Jl | 第 l 层前向映射的 Jacobian |
| gl | 第 l 层的反向梯度 |
| ηt | 第 t 步学习率 |
1. 固定矩阵反复作用#
设
A∈Cd×d,σ(A)={λ1,λ2,…,λd}.
谱半径定义为:
ρ(A)=λi∈σ(A)max∣λi∣.
Gelfand 公式,也叫谱半径公式,给出:
ρ(A)=n→∞lim∥An∥1/n.
取对数后就是:
logρ(A)=n→∞limn1log∥An∥.
含义很直接:一个固定线性变换反复作用时,长期指数增长率由最大模特征值控制。Tropp 的谱半径公式笔记也用初等矩阵方法证明了同一件事:对任意矩阵和任意矩阵范数,∥An∥1/n 都收敛到 ρ(A)。
证明骨架可以从 Jordan 分解看。写成:
A=SJS−1,J=diag(J1,J2,…,Jm).
于是
An=SJnS−1.
由范数次乘性:
∥An∥≤∥S∥∥Jn∥∥S−1∥.
取 n 次方根:
∥An∥1/n≤∥S∥1/n∥Jn∥1/n∥S−1∥1/n.
当 n→∞ 时,∥S∥1/n 和 ∥S−1∥1/n 都趋于 1,所以长期增长率只需要看 ∥Jn∥1/n。
对一个 Jordan block:
Jλ=λI+N,Nm=0.
二项式展开给出:
Jλn=(λI+N)n=k=0∑m−1(kn)λn−kNk.
这里的 nilpotent 部分只带来多项式因子。可以写成:
∥Jλn∥≤Cnm−1∣λ∣n.
取 n 次方根后,多项式项会消失:
∥Jλn∥1/n≤C1/nn(m−1)/n∣λ∣→∣λ∣.
再结合特征方向上的下界,就得到:
n→∞lim∥Jλn∥1/n=∣λ∣.
整个 J 是 block diagonal,所以最终取最大 block:
n→∞lim∥Jn∥1/n=imax∣λi∣=ρ(A).
如果一个深层网络的反向传播真的可以写成固定 Jacobian 的幂:
g0=ALgL,
那么长期尺度就是:
∥g0∥≈exp(Llogρ(A))∥gL∥.
此时 ρ(A)<1 对应指数衰减,ρ(A)>1 对应指数增长,ρ(A)≈1 对应临界传播。
2. 标量随机乘积#
固定矩阵是乘法系统里最整齐的一种情况。先把矩阵问题降到一维,设每一步只是随机标量缩放:
ai>0,Pn=i=1∏nai.
乘法本身不容易求平均,但取对数后会变成加法:
logPn=log(i=1∏nai)=i=1∑nlogai.
令
Xi=logai.
如果 Xi 独立同分布,并且 E∣Xi∣<∞,强大数定律给出:
n1logPn=n1i=1∑nXi→EX1=Eloga1a.s.
所以:
Pn≈exp(nEloga1).
这里最值得记住的是:
Eloga1=logEa1.
乘法系统看的不是平均倍率,而是平均 log-growth。一个系统可以有很大的偶发放大,但只要典型路径上的 Eloga1<0,长期乘积仍然会衰减。
3. 随机矩阵连乘#
现在把标量 ai 换成矩阵:
Mi∈Rd×d.
定义随机矩阵乘积:
Πn=MnMn−1⋯M1.
标量情形里有精确等式:
log(i=1∏nai)=i=1∑nlogai.
矩阵情形通常没有对应等式:
log∥Mn⋯M1∥=i=1∑nlog∥Mi∥.
原因不是技术细节,而是机制本身。矩阵乘法不交换,而且每一步都会改变向量方向。某个矩阵的最大放大方向,经过前面矩阵作用后,不一定还对齐下一步矩阵的最大放大方向。
但矩阵范数满足次乘性:
∥AB∥≤∥A∥∥B∥.
把乘积分成两段:
Πn+m=(Mn+m⋯Mn+1)(Mn⋯M1).
因此:
∥Πn+m∥≤∥Mn+m⋯Mn+1∥∥Mn⋯M1∥.
取对数:
log∥Πn+m∥≤log∥Mn+m⋯Mn+1∥+log∥Mn⋯M1∥.
这就是次可加性。令
Yn=log∥Πn∥.
在平移记号下,可以写成:
Yn+m≤Yn+Ym∘Tn.
Furstenberg-Kesten 定理处理的就是这种随机矩阵乘积的长期增长率。一个常用表述是:在合适可积条件下,例如
Elog+∥M1∥<∞,log+x=max(logx,0),
极限
n→∞limn1log∥MnMn−1⋯M1∥
几乎处处存在。对 i.i.d. 或更一般的遍历情形,这个极限几乎处处为常数,称为最高 Lyapunov exponent:
λ1=n→∞limn1log∥MnMn−1⋯M1∥.
常见形式还给出:
λ1=n≥1infn1Elog∥MnMn−1⋯M1∥.
这就是随机矩阵连乘里的平均指数增长率:
∥Πn∥≈exp(nλ1).
和标量乘积相比,λ1 不是单步 log∥Mi∥ 的平均值。它还包含方向如何在随机矩阵之间被转动、压缩、重新对齐。
4. 三个增长率放在一起#
三类对象可以放成一张表:
| 场景 | 对象 | 长期指数增长率 |
|---|
| 固定矩阵反复乘 | An | logρ(A) |
| i.i.d. 标量乘积 | ∏i=1nai | Eloga1 |
| i.i.d. 随机矩阵乘积 | Mn⋯M1 | λ1 |
对应的极限是:
n→∞limn1log∥An∥=logρ(A).
n→∞limn1log(i=1∏nai)=Eloga1.
n→∞limn1log∥MnMn−1⋯M1∥=λ1.
从简单到复杂,就是:
spectral radius→law of large numbers on logs→Furstenberg-Kesten / Lyapunov exponent.
Transformer 的反向传播可以局部写成 Jacobian 连乘。设第 l 层前向映射的 Jacobian 为 Jl,则反向传播中会出现 Jl⊤。从第 L 层传到第 0 层:
g0=J1⊤J2⊤⋯JL⊤gL.
令
Ml=Jl⊤.
于是:
g0=M1M2⋯MLgL.
梯度范数满足:
∥g0∥≤∥M1M2⋯ML∥∥gL∥.
如果所有层共享同一个近似 Jacobian:
Ml=M,
那么:
g0=MLgL,
此时谱半径公式适用:
L1log∥ML∥→logρ(M).
如果每一层只是随机标量缩放:
Ml=alI,
那么:
M1M2⋯ML=(l=1∏Lal)I,
于是:
L1log∥M1M2⋯ML∥=L1l=1∑Llog∣al∣→Elog∣a1∣.
如果每一层是真正的随机矩阵,就需要随机矩阵乘积的语言:
L1log∥J1⊤J2⊤⋯JL⊤∥→λ1.
因此,梯度稳定性可以压成一个指数率问题:
λ1<0⇒梯度指数衰减;
λ1>0⇒梯度指数放大;
λ1≈0⇒接近临界传播.
这里的 λ1 更像分析语言,而不是说真实 Transformer 严格满足 i.i.d. 随机矩阵假设。真实层之间会相关,Jacobian 也随输入、训练步和参数更新而变化。但这个视角提醒我们:深层梯度传播不能只看某一层的谱范数,也不能把每层最大放大方向简单相乘。方向对齐和层间随机性同样重要。
6. Post-LN 与 Pre-LN 的位置#
Post-LN 的反向链路中,每层都会出现外层 LayerNorm 的 Jacobian:
Jl=JLN(xl+Fl(xl))(I+∂xl∂Fl(xl)).
反向传播为:
gl=(I+∂xl∂Fl(xl))⊤JLN(xl+Fl(xl))⊤gl+1.
多层展开就是:
g0=l=1∏L[(I+∂xl∂Fl(xl))⊤JLN(xl+Fl(xl))⊤]gL.
这个连乘不是固定矩阵,也不是标量缩放,而是层相关、输入相关、初始化相关的随机 Jacobian 乘积。
从这个角度看,Post-LN 的问题可以这样描述:
靠近输出端的参数还没有经历很长的 Jacobian 连乘路径,因此初始化梯度容易偏大;靠近输入端的梯度则要穿过更多层随机 Jacobian 调制,更容易衰减。于是层间梯度尺度失衡。
这和前一篇 Post-LN Transformer 为什么需要 Warmup? 的结论是同一件事的另一种语言。那篇文章从 LayerNorm 的 Jacobian 尺度出发,看出 Pre-LN 的 final LayerNorm 会带来约 1/L 的自然缩放,而 Post-LN 输出端没有这个深度缓冲。
warmup 处理的是更新量,而不是直接改掉 Jacobian 连乘:
Δθl=−ηt∇θlL.
当某些层在初始化时梯度过大,线性 warmup 使用:
ηt=Twarmuptηmax.
于是:
∥Δθl∥=Twarmuptηmax∥∇θlL∥.
warmup 不会把 λgrad 从正改成负,也不会让随机 Jacobian 乘积突然变成临界传播。它做的是更朴素的一步:在初始化最脆弱的阶段,把输出端的大梯度更新先压住,避免参数被早期几步改得太猛。
7. 总结#
谱半径公式告诉我们,固定矩阵反复作用的长期指数率是 logρ(A)。强大数定律告诉我们,标量随机乘积的长期指数率是 Eloga,不是 logEa。Furstenberg-Kesten 定理进一步说明,随机矩阵乘积也有长期指数率,也就是最高 Lyapunov exponent。
放回 Transformer,这条线可以写成:
gradient propagation=random Jacobian product⇒exponential rate problem
因此,分析深层梯度时,谱半径只是起点。真正接近 Transformer 的问题是:每层 Jacobian 如何缩放、如何转动方向、如何在随机连乘中形成长期指数率,以及这个指数率在不同层的截断路径上如何表现为梯度尺度失衡。
参考资料#