🔢 线性代数 (Linear Algebra)
本模块目前聚焦于线性代数的相关内容。
一、矩阵求导
矩阵求导的方法一直是笔者在学习过程中最头疼的点。在笔者上过的回归分析、多元统计分析以及优化实用算法中都或多或少接触过矩阵求导,但是从未进行过系统地整理。因在优化实用算法期末考试中深陷繁琐的求和指标而痛失 15 分后,笔者痛定思痛,系统整理矩阵求导的方法,并使用更加简单的矩阵微分方法。
布局约定 (Layout Convention)
本速查表统一采用机器学习与优化领域最常用的分母布局 (Denominator Layout)。 即:标量 \(f\) 对矩阵 \(X_{m \times n}\) 的导数 \(\frac{\partial f}{\partial X}\),其维度与 \(X\) 保持一致,同为 \(m \times n\)。
(一)核心方法:矩阵微分法
传统的对元素求偏导非常容易在求和符号中迷失。更优雅的做法是使用全微分 (Differential)。
微分与导数的核心联系
标量函数 \(f(X)\) 的全微分 \(df\) 总是可以表示为某个矩阵与 \(dX\) 乘积的迹 (Trace):
四步法:
-
求全微分 \(df\)。
-
利用迹的性质化简,凑成 \(\text{tr}(M^T dX)\) 的形式。
-
扒掉 \(\text{tr}\) 和 \(dX\),剩下的 \(M\) 就是导数 \(\frac{\partial f}{\partial X}\)。
矩阵微分的基本运算法则
- 加减法:\(d(X \pm Y) = dX \pm dY\)
- 乘法:\(d(XY) = (dX)Y + X(dY)\)
- 转置:\(d(X^T) = (dX)^T\)
- 迹:\(d(\text{tr}(X)) = \text{tr}(dX)\)
- 迹的轮换对称性:\(\text{tr}(ABC) = \text{tr}(CAB) = \text{tr}(BCA)\)
- 迹的转置不变性:\(\text{tr}(A) = \text{tr}(A^T)\)
(二) 迹的求导 (Trace Derivatives)
在推导 OLS (最小二乘法) 或构建损失函数时,经常需要对迹求导。
常见迹的导数公式
设 \(X\) 为变量矩阵,\(A, B\) 为常量矩阵:
-
\[\frac{\partial \text{tr}(AX)}{\partial X} = A^T\]
-
\[\frac{\partial \text{tr}(AXB)}{\partial X} = A^T B^T\]
-
\[\frac{\partial \text{tr}(X^TAX)}{\partial X} = (A + A^T)X\]
(特例:若 \(A\) 是对称矩阵,则结果为 \(2AX\))
推导过程:\(\frac{\partial \text{tr}(AX)}{\partial X}\)
令 \(f = \text{tr}(AX)\),求微分:
为了凑成 \(\text{tr}(M^T dX)\) 的形式,由于 \(\text{tr}(A dX) = \text{tr}((A^T)^T dX)\),所以 \(M^T = A \implies M = A^T\)。
故:\(\frac{\partial f}{\partial X} = A^T\)。
推导过程:\(\frac{\partial \text{tr}(X^TAX)}{\partial X}\)
令 \(f = \text{tr}(X^TAX)\),求微分(利用乘法法则 \(d(UV) = dU V + U dV\)):
利用迹的转置不变性 \(\text{tr}(M) = \text{tr}(M^T)\),处理第一项:
将两项合并:
提取公因式并利用迹的轮换对称性凑成 \(\text{tr}(M^T dX)\):
故 \(M = (A^T + A)^T X = (A + A^T)X\)。
(三)行列式与逆矩阵的求导 (Determinant & Inverse)
在极大似然估计 (MLE) 中,如果涉及多元正态分布的协方差矩阵 \(\Sigma\),必考行列式和逆的求导。
逆矩阵与行列式的导数公式
设 \(X\) 为可逆方阵:
-
逆矩阵微分: \(d(X^{-1}) = -X^{-1} (dX) X^{-1}\)
-
行列式微分 (Jacobi's Formula): \(d|X| = |X| \text{tr}(X^{-1} dX)\)
-
行列式的导数: \(\frac{\partial |X|}{\partial X} = |X| (X^{-1})^T\)
-
对数行列式的导数:\(\frac{\partial \ln |X|}{\partial X} = (X^{-1})^T\)
推导过程:逆矩阵的微分 \(d(X^{-1})\)
从恒等式 \(XX^{-1} = I\) 出发,两边同时求微分:
移项并左乘 \(X^{-1}\):
行列式求导 \(d|X|\)(代数余子式求和法)
本推导旨在打通标量求和、伴随矩阵与矩阵迹(Trace)之间的联系。
- 元素级求导:\(\frac{\partial |X|}{\partial x_{ij}} = C_{ij}\) 根据行列式的 Laplace 展开,沿第 \(i\) 行展开有:
由于代数余子式 \(C_{ik}\) 的计算不包含第 \(i\) 行的任何元素,因此对 \(x_{ij}\) 而言,\(C_{ik}\) 均为常数。求导得:
结论:行列式对某个元素的偏导数等于该位置的代数余子式。
- 微分与迹的转换:\(d|X| = \text{tr}(X^* dX)\) 利用全微分定义与伴随矩阵 \(X^*\) 的定义(\((X^*)_{ji} = C_{ij}\)):
将其写为矩阵乘积的对角线元素求和形式:
- 导出 Jacobi 公式:\(d|X| = |X| \text{tr}(X^{-1} dX)\) 利用逆矩阵与伴随矩阵的经典关系 \(X^* = |X| X^{-1}\),代入上式:
这便是 Jacobi's Formula,它将行列式的变化率与矩阵的逆和迹联系了起来。
- 对数行列式的梯度 \(\frac{\partial \ln |X|}{\partial X}\) 对 \(f = \ln |X|\) 求全微分,并代入 Jacobi 公式:
对比矩阵微分标准型 \(df = \text{tr}\left( \left(\frac{\partial f}{\partial X}\right)^T dX \right)\):
(注:若 \(X\) 为对称矩阵,则结果简化为 \(X^{-1}\))
行列式求导 \(d|X|\)(矩阵微分法)
本推导完全脱离元素级的 Laplace 展开,仅利用行列式的乘法性质与迹的线性性质。
核心引理(单位矩阵处的微元): 对于单位矩阵 \(I\) 的一个无穷小扰动 \(dE\),其行列式满足:
直觉理解:若 \(dE\) 的特征值为 \(\lambda_i\),则 \(|I+dE| = \prod (1+\lambda_i) = 1 + \sum \lambda_i + \dots = 1 + \text{tr}(dE)\)。
一般矩阵 \(X\) 的全微分推导: 我们要计算 \(d|X| = |X + dX| - |X|\)。利用行列式的乘法性质,强制提取 \(X\) 构造单位矩阵形式:
令微元 \(dE = X^{-1}dX\),代入上述引理:
由微分定义 \(d|X| = |X + dX| - |X|\),立即得到:
推导过程:行列式的导数 \(\frac{\partial |X|}{\partial X}\)
令 \(f = |X|\)。根据雅可比公式 (Jacobi's Formula),行列式的微分为:
将上式重写为迹的内积形式:
对照 \(df = \text{tr}(M^T dX)\),即可得到:
(四)特征值的求导 (Eigenvalue Derivatives)
在推导主成分分析 (PCA) 或研究协方差矩阵的扰动时,极其重要。
特征值的导数公式
设方阵 \(X\) 有非零特征值 \(\lambda\),其对应的右特征向量为 \(u\) (\(Xu = \lambda u\)),左特征向量为 \(v\) (\(v^T X = \lambda v^T\))。
假设左右特征向量已经归一化满足 \(v^T u = 1\),则特征值 \(\lambda\) 对矩阵 \(X\) 的导数为:
(注意:若 \(X\) 是实对称矩阵,则左、右特征向量相等,即 \(u=v\),此时导数为 \(uu^T\))
推导过程:\(\frac{\partial \lambda}{\partial X}\)
从右特征向量的定义式出发:
对两边同时求全微分:
在等式两边同时左乘左特征向量 \(v^T\):
因为 \(v^T\) 是左特征向量,满足 \(v^TX = \lambda v^T\),代入上式左边第二项:
等式两边的 \(\lambda v^T(du)\) 刚好抵消!我们得到:
由于标量的迹等于其自身,我们可以加上 \(\text{tr}\) 并利用轮换对称性:
由于 \(v^T u\) 只是一个标量,若将其提取出来并与标准形式 \(df = \text{tr}(M^T dX)\) 对比:
如果事先约定 \(v^Tu = 1\),则最终结果简化为: