机器学习数学基础 120 章

行列式及其几何意义

层级:B|按需

1. 不要把行列式只当作展开公式

方阵 AA 的行列式 det(A)\det(A) 是一个标量。它最重要的含义是:线性变换把有向体积放大多少,以及变换是否把空间压扁。手算三阶以上行列式不是机器学习重点,理解非零、符号和变量变换的含义才是。

2. 二阶行列式

A=[abcd],det(A)=adbc.A=\begin{bmatrix}a&b\\c&d\end{bmatrix}, \qquad \det(A)=ad-bc.

若列向量为 v1=(a,c)Tv_1=(a,c)^Tv2=(b,d)Tv_2=(b,d)^Tdet(A)|\det(A)| 是这两个向量张成的平行四边形面积。

例如

A=[2003],A=\begin{bmatrix}2&0\\0&3\end{bmatrix},

把横向伸长 2 倍、纵向伸长 3 倍,面积放大 2×3=62\times3=6,行列式为 6。

3. 符号表示方向

行列式为负表示变换除了缩放还翻转了空间取向。例如二维反射

[1001]\begin{bmatrix}-1&0\\0&1\end{bmatrix}

的行列式为 1-1:面积大小不变,但左右方向翻转。概率密度做变量替换时使用绝对值 detJ|\det J|,因为体积不能为负。

4. 行列式为零意味着空间被压扁

det(A)=0\det(A)=0,单位方形/立方体被映射成零面积/零体积对象,矩阵至少丢失一个维度。等价地:

  • 列向量线性相关;
  • 行向量线性相关;
  • 秩小于 nn
  • 存在非零 xx 使 Ax=0Ax=0
  • AA 不可逆;
  • 方程 Ax=bAx=b 不会对所有 bb 都有唯一解。

这组等价性质比展开计算更值得记忆。

5. 高维定义直觉

n×nn\times n 矩阵的 det(A)|\det(A)| 是单位超立方体经 AA 变换后的 nn 维体积缩放因子。代数定义可写成所有排列的带符号乘积之和:

det(A)=πsgn(π)i=1nai,π(i).\det(A)=\sum_{\pi}\operatorname{sgn}(\pi) \prod_{i=1}^{n}a_{i,\pi(i)}.

这个公式解释定义但不适合直接计算,项数为 n!n!。实际计算使用 LU 分解等 O(n3)O(n^3) 方法。

6. 基本性质

det(I)=1,\det(I)=1, det(AT)=det(A),\det(A^T)=\det(A), det(AB)=det(A)det(B),\det(AB)=\det(A)\det(B),

AA 可逆:

det(A1)=1det(A).\det(A^{-1})=\frac1{\det(A)}.

三角矩阵的行列式等于对角元素之积。特征值为 λi\lambda_i 时:

det(A)=iλi\det(A)=\prod_i\lambda_i

(按代数重数计算)。

7. 行操作对行列式的影响

  • 交换两行:行列式变号;
  • 某行乘 cc:行列式乘 cc
  • 某行加上另一行的倍数:行列式不变。

因此可通过消元化为三角矩阵计算。软件通常返回基于分解的结果。

8. 变量替换中的 Jacobian 行列式

一维变量替换中,长度元素按 dy/dx|dy/dx| 缩放。多维中,若 y=g(x)y=g(x),局部体积按

detJg(x)|\det J_g(x)|

缩放,其中 JgJ_g 是 Jacobian 矩阵。概率密度变换必须补偿体积变化:

pY(y)=pX(g1(y))detJg1(y).p_Y(y)=p_X(g^{-1}(y)) \left|\det J_{g^{-1}}(y)\right|.

正规化流等生成模型直接利用这一公式。

9. 高斯分布中的行列式

多元高斯密度包含

1(2π)d/2Σ1/2.\frac1{(2\pi)^{d/2}|\Sigma|^{1/2}}.

Σ|\Sigma| 称广义方差,表示协方差椭球体积尺度。若行列式接近零,分布在某些方向极窄;等于零时普通 dd 维密度公式失效,因为分布退化到低维子空间。

10. Log-determinant

高维正定矩阵行列式可能极大或极小,通常计算

logdet(A)=ilogλi.\log\det(A)=\sum_i\log\lambda_i.

数值上对正定矩阵可用 Cholesky 分解 A=LLTA=LL^T

logdet(A)=2ilogLii.\log\det(A)=2\sum_i\log L_{ii}.

应使用库函数 slogdet 或分解,不要先算行列式再取对数,以免上溢、下溢或符号丢失。

易错点

  1. 只有方阵有普通行列式。
  2. 行列式是一个数,不是矩阵。
  3. det(A+B)\det(A+B) 一般不等于 det(A)+det(B)\det(A)+\det(B)
  4. 行列式接近零比精确等于零更常见,也会导致数值病态。
  5. 浮点下用 det == 0 判断奇异不可靠。

常见问答

Q1:机器学习需要会按代数余子式展开吗?

会二阶、理解三阶概念即可。实际重点是可逆性、体积缩放、log-det 和稳定分解。

Q2:行列式大是否表示矩阵“好”?

不一定。它是所有奇异值的乘积,可能一个方向极大、另一个极小,乘积仍普通但条件很差。

Q3:协方差行列式为零怎么办?

可能有精确冗余或样本少于维度。可删除冗余特征、降维、使用伪逆或加 λI\lambda I 正则化。

练习

  1. 计算 [2134]\begin{bmatrix}2&1\\3&4\end{bmatrix} 的行列式。
  2. 两列相同的方阵行列式为何为零?
  3. det(A)=3,det(B)=2\det(A)=3,\det(B)=-2,求 det(AB)\det(AB)
  4. 对角矩阵 diag(2,5,1)\operatorname{diag}(2,5,-1) 的行列式是什么?
  5. 为什么概率变量替换使用行列式绝对值?

答案与提示

  1. 83=58-3=5
  2. 列线性相关,张成体积为零;也可由交换相同列既应变号又不改变矩阵推出。
  3. 6-6
  4. 10-10
  5. 行列式符号表示取向,概率体积必须非负。