← 返回《人工智能数学基础》
📑 查看全课大纲(第 74 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

矩阵乘积的秩与行列式

约 17 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

矩阵乘积的秩与行列式

小象实战讲义 · 人工智能数学基础

在人工智能的算法实现中,我们经常需要对多个矩阵进行复合运算,例如在神经网络的前向传播、主成分分析(PCA)的协方差矩阵计算中。这些复合运算结果的“信息容量”和“体积缩放”如何由原始矩阵决定?本节将系统学习矩阵乘积的两个核心性质:秩的不增性和行列式的乘积公式。掌握它们,你就能在不进行复杂数值计算的情况下,预估复合矩阵的秩,并高效计算其行列式。

💡 核心导读

本节你将掌握:

  1. 秩的不增性:矩阵乘积的秩不超过任一因子矩阵的秩,即 rank(AB)min{rank(A),rank(B)}\operatorname{rank}(AB) \le \min{\operatorname{rank}(A), \operatorname{rank}(B)}。这揭示了线性变换会压缩信息量。
  2. 重要恒等式:矩阵 AA 与其转置的乘积 ATAA^TAAATAA^T 的秩,与 AA 本身的秩相等,即 rank(ATA)=rank(AAT)=rank(A)\operatorname{rank}(A^TA) = \operatorname{rank}(AA^T) = \operatorname{rank}(A)。这是理解协方差矩阵和最小二乘法的关键。
  3. 行列式的乘积公式:对于同阶方阵 AABB,有 det(AB)=det(A)det(B)\det(AB) = \det(A)\det(B)。这意味着复合线性变换对空间的“体积”缩放倍数是各变换缩放倍数的乘积。
  4. 证明思想:学会从“列向量的线性组合”和“齐次线性方程组同解”的视角理解并证明上述结论。

矩阵乘积的秩:秩的不增性

矩阵的秩度量了其列(或行)向量张成空间的维数,即矩阵所携带的“独立信息”的多少。当我们对矩阵进行乘法运算时,相当于对信息进行了一次处理或过滤。

定理 1(乘积的秩):设 AAm×nm \times n 矩阵,BBn×pn \times p 矩阵,则乘积 ABAB 的秩满足: rank(AB)min{rank(A),rank(B)}.\operatorname{rank}(AB) \le \min{\operatorname{rank}(A), \operatorname{rank}(B)}. 即,乘积矩阵的秩既不超过 AA 的秩,也不超过 BB 的秩。

直观理解

  • 从列空间看:将 BB 右乘 AA,即 ABA \cdot B,可以看作用 BB 的列对 AA 的列向量进行线性组合,从而得到 ABAB 的列向量。新的列向量组是 AA 的原始列向量组的线性组合,因此 ABAB 的列空间是 AA 的列空间的子空间。子空间的维数(即 ABAB 的列秩)自然不会超过原空间的维数(AA 的列秩)。由于矩阵的秩等于列秩,故 rank(AB)rank(A)\operatorname{rank}(AB) \le \operatorname{rank}(A)
  • 从行空间看:将 AA 左乘 BB,即 ABA \cdot B,可以看作用 AA 的行对 BB 的行向量进行线性组合,从而得到 ABAB 的行向量。同理,ABAB 的行空间是 BB 的行空间的子空间,故 rank(AB)rank(B)\operatorname{rank}(AB) \le \operatorname{rank}(B)

这个结论与信息论中的思想一致:对信息(矩阵)进行一次处理(乘法)后,得到的信息量(秩)不会增加,通常只会减少或保持不变。

证明: 我们证明 rank(AB)rank(A)\operatorname{rank}(AB) \le \operatorname{rank}(A),另一个不等式 rank(AB)rank(B)\operatorname{rank}(AB) \le \operatorname{rank}(B) 的证明完全对称。

AA 的列向量组为 α1,α2,,αn\boldsymbol{\alpha}_1, \boldsymbol{\alpha}2, \dots, \boldsymbol{\alpha}n,即 A=[α1,α2,,αn]A = [\boldsymbol{\alpha}1, \boldsymbol{\alpha}2, \dots, \boldsymbol{\alpha}n]。 设 B=(bij)n×pB = (b{ij}){n \times p},则乘积 ABAB 的第 jj 列为: (AB):,j=AB:,j=b1jα1+b2jα2++bnjαn,j=1,2,,p.(AB){:,j} = A \cdot B{:,j} = b{1j}\boldsymbol{\alpha}1 + b{2j}\boldsymbol{\alpha}2 + \dots + b{nj}\boldsymbol{\alpha}_n, \quad j=1,2,\dots,p. 这表明 ABAB 的每一个列向量都是 AA 的列向量组 {α1,,αn}{\boldsymbol{\alpha}_1, \dots, \boldsymbol{\alpha}_n} 的一个线性组合。因此,ABAB 的列向量组可由 AA 的列向量组线性表出。根据线性代数基本定理:若向量组 β1,,βp\boldsymbol{\beta}_1, \dots, \boldsymbol{\beta}_p 可由向量组 α1,,αn\boldsymbol{\alpha}_1, \dots, \boldsymbol{\alpha}_n 线性表出,则前者的秩不超过后者的秩。所以, rank(AB)=列秩(AB)列秩(A)=rank(A).\operatorname{rank}(AB) = \text{列秩}(AB) \le \text{列秩}(A) = \operatorname{rank}(A). 同理,通过分析行向量组,可证 rank(AB)rank(B)\operatorname{rank}(AB) \le \operatorname{rank}(B)。综上,定理得证。

矩阵 ATAA^TAAATAA^T 的秩

在数据科学中,矩阵 ATAA^TA(格拉姆矩阵)和 AATAA^T(协方差矩阵的雏形)扮演着重要角色。一个令人惊奇的结论是,尽管 AA, ATAA^TA, AATAA^T 的维数可能完全不同,但它们的秩却完全一致。

定理 2:对于任意 m×nm \times n 实矩阵 AA,有 rank(ATA)=rank(AAT)=rank(A).\operatorname{rank}(A^TA) = \operatorname{rank}(AA^T) = \operatorname{rank}(A).

证明思路: 首先,根据转置不改变矩阵秩的性质,有 rank(A)=rank(AT)\operatorname{rank}(A) = \operatorname{rank}(A^T)。要证明三者秩相等,我们只需证明 rank(ATA)=rank(A)\operatorname{rank}(A^TA) = \operatorname{rank}(A),同理可得 rank(AAT)=rank(AT)\operatorname{rank}(AA^T) = \operatorname{rank}(A^T),从而可推得三者秩相等。

核心技巧是证明两个齐次线性方程组 同解Ax=0(ATA)x=0.A\boldsymbol{x} = \boldsymbol{0} \quad \text{与} \quad (A^TA)\boldsymbol{x} = \boldsymbol{0}. 其中 xRn\boldsymbol{x} \in \mathbb{R}^n

  1. 显然方向:若 Ax=0A\boldsymbol{x} = \boldsymbol{0},则两边左乘 ATA^TATAx=0A^TA\boldsymbol{x} = \boldsymbol{0}。所以,Ax=0A\boldsymbol{x} = \boldsymbol{0} 的解一定是 ATAx=0A^TA\boldsymbol{x} = \boldsymbol{0} 的解。
  2. 另一方向:若 ATAx=0A^TA\boldsymbol{x} = \boldsymbol{0},我们想推出 Ax=0A\boldsymbol{x} = \boldsymbol{0}。在等式 ATAx=0A^TA\boldsymbol{x} = \boldsymbol{0} 两边左乘 xT\boldsymbol{x}^TxT(ATAx)=0.\boldsymbol{x}^T (A^TA\boldsymbol{x}) = \boldsymbol{0}. 根据结合律,(Ax)T(Ax)=0(A\boldsymbol{x})^T (A\boldsymbol{x}) = \boldsymbol{0},即 Ax2=0|A\boldsymbol{x}|^2 = 0。一个向量的长度平方为0,当且仅当该向量为零向量。因此,Ax=0A\boldsymbol{x} = \boldsymbol{0}

既然两个方程组同解,它们的解空间 W1W_1W2W_2 就完全相同,维数自然相等:dimW1=dimW2\dim W_1 = \dim W_2。 根据线性方程组解空间维数公式:

  • 对于 Ax=0A\boldsymbol{x} = \boldsymbol{0},有 nrank(A)=dimW1n - \operatorname{rank}(A) = \dim W_1
  • 对于 (ATA)x=0(A^TA)\boldsymbol{x} = \boldsymbol{0},有 nrank(ATA)=dimW2n - \operatorname{rank}(A^TA) = \dim W_2

因为 dimW1=dimW2\dim W_1 = \dim W_2,所以 nrank(A)=nrank(ATA)n - \operatorname{rank}(A) = n - \operatorname{rank}(A^TA),立即得到 rank(A)=rank(ATA)\operatorname{rank}(A) = \operatorname{rank}(A^TA)。证毕。

这个定理有深远的意义。例如,在求解最小二乘问题 minAxb2\min |A\boldsymbol{x} - \boldsymbol{b}|^2 时,正规方程是 ATAx=ATbA^TA\boldsymbol{x} = A^T\boldsymbol{b}。定理2保证了 ATAA^TA 的可逆性(即满秩)与 AA 的列满秩是等价的,这是最小二乘解存在唯一的理论基础。

矩阵乘积的行列式

行列式描述了方阵对应的线性变换对空间体积的缩放比例。当连续进行两次线性变换时,总缩放比例是多少?

定理 3(乘积的行列式):设 AABB 都是 nn 阶方阵,则 det(AB)=det(A)det(B).\det(AB) = \det(A) \cdot \det(B). 即,复合变换的缩放比例等于各变换缩放比例的乘积

这个公式极其强大。它意味着,要计算两个矩阵乘积的行列式,我们无需先做昂贵的矩阵乘法,只需分别计算两个行列式再做乘法即可,计算复杂度大大降低。

证明思路(以 n=2n=2 为例,高阶可用数学归纳法): 考虑一个 4×44 \times 4 的分块矩阵,并利用分块三角矩阵的行列式性质: det(AOIB)=det(A)det(B).\det \begin{pmatrix} A & O \ -I & B \end{pmatrix} = \det(A) \cdot \det(B). 其中 II2×22 \times 2 单位阵,OO 是零矩阵。 接下来,我们通过初等行变换将上述矩阵化为另一个分块上三角矩阵:

  1. 将第三行乘以 AA 的第一行元素加到第一行。
  2. 将第四行乘以 AA 的第二行元素加到第二行。 经过一系列精心设计的行变换(不改变行列式的值),我们可以将矩阵化为: (OABIB).\begin{pmatrix} O & AB \ -I & B \end{pmatrix}. 此时,利用拉普拉斯展开定理,按前两行展开。由于前两行只在后两列有非零块 ABAB,所以行列式等于: det(AB)det(I)=det(AB)(1)2=det(AB).\det(AB) \cdot \det(-I) = \det(AB) \cdot (-1)^2 = \det(AB). 由于整个变换过程行列式值不变,所以我们有: det(AB)=det(OABIB)=det(AOIB)=det(A)det(B).\det(AB) = \det \begin{pmatrix} O & AB \ -I & B \end{pmatrix} = \det \begin{pmatrix} A & O \ -I & B \end{pmatrix} = \det(A)\det(B). 这就证明了 n=2n=2 的情况。对于一般的 nn,证明思想类似但书写繁琐,通常采用数学归纳法完成。

这个定理有几个直接推论:

  • det(Ak)=[det(A)]k\det(A^k) = [\det(A)]^k
  • AA 可逆,则 det(A1)=[det(A)]1\det(A^{-1}) = [\det(A)]^{-1}
  • 对于同阶方阵 AABB,有 det(AB)=det(BA)\det(AB) = \det(BA)(由乘积公式:det(AB)=det(A)det(B)=det(B)det(A)=det(BA)\det(AB) = \det(A)\det(B) = \det(B)\det(A) = \det(BA);注意此等式仅对同阶方阵成立)。
import numpy as np

# 验证矩阵乘积的秩与行列式性质
np.random.seed(42) # 固定随机种子,使结果可复现

# 1. 生成两个矩阵
A = np.random.randn(5, 3)  # 5x3矩阵
B = np.random.randn(3, 4)  # 3x4矩阵
A_square = np.random.randn(3, 3) # 3x3方阵
B_square = np.random.randn(3, 3) # 3x3方阵

print("矩阵 A (5x3) 的秩:", np.linalg.matrix_rank(A))
print("矩阵 B (3x4) 的秩:", np.linalg.matrix_rank(B))
print("乘积 AB (5x4) 的秩:", np.linalg.matrix_rank(A @ B))
print("定理1验证: rank(AB) <= min(rank(A), rank(B))?",
      np.linalg.matrix_rank(A @ B) <= min(np.linalg.matrix_rank(A), np.linalg.matrix_rank(B)))

print("\n" + "="*50 + "\n")

# 2. 验证 A^TA 的秩等于 A 的秩
print("矩阵 A 的秩:", np.linalg.matrix_rank(A))
ATA = A.T @ A
print("矩阵 A^TA (3x3) 的秩:", np.linalg.matrix_rank(ATA))
print("定理2验证: rank(A) == rank(A^TA)?", np.linalg.matrix_rank(A) == np.linalg.matrix_rank(ATA))

print("\n" + "="*50 + "\n")

# 3. 验证方阵乘积的行列式
det_A = np.linalg.det(A_square)
det_B = np.linalg.det(B_square)
det_AB = np.linalg.det(A_square @ B_square)

print("方阵 A 的行列式: {:.6f}".format(det_A))
print("方阵 B 的行列式: {:.6f}".format(det_B))
print("乘积 AB 的行列式: {:.6f}".format(det_AB))
print("乘积 det(A)*det(B): {:.6f}".format(det_A * det_B))
print("定理3验证: det(AB) ≈ det(A)*det(B)?", np.allclose(det_AB, det_A * det_B))

📝 动手练一练

  1. 秩的估计:已知矩阵 AA5×35 \times 3 矩阵,秩为 22;矩阵 BB3×43 \times 4 矩阵,秩为 33。请问矩阵乘积 ABAB 的秩最大可能是多少?仅根据本节定理1,你能确定其秩的下界吗?

  2. 行列式计算:设 A=(2113)A = \begin{pmatrix} 2 & 1 \ -1 & 3 \end{pmatrix}, B=(1021)B = \begin{pmatrix} 1 & 0 \ 2 & -1 \end{pmatrix}。 a) 直接计算 det(A)\det(A)det(B)\det(B)。 b) 计算矩阵乘积 ABAB,再求 det(AB)\det(AB)。 c) 验证 det(AB)=det(A)det(B)\det(AB) = \det(A)\det(B) 是否成立。

