行列式及其几何意义
层级:B|按需
1. 不要把行列式只当作展开公式
方阵 A 的行列式 det(A) 是一个标量。它最重要的含义是:线性变换把有向体积放大多少,以及变换是否把空间压扁。手算三阶以上行列式不是机器学习重点,理解非零、符号和变量变换的含义才是。
2. 二阶行列式
A=[acbd],det(A)=ad−bc.
若列向量为 v1=(a,c)T、v2=(b,d)T,∣det(A)∣ 是这两个向量张成的平行四边形面积。
例如
A=[2003],
把横向伸长 2 倍、纵向伸长 3 倍,面积放大 2×3=6,行列式为 6。
3. 符号表示方向
行列式为负表示变换除了缩放还翻转了空间取向。例如二维反射
[−1001]
的行列式为 −1:面积大小不变,但左右方向翻转。概率密度做变量替换时使用绝对值 ∣detJ∣,因为体积不能为负。
4. 行列式为零意味着空间被压扁
若 det(A)=0,单位方形/立方体被映射成零面积/零体积对象,矩阵至少丢失一个维度。等价地:
- 列向量线性相关;
- 行向量线性相关;
- 秩小于 n;
- 存在非零 x 使 Ax=0;
- A 不可逆;
- 方程 Ax=b 不会对所有 b 都有唯一解。
这组等价性质比展开计算更值得记忆。
5. 高维定义直觉
n×n 矩阵的 ∣det(A)∣ 是单位超立方体经 A 变换后的 n 维体积缩放因子。代数定义可写成所有排列的带符号乘积之和:
det(A)=π∑sgn(π)i=1∏nai,π(i).
这个公式解释定义但不适合直接计算,项数为 n!。实际计算使用 LU 分解等 O(n3) 方法。
6. 基本性质
det(I)=1,
det(AT)=det(A),
det(AB)=det(A)det(B),
若 A 可逆:
det(A−1)=det(A)1.
三角矩阵的行列式等于对角元素之积。特征值为 λi 时:
det(A)=i∏λi
(按代数重数计算)。
7. 行操作对行列式的影响
- 交换两行:行列式变号;
- 某行乘 c:行列式乘 c;
- 某行加上另一行的倍数:行列式不变。
因此可通过消元化为三角矩阵计算。软件通常返回基于分解的结果。
8. 变量替换中的 Jacobian 行列式
一维变量替换中,长度元素按 ∣dy/dx∣ 缩放。多维中,若 y=g(x),局部体积按
∣detJg(x)∣
缩放,其中 Jg 是 Jacobian 矩阵。概率密度变换必须补偿体积变化:
pY(y)=pX(g−1(y))detJg−1(y).
正规化流等生成模型直接利用这一公式。
9. 高斯分布中的行列式
多元高斯密度包含
(2π)d/2∣Σ∣1/21.
∣Σ∣ 称广义方差,表示协方差椭球体积尺度。若行列式接近零,分布在某些方向极窄;等于零时普通 d 维密度公式失效,因为分布退化到低维子空间。
10. Log-determinant
高维正定矩阵行列式可能极大或极小,通常计算
logdet(A)=i∑logλi.
数值上对正定矩阵可用 Cholesky 分解 A=LLT:
logdet(A)=2i∑logLii.
应使用库函数 slogdet 或分解,不要先算行列式再取对数,以免上溢、下溢或符号丢失。
易错点
- 只有方阵有普通行列式。
- 行列式是一个数,不是矩阵。
- det(A+B) 一般不等于 det(A)+det(B)。
- 行列式接近零比精确等于零更常见,也会导致数值病态。
- 浮点下用
det == 0 判断奇异不可靠。
常见问答
Q1:机器学习需要会按代数余子式展开吗?
会二阶、理解三阶概念即可。实际重点是可逆性、体积缩放、log-det 和稳定分解。
Q2:行列式大是否表示矩阵“好”?
不一定。它是所有奇异值的乘积,可能一个方向极大、另一个极小,乘积仍普通但条件很差。
Q3:协方差行列式为零怎么办?
可能有精确冗余或样本少于维度。可删除冗余特征、降维、使用伪逆或加 λI 正则化。
练习
- 计算 [2314] 的行列式。
- 两列相同的方阵行列式为何为零?
- 若 det(A)=3,det(B)=−2,求 det(AB)。
- 对角矩阵 diag(2,5,−1) 的行列式是什么?
- 为什么概率变量替换使用行列式绝对值?
答案与提示
- 8−3=5。
- 列线性相关,张成体积为零;也可由交换相同列既应变号又不改变矩阵推出。
- −6。
- −10。
- 行列式符号表示取向,概率体积必须非负。