在推导深度学习模型反向传播时,矩阵求导(Matrix Calculus)是最常见的数学工具之一。
很多复杂的梯度推导,本质上都依赖一些非常基础的矩阵微分公式。本文总结几个深度学习中最常见的公式,并通过 Attention 的反向传播展示这些公式如何实际使用。
一、常用矩阵求导公式
1 Frobenius 内积
含义
矩阵的 Frobenius 内积定义为:
等价写法:
为什么重要
在深度学习中:
梯度通常写成 Frobenius inner product 形式。
例如 loss 的微分可以写为
这样可以统一标量对矩阵的求导表达。
2 标量函数的矩阵微分
含义
如果
其中
- $L$ 是标量
- $X$ 是矩阵
那么微分展开为
用 Frobenius 内积表示就是
上式也可以自然推广到 多元变量的情况。如果损失函数依赖于多个矩阵变量,例如
那么它的全微分可以写为
也就是
这实际上就是多元微积分中全微分公式
在矩阵情形下的推广,其中内积由普通乘法推广为 Frobenius 内积。在深度学习的反向传播推导中,我们通常通过观察 $dL$ 中与某个 $dX_i$ 对应的项,直接读出对应变量的梯度 $\frac{\partial L}{\partial X_i}$。
作用
这是 反向传播链式法则的核心表达方式。
3 Jacobian 线性近似
含义
如果
其中
则 Jacobian 定义为
于是微分关系为
在深度学习中的意义
在反向传播中:
4 矩阵乘法求导
含义
这是矩阵版本的 乘法求导法则(Product Rule)
对应标量:
使用场景
神经网络中最常见形式:
则
5 Trace 循环性质
含义
Trace 具有 循环不变性(cyclic property)
例如
但需要注意:
- 只能循环
- 不能改变矩阵顺序
为什么重要
在梯度推导中,经常需要将
变换为
这实际上利用了 trace 的循环性质。
二 Attention 反向传播例子
下面通过 Transformer Attention 展示这些公式如何使用。
1 Attention 前向传播
标准 Attention 计算:
其中
2 输出层梯度
假设
已知
Step 1 对 V 求导
因为
根据矩阵乘法求导
只看 $dV$ 项:
loss 微分:
代入
利用 trace 循环性质
得到
Step 2 对 P 求导
同样
loss 微分
使用 trace 循环
所以
Step 3 对 S 求导
因为
使用 Jacobian:
因此
Step 4 对 Q 和 K 求导
因为
根据矩阵乘法求导:
对 Q 求导
代入
使用 trace 循环
因此
对 K 求导
因为
得到
三 Attention 反向传播总结
最终梯度结果:
四 总结
深度学习中的复杂梯度推导,其实大量依赖几个简单规则:
核心四件套:
- Frobenius 内积
- trace 循环性质
- 矩阵乘法求导
- Jacobian
只要熟练掌握这些公式,像
- Attention
- Transformer
- LayerNorm
- BatchNorm
等模块的梯度推导都会变得非常清晰。