参考答案

  1. 根据定理 1,rank(AB)min{rank(A),rank(B)}=min{2,3}=2\operatorname{rank}(AB) \le \min{\operatorname{rank}(A), \operatorname{rank}(B)} = \min{2, 3} = 2,因此 ABAB 的秩最大为2。仅通过定理1可确定秩的上界,下界需结合更多秩的性质(如后续学习的Sylvester秩不等式)进一步推导,此处需重点掌握秩的上界估计方法。
  2. a) det(A)=2×31×(1)=7\det(A) = 2\times3 - 1\times(-1) = 7, det(B)=1×(1)0×2=1\det(B) = 1\times(-1) - 0\times2 = -1。 b) AB=(2×1+1×22×0+1×(1)1×1+3×21×0+3×(1))=(4153)AB = \begin{pmatrix} 2\times1+1\times2 & 2\times0+1\times(-1) \ -1\times1+3\times2 & -1\times0+3\times(-1) \end{pmatrix} = \begin{pmatrix} 4 & -1 \ 5 & -3 \end{pmatrix}det(AB)=4×(3)(1)×5=12+5=7\det(AB) = 4\times(-3) - (-1)\times5 = -12 + 5 = -7。 c) det(A)det(B)=7×(1)=7=det(AB)\det(A)\det(B) = 7 \times (-1) = -7 = \det(AB),公式成立。

