矩阵运算与求导全面教程

矩阵运算与求导全面教程

矩阵运算与矩阵求导是机器学习、强化学习、数值计算、量子计算、机器人学等领域的核心数学工具。本教程从基础概念出发,逐步深入高级主题,结合理论推导、编程实现、跨领域应用和数值优化技巧,旨在帮助读者全面掌握矩阵相关知识,并灵活应用于实际问题。


第一部分:矩阵运算基础

1.1 矩阵的定义与基本概念

矩阵是一个按行和列排列的数字阵列,通常表示为:
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} A= a11a21am1a12a22am2a1na2namn .

  • 维度:矩阵 A A A 的维度为 m × n m \times n m×n,表示 m m m n n n 列。
  • 元素 a i j a_{ij} aij 表示第 i i i 行、第 j j j 列的元素。
  • 表示形式
    • 实矩阵:元素为实数。
    • 复矩阵:元素为复数。
    • 张量:高维推广(如 3D 或 4D 张量,用于深度学习)。
  • 特殊矩阵
    • 向量 m = 1 m=1 m=1(行向量)或 n = 1 n=1 n=1(列向量)。
    • 方阵 m = n m=n m=n
    • 零矩阵:所有元素为 0。
    • 单位矩阵:方阵,主对角线元素为 1,其余为 0,记为 I I I
    • 对角矩阵:除主对角线外元素均为 0。
    • 对称矩阵 A = A T A = A^T A=AT
    • 正定矩阵:对任意非零向量 x \mathbf{x} x,有 x T A x > 0 \mathbf{x}^T A \mathbf{x} > 0 xTAx>0
    • 酉矩阵 U H U = I U^H U = I UHU=I,其中 U H U^H UH 为共轭转置(量子计算中常见)。
    • 稀疏矩阵:大多数元素为 0,适合高效存储(如 CSR 或 COO 格式)。
    • Toeplitz 矩阵:沿对角线元素相等(信号处理中常见)。
    • Hankel 矩阵:沿反对角线元素相等。

1.2 矩阵的基本运算

  1. 加法/减法

    • 两个同维矩阵 A A A B B B 可相加/减: C = A ± B , c i j = a i j ± b i j C = A \pm B, \quad c_{ij} = a_{ij} \pm b_{ij} C=A±B,cij=aij±bij.
    • 性质:
      • 交换律: A + B = B + A A + B = B + A A+B=B+A
      • 结合律: ( A + B ) + C = A + ( B + C ) (A + B) + C = A + (B + C) (A+B)+C=A+(B+C)
      • 标量分配: k ( A + B ) = k A + k B k(A + B) = kA + kB k(A+B)=kA+kB
  2. 标量乘法

    • 标量 k k k 与矩阵 A A A 相乘: C = k A , c i j = k ⋅ a i j C = kA, \quad c_{ij} = k \cdot a_{ij} C=kA,cij=kaij.
    • 性质:
      • 结合律: ( k 1 k 2 ) A = k 1 ( k 2 A ) (k_1 k_2)A = k_1 (k_2 A) (k1k2)A=k1(k2A)
      • 分配律: k ( A + B ) = k A + k B k(A + B) = kA + kB k(A+B)=kA+kB
  3. 矩阵乘法

    • 矩阵 A m × n A_{m \times n} Am×n B n × p B_{n \times p} Bn×p 可相乘,结果为 C m × p C_{m \times p} Cm×p c i j = ∑ k = 1 n a i k b k j c_{ij} = \sum_{k=1}^n a_{ik} b_{kj} cij=k=1naikbkj.
    • 性质:
      • 结合律: ( A B ) C = A ( B C ) (AB)C = A(BC) (AB)C=A(BC)
      • 分配律: A ( B + C ) = A B + A C A(B+C) = AB + AC A(B+C)=AB+AC
      • 不满足交换律:一般 A B ≠ B A AB \neq BA AB=BA
      • 单位矩阵: A I = I A = A AI = IA = A AI=IA=A
    • 注意:矩阵乘法的时间复杂度为 O ( m n p ) O(mnp) O(mnp),可用 Strassen 算法优化至 O ( n 2.807 ) O(n^{2.807}) O(n2.807)
    • 高效实现
      • 分块矩阵乘法:将大矩阵分割为小块,适合并行计算。
      • GPU 加速:使用 BLAS 库(如 cuBLAS)。
  4. 转置

    • 矩阵 A m × n A_{m \times n} Am×n 的转置为 A n × m T A^T_{n \times m} An×mT ( A T ) i j = a j i (A^T)_{ij} = a_{ji} (AT)ij=aji.
    • 性质:
      • ( A T ) T = A (A^T)^T = A (AT)T=A.
      • ( A + B ) T = A T + B T (A + B)^T = A^T + B^T (A+B)T=AT+BT.
      • ( A B ) T = B T A T (AB)^T = B^T A^T (AB)T=BTAT.
      • ( k A ) T = k A T (kA)^T = kA^T (kA)T=kAT.
    • 复矩阵:共轭转置 A H = ( A ‾ ) T A^H = (\overline{A})^T AH=(A)T.
  5. 矩阵的逆

    • 对于方阵 A n × n A_{n \times n} An×n,若存在矩阵 B B B 满足 A B = B A = I AB = BA = I AB=BA=I,则 B B B A A A 的逆,记为 A − 1 A^{-1} A1.
    • 条件:矩阵 A A A 必须可逆(即行列式 det ⁡ ( A ) ≠ 0 \det(A) \neq 0 det(A)=0)。
    • 计算方法:
      • 高斯-约当消元法:复杂度 O ( n 3 ) O(n^3) O(n3).
      • 伴随矩阵法: A − 1 = 1 det ⁡ ( A ) adj ( A ) A^{-1} = \frac{1}{\det(A)} \text{adj}(A) A1=det(A)1adj(A),其中 adj ( A ) \text{adj}(A) adj(A) 为伴随矩阵。
      • 数值方法:迭代法(如 Newton 迭代)用于大矩阵。
    • 性质:
      • ( A − 1 ) − 1 = A (A^{-1})^{-1} = A (A1)1=A.
      • ( A B ) − 1 = B − 1 A − 1 (AB)^{-1} = B^{-1} A^{-1} (AB)1=B1A1.
      • ( A T ) − 1 = ( A − 1 ) T (A^T)^{-1} = (A^{-1})^T (AT)1=(A1)T.
  6. 行列式

    • 行列式 det ⁡ ( A ) \det(A) det(A) 是方阵的一个标量值,反映矩阵的“体积缩放”性质。
    • 计算方法:
      • 2×2 矩阵: A = [ a b c d ] , det ⁡ ( A ) = a d − b c A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad \det(A) = ad - bc A=[acbd],det(A)=adbc.
      • 3×3 矩阵:使用拉普拉斯展开或 Sarrus 法则。
      • 大矩阵:LU 分解或 QR 分解(复杂度 O ( n 3 ) O(n^3) O(n3))。
    • 性质:
      • det ⁡ ( A B ) = det ⁡ ( A ) det ⁡ ( B ) \det(AB) = \det(A) \det(B) det(AB)=det(A)det(B).
      • det ⁡ ( A T ) = det ⁡ ( A ) \det(A^T) = \det(A) det(AT)=det(A).
      • det ⁡ ( k A ) = k n det ⁡ ( A ) \det(kA) = k^n \det(A) det(kA)=kndet(A) A A A n × n n \times n n×n 矩阵)。
      • det ⁡ ( A ) = 0 \det(A) = 0 det(A)=0,则 A A A 不可逆。
    • 高效计算
      • 使用 LU 分解避免直接计算余子式。
      • 对于稀疏矩阵,使用专门的稀疏行列式算法。
    • 方阵 A n × n A_{n \times n} An×n 的迹是主对角线元素之和: tr ( A ) = ∑ i = 1 n a i i \text{tr}(A) = \sum_{i=1}^n a_{ii} tr(A)=i=1naii.
    • 性质:
      • tr ( A + B ) = tr ( A ) + tr ( B ) \text{tr}(A + B) = \text{tr}(A) + \text{tr}(B) tr(A+B)=tr(A)+tr(B).
      • tr ( A B ) = tr ( B A ) \text{tr}(AB) = \text{tr}(BA) tr(AB)=tr(BA)(即使 A B ≠ B A AB \neq BA AB=BA)。
      • tr ( A T ) = tr ( A ) \text{tr}(A^T) = \text{tr}(A) tr(AT)=tr(A).
      • 迹与特征值的关系: tr ( A ) = ∑ λ i \text{tr}(A) = \sum \lambda_i tr(A)=λi,其中 λ i \lambda_i λi 为特征值。
    • 矩阵的秩 rank ( A ) \text{rank}(A) rank(A) 是其列空间或行空间的维度。
    • 计算方法:
      • 高斯消元:将矩阵化为行阶梯形,统计非零行数。
      • SVD:秩等于非零奇异值的数量。
    • 性质:
      • rank ( A ) ≤ min ⁡ ( m , n ) \text{rank}(A) \leq \min(m, n) rank(A)min(m,n).
      • rank ( A B ) ≤ min ⁡ ( rank ( A ) , rank ( B ) ) \text{rank}(AB) \leq \min(\text{rank}(A), \text{rank}(B)) rank(AB)min(rank(A),rank(B)).
      • rank ( A ) = n \text{rank}(A) = n rank(A)=n,则 A A A 可逆( A A A n × n n \times n n×n 方阵)。

1.3 矩阵的分解

矩阵分解是机器学习、数值计算和信号处理的重要工具。以下是常见分解方法的扩展说明:

  1. 特征值分解

    • 对于方阵 A A A,若存在标量 λ \lambda λ 和非零向量 v v v,满足 A v = λ v Av = \lambda v Av=λv,则 λ \lambda λ 为特征值, v v v 为特征向量。
    • A A A 可对角化,则: A = V Λ V − 1 A = V \Lambda V^{-1} A=VΛV1,其中 Λ \Lambda Λ 是对角矩阵(特征值在对角线上), V V V 是特征向量组成的矩阵。
    • 条件: A A A 需有 n n n 个线性无关的特征向量。
    • 计算方法:
      • 特征多项式:求解 det ⁡ ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(AλI)=0.
      • 幂法:迭代计算主导特征值。
      • QR 算法:高效计算所有特征值。
    • 应用:
      • 主成分分析 (PCA)。
      • 动态系统分析。
      • 图谱分析。
  2. 奇异值分解 (SVD)

    • 对于任意矩阵 A m × n A_{m \times n} Am×n,可分解为: A = U Σ V T A = U \Sigma V^T A=UΣVT,其中 U m × m U_{m \times m} Um×m V n × n V_{n \times n} Vn×n 为正交矩阵, Σ m × n \Sigma_{m \times n} Σm×n 为对角矩阵(奇异值在对角线上)。
    • 性质:
      • 奇异值 σ i ≥ 0 \sigma_i \geq 0 σi0,按降序排列。
      • rank ( A ) \text{rank}(A) rank(A) 等于非零奇异值的数量。
      • U U U V V V 的列分别是 A A T A A^T AAT A T A A^T A ATA 的特征向量。
    • 计算方法:
      • 通过特征值分解计算 A T A A^T A ATA A A T A A^T AAT.
      • 专用算法(如 Golub-Reinsch 算法)。
    • 应用:
      • 数据压缩:保留前 k k k 个奇异值。
      • 主成分分析 (PCA)。
      • 伪逆: A + = V Σ + U T A^+ = V \Sigma^+ U^T A+=VΣ+UT,用于解线性方程组。
      • 推荐系统:低秩近似。
  3. LU 分解

    • 将矩阵 A A A 分解为下三角矩阵 L L L 和上三角矩阵 U U U A = L U A = LU A=LU.
    • 变种:
      • 带部分主元的 LU 分解(LUP): P A = L U PA = LU PA=LU,提高数值稳定性。
      • LDL 分解: A = L D L T A = L D L^T A=LDLT,用于对称矩阵。
    • 计算方法:
      • 高斯消元:复杂度 O ( n 3 ) O(n^3) O(n3).
      • Crout 算法或 Doolittle 算法。
    • 应用:
      • 解线性方程组: A x = b    ⟹    L ( U x ) = b Ax = b \implies L(Ux) = b Ax=bL(Ux)=b.
      • 计算行列式: det ⁡ ( A ) = ∏ u i i \det(A) = \prod u_{ii} det(A)=uii.
      • 逆矩阵计算。
  4. Cholesky 分解

    • 对于对称正定矩阵 A A A A = L L T A = LL^T A=LLT,其中 L L L 是下三角矩阵。
    • 计算方法:
      • Cholesky 算法:复杂度 O ( n 3 / 3 ) O(n^3/3) O(n3/3),比 LU 分解快约两倍。
      • 变种: A = L D L T A = LDL^T A=LDLT(对角矩阵 D D D)。
    • 性质:
      • 数值稳定,适合正定矩阵。
      • 不需主元选择。
    • 应用:
      • 优化问题:如二次规划。
      • 最小二乘法。
      • 高斯过程回归。
  5. QR 分解

    • 将矩阵 A m × n A_{m \times n} Am×n 分解为正交矩阵 Q m × m Q_{m \times m} Qm×m 和上三角矩阵 R m × n R_{m \times n} Rm×n A = Q R A = QR A=QR.
    • 计算方法:
      • Householder 变换:通过反射构造 Q Q Q.
      • Givens 旋转:逐个消去下三角元素。
      • Gram-Schmidt 正交化(数值不稳定)。
    • 应用:
      • 最小二乘问题: A x ≈ b    ⟹    x = R − 1 Q T b Ax \approx b \implies x = R^{-1} Q^T b Axbx=R1QTb.
      • 特征值计算:QR 算法。
      • 稳定正交化。
  6. Schur 分解

    • 对于方阵 A A A A = Q T Q H A = Q T Q^H A=QTQH,其中 Q Q Q 是酉矩阵, T T T 是上三角矩阵(特征值在对角线上)。
    • 性质:
      • 实矩阵的 Schur 分解可能包含 2×2 块(复特征值)。
      • 酉矩阵保持数值稳定性。
    • 计算方法:
      • QR 算法的变种。
    • 应用:
      • 矩阵谱分析。
      • 控制理论。
      • 数值线性代数。
  7. Jordan 分解

    • 对于方阵 A A A,可分解为: A = P J P − 1 A = P J P^{-1} A=PJP1,其中 J J J 是 Jordan 标准形(对角线为特征值,超对角线可能为 1)。
    • 性质:
      • 处理不可对角化矩阵。
      • Jordan 块反映特征值的代数重数和几何重数。
    • 应用:
      • 微分方程解。
      • 线性动态系统分析。
  8. Hessenberg 分解

    • 将矩阵 A A

你可能感兴趣的:(矩阵运算与求导全面教程)