本章小结

本节深入探讨了矩阵乘积的两个核心代数性质,它们是从线性变换角度理解矩阵运算的重要桥梁。

要点回顾

  • 秩的不增性rank(AB)min{rank(A),rank(B)}\operatorname{rank}(AB) \le \min{\operatorname{rank}(A), \operatorname{rank}(B)}。乘法作为线性变换会压缩信息,乘积矩阵的秩不会超过任一因子。
  • ATAA^TA 的秩rank(ATA)=rank(AAT)=rank(A)\operatorname{rank}(A^TA) = \operatorname{rank}(AA^T) = \operatorname{rank}(A)。这一结论通过证明齐次方程组 Ax=0A\boldsymbol{x} = \boldsymbol{0}ATAx=0A^TA\boldsymbol{x} = \boldsymbol{0} 同解而得,是后续学习最小二乘、主成分分析等算法的基石。
  • 行列式的乘积公式det(AB)=det(A)det(B)\det(AB) = \det(A)\det(B)。复合线性变换对空间的总体积缩放倍数,等于各变换缩放倍数的乘积。这提供了计算大型矩阵乘积行列式的高效方法。

行动清单

  1. 理解证明:重新梳理定理1和定理2的证明过程,确保你不仅能记住结论,更能理解“列向量线性组合”和“方程组同解”这两种核心证明思路。
  2. 代码验证:运行并理解本节提供的Python代码,尝试修改矩阵的维度和数值,观察定理是否始终成立,加深数值直观。
  3. 联想应用:思考在PCA算法中,为什么要计算数据矩阵 XX 的协方差矩阵 XTXX^TX(或 XXTXX^T)?定理2保证了协方差矩阵的秩反映了原始数据的真实维度(即主成分的最大可能数量)。

— 小象教研组

配套学习资源与课件
  • 第10章讲义(含板书):线性代数(PDF · 15.5MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问