【机器学习教程】第02章:线性代数基础【下】

第02章:线性代数基础

前言

线性代数是现代数学的通用语言,也是机器学习的基石。在机器学习中,我们关注的焦点并非复杂的行列式计算或方程组求解,而是数据的表示空间的变换几何的度量 以及优化的方向

本章将构建一套严谨、完整且直观的数学体系。我们将从向量空间的基本概念出发,深入理解线性组合、基、维度与秩等核心思想;从几何视角解析投影、正交与范数的本质;最终掌握适用于任意矩阵的奇异值分解 (SVD)伪逆理论。这些知识是深入理解后续算法(如 PCA、线性回归、神经网络优化)的必要前提。


目录

2.4 矩阵分解理论

矩阵分解将复杂的矩阵表示为简单矩阵的乘积,揭示矩阵的内在结构。这是线性代数最强大的工具之一。

特征值分解:方阵的对角化

特征值与特征向量

对于方阵 A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} A∈Rn×n,若存在非零向量 v \mathbf{v} v 和标量 λ \lambda λ 使得:

A v = λ v \mathbf{A}\mathbf{v} = \lambda \mathbf{v} Av=λv

则称 v \mathbf{v} v 为特征向量 (Eigenvector) , λ \lambda λ 为对应的特征值 (Eigenvalue)

几何意义 : A \mathbf{A} A 作用在特征向量上,仅改变其长度(伸缩 λ \lambda λ 倍),不改变方向。特征向量是矩阵变换的"主轴"。

求解方法

  1. 求解特征方程: det ⁡ ( A − λ I ) = 0 \det(\mathbf{A} - \lambda \mathbf{I}) = 0 det(A−λI)=0
  2. 对每个特征值 λ i \lambda_i λi,求解 ( A − λ i I ) v i = 0 (\mathbf{A} - \lambda_i \mathbf{I})\mathbf{v}_i = \mathbf{0} (A−λiI)vi=0 得到特征向量
特征值分解 (Eigenvalue Decomposition)

若方阵 A \mathbf{A} A 有 n n n 个线性无关的特征向量 v 1 , ... , v n \mathbf{v}_1, \ldots, \mathbf{v}_n v1,...,vn,对应特征值 λ 1 , ... , λ n \lambda_1, \ldots, \lambda_n λ1,...,λn,则 A \mathbf{A} A 可对角化为:

A = V Λ V − 1 \mathbf{A} = \mathbf{V} \boldsymbol{\Lambda} \mathbf{V}^{-1} A=VΛV−1

其中:

  • V = [ v 1 ⋯ v n ] \mathbf{V} = [\mathbf{v}_1 \cdots \mathbf{v}_n] V=[v1⋯vn]:特征向量矩阵
  • Λ = diag ( λ 1 , ... , λ n ) \boldsymbol{\Lambda} = \text{diag}(\lambda_1, \ldots, \lambda_n) Λ=diag(λ1,...,λn):特征值对角矩阵

可对角化的条件

  • A \mathbf{A} A 有 n n n 个线性无关的特征向量
  • 实对称矩阵必定可对角化
谱定理 (Spectral Theorem)

对于实对称矩阵 A = A T ∈ R n × n \mathbf{A} = \mathbf{A}^T \in \mathbb{R}^{n \times n} A=AT∈Rn×n:

  1. 所有特征值都是实数
  2. 不同特征值对应的特征向量正交
  3. 必定存在正交对角化

A = Q Λ Q T \mathbf{A} = \mathbf{Q} \boldsymbol{\Lambda} \mathbf{Q}^T A=QΛQT

其中 Q \mathbf{Q} Q 是正交矩阵( Q T Q = I \mathbf{Q}^T\mathbf{Q} = \mathbf{I} QTQ=I), Λ \boldsymbol{\Lambda} Λ 是特征值对角矩阵。

谱分解形式

A = ∑ i = 1 n λ i q i q i T \mathbf{A} = \sum_{i=1}^n \lambda_i \mathbf{q}_i \mathbf{q}_i^T A=i=1∑nλiqiqiT

每一项 λ i q i q i T \lambda_i \mathbf{q}_i \mathbf{q}_i^T λiqiqiT 是秩1矩阵,代表沿方向 q i \mathbf{q}_i qi 的伸缩 λ i \lambda_i λi。

几何意义:对称矩阵的变换可以分解为:

  1. 旋转到特征向量方向( Q T \mathbf{Q}^T QT)
  2. 沿各特征方向伸缩( Λ \boldsymbol{\Lambda} Λ)
  3. 旋转回原坐标系( Q \mathbf{Q} Q)
特征值的性质
  • tr ( A ) = ∑ i = 1 n λ i \text{tr}(\mathbf{A}) = \sum_{i=1}^n \lambda_i tr(A)=∑i=1nλi(迹等于特征值之和)
  • det ⁡ ( A ) = ∏ i = 1 n λ i \det(\mathbf{A}) = \prod_{i=1}^n \lambda_i det(A)=∏i=1nλi(行列式等于特征值之积)
  • A k = V Λ k V − 1 \mathbf{A}^k = \mathbf{V} \boldsymbol{\Lambda}^k \mathbf{V}^{-1} Ak=VΛkV−1(矩阵幂通过特征值简化)
正定矩阵

对称矩阵 A \mathbf{A} A 称为正定 (Positive Definite) ,如果对任意 x ≠ 0 \mathbf{x} \neq \mathbf{0} x=0:

x T A x > 0 \mathbf{x}^T \mathbf{A} \mathbf{x} > 0 xTAx>0

等价条件

  • 所有特征值 λ i > 0 \lambda_i > 0 λi>0
  • 所有主子式(顺序主子式)大于零
  • 存在可逆矩阵 L \mathbf{L} L 使得 A = L L T \mathbf{A} = \mathbf{L}\mathbf{L}^T A=LLT(Cholesky分解)

半正定 (Positive Semidefinite) :将 > > > 改为 ≥ \geq ≥,即 x T A x ≥ 0 \mathbf{x}^T\mathbf{A}\mathbf{x} \geq 0 xTAx≥0,所有特征值 λ i ≥ 0 \lambda_i \geq 0 λi≥0。

几何意义:正定矩阵定义的二次型是"碗状"的,开口向上,有全局最小值。这是优化理论中凸函数的判定条件。

在机器学习中的应用

  • 协方差矩阵、Hessian矩阵(二阶导数矩阵)通常是半正定的
  • 核矩阵(Gram矩阵)必须正定才能对应有效的核函数
  • 正定性保证优化问题的凸性和数值稳定性
数值例子:2×2 对称矩阵的特征值分解

考虑矩阵

A = [ 3 1 1 3 ] \mathbf{A} = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix} A=[3113]

求特征值

det ⁡ ( A − λ I ) = det ⁡ [ 3 − λ 1 1 3 − λ ] = ( 3 − λ ) 2 − 1 = λ 2 − 6 λ + 8 = 0 \det(\mathbf{A} - \lambda \mathbf{I}) = \det\begin{bmatrix} 3-\lambda & 1 \\ 1 & 3-\lambda \end{bmatrix} = (3-\lambda)^2 - 1 = \lambda^2 - 6\lambda + 8 = 0 det(A−λI)=det[3−λ113−λ]=(3−λ)2−1=λ2−6λ+8=0

解得 λ 1 = 4 \lambda_1 = 4 λ1=4, λ 2 = 2 \lambda_2 = 2 λ2=2。

求特征向量

  • λ 1 = 4 \lambda_1 = 4 λ1=4: ( A − 4 I ) v 1 = 0 (\mathbf{A} - 4\mathbf{I})\mathbf{v}_1 = \mathbf{0} (A−4I)v1=0

    − 1 1 1 − 1 \] \[ v 11 v 12 \] = 0    ⟹    v 1 = 1 2 \[ 1 1 \] \\begin{bmatrix} -1 \& 1 \\\\ 1 \& -1 \\end{bmatrix} \\begin{bmatrix} v_{11} \\\\ v_{12} \\end{bmatrix} = \\mathbf{0} \\implies \\mathbf{v}_1 = \\frac{1}{\\sqrt{2}}\\begin{bmatrix} 1 \\\\ 1 \\end{bmatrix} \[−111−1\]\[v11v12\]=0⟹v1=2 1\[11

  • λ 2 = 2 \lambda_2 = 2 λ2=2:类似得 v 2 = 1 2 [ 1 − 1 ] \mathbf{v}_2 = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix} v2=2 1[1−1]

正交对角化

A = Q Λ Q T = 1 2 [ 1 1 1 − 1 ] [ 4 0 0 2 ] 1 2 [ 1 1 1 − 1 ] \mathbf{A} = \mathbf{Q}\boldsymbol{\Lambda}\mathbf{Q}^T = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} 4 & 0 \\ 0 & 2 \end{bmatrix} \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} A=QΛQT=2 1[111−1][4002]2 1[111−1]

几何解释

  • A \mathbf{A} A 将向量 [ 1 1 ] \begin{bmatrix} 1 \\ 1 \end{bmatrix} [11] 拉伸4倍(沿主轴方向)
  • 将向量 [ 1 − 1 ] \begin{bmatrix} 1 \\ -1 \end{bmatrix} [1−1] 拉伸2倍(沿次轴方向)
  • 这两个方向正交,构成 A \mathbf{A} A的主轴坐标系

验证

  • v 1 T v 2 = 0 \mathbf{v}_1^T \mathbf{v}_2 = 0 v1Tv2=0 ✓(正交)
  • tr ( A ) = 6 = λ 1 + λ 2 \text{tr}(\mathbf{A}) = 6 = \lambda_1 + \lambda_2 tr(A)=6=λ1+λ2 ✓
  • det ⁡ ( A ) = 8 = λ 1 λ 2 \det(\mathbf{A}) = 8 = \lambda_1 \lambda_2 det(A)=8=λ1λ2 ✓

奇异值分解 (SVD):任意矩阵的分解

SVD是线性代数中最强大的定理之一。与特征值分解仅适用于方阵不同,任意矩阵都可以进行奇异值分解。

SVD 定理

任意矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rm×n 均可分解为:

A = U Σ V T \mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T A=UΣVT

其中:

  • U ∈ R m × m \mathbf{U} \in \mathbb{R}^{m \times m} U∈Rm×m:左奇异向量 矩阵,正交矩阵( U T U = I \mathbf{U}^T\mathbf{U} = \mathbf{I} UTU=I)
  • Σ ∈ R m × n \boldsymbol{\Sigma} \in \mathbb{R}^{m \times n} Σ∈Rm×n:奇异值 矩阵,对角线元素 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0 σ1≥σ2≥⋯≥σr>0( r = rank ( A ) r = \text{rank}(\mathbf{A}) r=rank(A)),其余为零
  • V ∈ R n × n \mathbf{V} \in \mathbb{R}^{n \times n} V∈Rn×n:右奇异向量 矩阵,正交矩阵( V T V = I \mathbf{V}^T\mathbf{V} = \mathbf{I} VTV=I)
几何意义:三步变换

SVD将任意线性变换分解为三个步骤:

  1. 旋转 : V T \mathbf{V}^T VT 将输入空间旋转到新的标准正交基
  2. 拉伸 : Σ \boldsymbol{\Sigma} Σ 沿新的坐标轴方向进行非均匀拉伸(各方向拉伸比例为奇异值)
  3. 旋转 : U \mathbf{U} U 将拉伸后的空间旋转到输出空间

关键洞察:任何线性变换本质上都是"旋转-拉伸-旋转"的组合。

与特征值分解的关系

对于实对称矩阵 A = A T \mathbf{A} = \mathbf{A}^T A=AT,SVD 退化为特征值分解:

  • 左右奇异向量相同: U = V \mathbf{U} = \mathbf{V} U=V
  • 奇异值等于特征值的绝对值: σ i = ∣ λ i ∣ \sigma_i = |\lambda_i| σi=∣λi∣
奇异值的计算

奇异值 σ i \sigma_i σi 是 A T A \mathbf{A}^T\mathbf{A} ATA 或 A A T \mathbf{A}\mathbf{A}^T AAT 的特征值的平方根:

A T A = V Σ T Σ V T \mathbf{A}^T\mathbf{A} = \mathbf{V} \boldsymbol{\Sigma}^T \boldsymbol{\Sigma} \mathbf{V}^T ATA=VΣTΣVT

A A T = U Σ Σ T U T \mathbf{A}\mathbf{A}^T = \mathbf{U} \boldsymbol{\Sigma} \boldsymbol{\Sigma}^T \mathbf{U}^T AAT=UΣΣTUT

计算步骤

  1. 计算 A T A \mathbf{A}^T\mathbf{A} ATA 的特征值分解,得到 V \mathbf{V} V 和 σ i 2 \sigma_i^2 σi2
  2. 计算 A A T \mathbf{A}\mathbf{A}^T AAT 的特征值分解,得到 U \mathbf{U} U
  3. Σ \boldsymbol{\Sigma} Σ 的对角元素为 σ i = λ i ( A T A ) \sigma_i = \sqrt{\lambda_i(\mathbf{A}^T\mathbf{A})} σi=λi(ATA)
紧凑SVD与截断SVD

紧凑SVD (Compact SVD) :若 r = rank ( A ) < min ⁡ ( m , n ) r = \text{rank}(\mathbf{A}) < \min(m, n) r=rank(A)<min(m,n),只保留非零奇异值:

A = U r Σ r V r T \mathbf{A} = \mathbf{U}_r \boldsymbol{\Sigma}_r \mathbf{V}_r^T A=UrΣrVrT

其中 U r ∈ R m × r \mathbf{U}_r \in \mathbb{R}^{m \times r} Ur∈Rm×r, Σ r ∈ R r × r \boldsymbol{\Sigma}_r \in \mathbb{R}^{r \times r} Σr∈Rr×r, V r ∈ R n × r \mathbf{V}_r \in \mathbb{R}^{n \times r} Vr∈Rn×r。

截断SVD (Truncated SVD) :只保留前 k k k 个最大的奇异值( k < r k < r k<r):

A k = U k Σ k V k T = ∑ i = 1 k σ i u i v i T \mathbf{A}_k = \mathbf{U}_k \boldsymbol{\Sigma}_k \mathbf{V}k^T = \sum{i=1}^k \sigma_i \mathbf{u}_i \mathbf{v}_i^T Ak=UkΣkVkT=i=1∑kσiuiviT

低秩近似:Eckart-Young 定理

在所有秩不超过 k k k 的矩阵中,截断SVD A k \mathbf{A}_k Ak 是对 A \mathbf{A} A 的最佳近似(在Frobenius范数和谱范数意义下):

A k = arg ⁡ min ⁡ rank ( B ) ≤ k ∥ A − B ∥ F \mathbf{A}k = \arg\min{\text{rank}(\mathbf{B}) \leq k} \|\mathbf{A} - \mathbf{B}\|_F Ak=argrank(B)≤kmin∥A−B∥F

近似误差为:

∥ A − A k ∥ F = σ k + 1 2 + ⋯ + σ r 2 \|\mathbf{A} - \mathbf{A}_k\|F = \sqrt{\sigma{k+1}^2 + \cdots + \sigma_r^2} ∥A−Ak∥F=σk+12+⋯+σr2

意义

  • SVD提供了数据的最优压缩方式
  • 保留最大的 k k k 个奇异值,丢失的信息最少
  • 这是PCA、推荐系统、图像压缩的理论基础
四个基本子空间的SVD视角

设 A = U Σ V T \mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T A=UΣVT,秩为 r r r:

  1. 列空间 C ( A ) \mathcal{C}(\mathbf{A}) C(A):由 U \mathbf{U} U 的前 r r r 列张成( u 1 , ... , u r \mathbf{u}_1, \ldots, \mathbf{u}_r u1,...,ur)
  2. 零空间 N ( A ) \mathcal{N}(\mathbf{A}) N(A):由 V \mathbf{V} V 的后 n − r n-r n−r 列张成( v r + 1 , ... , v n \mathbf{v}_{r+1}, \ldots, \mathbf{v}_n vr+1,...,vn)
  3. 行空间 C ( A T ) \mathcal{C}(\mathbf{A}^T) C(AT):由 V \mathbf{V} V 的前 r r r 列张成( v 1 , ... , v r \mathbf{v}_1, \ldots, \mathbf{v}_r v1,...,vr)
  4. 左零空间 N ( A T ) \mathcal{N}(\mathbf{A}^T) N(AT):由 U \mathbf{U} U 的后 m − r m-r m−r 列张成( u r + 1 , ... , u m \mathbf{u}_{r+1}, \ldots, \mathbf{u}_m ur+1,...,um)

SVD同时对角化了 A \mathbf{A} A 并明确了四个子空间的标准正交基。

伪逆的SVD计算

Moore-Penrose伪逆可通过SVD高效计算:

A † = V Σ † U T \mathbf{A}^\dagger = \mathbf{V} \boldsymbol{\Sigma}^\dagger \mathbf{U}^T A†=VΣ†UT

其中 Σ † \boldsymbol{\Sigma}^\dagger Σ† 是 Σ \boldsymbol{\Sigma} Σ 的伪逆:非零奇异值取倒数,然后转置。

Σ = [ σ 1 ⋱ σ r 0 ] ⇒ Σ † = [ 1 / σ 1 ⋱ 1 / σ r 0 ] T \boldsymbol{\Sigma} = \begin{bmatrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_r \\ & & & 0 \end{bmatrix} \quad \Rightarrow \quad \boldsymbol{\Sigma}^\dagger = \begin{bmatrix} 1/\sigma_1 & & \\ & \ddots & \\ & & 1/\sigma_r \\ & & & 0 \end{bmatrix}^T Σ= σ1⋱σr0 ⇒Σ†= 1/σ1⋱1/σr0 T

数值稳定性:小的奇异值对应近似零空间,在实践中可以设置阈值截断(避免除以接近零的数)。

在机器学习中的应用
  1. 主成分分析 (PCA)

    • 对数据矩阵 X \mathbf{X} X 进行SVD: X = U Σ V T \mathbf{X} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T X=UΣVT
    • 主成分方向为 V \mathbf{V} V 的列(右奇异向量)
    • 前 k k k 个主成分解释的方差比例为 ∑ i = 1 k σ i 2 ∑ i = 1 r σ i 2 \frac{\sum_{i=1}^k \sigma_i^2}{\sum_{i=1}^r \sigma_i^2} ∑i=1rσi2∑i=1kσi2
  2. 推荐系统

    • 用户-物品评分矩阵的低秩近似(矩阵分解)
    • 截断SVD提取潜在因子
  3. 图像压缩

    • 保留主要奇异值,减少存储空间
  4. 降噪

    • 小奇异值对应噪声,截断后可去噪
  5. 线性回归的数值解

    • 通过SVD稳定求解 A x = b \mathbf{A}\mathbf{x} = \mathbf{b} Ax=b,避免直接计算 ( A T A ) − 1 (\mathbf{A}^T\mathbf{A})^{-1} (ATA)−1
数值例子:2×3 矩阵的 SVD

考虑矩阵

A = [ 1 0 1 0 1 1 ] \mathbf{A} = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} A=[100111]

计算步骤

  1. 计算 A T A \mathbf{A}^T\mathbf{A} ATA

A T A = [ 1 0 0 1 1 1 ] [ 1 0 1 0 1 1 ] = [ 1 0 1 0 1 1 1 1 2 ] \mathbf{A}^T\mathbf{A} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 1 & 2 \end{bmatrix} ATA= 101011 [100111]= 101011112

  1. 求 A T A \mathbf{A}^T\mathbf{A} ATA 的特征值和特征向量

    特征值: λ 1 = 3 \lambda_1 = 3 λ1=3, λ 2 = 1 \lambda_2 = 1 λ2=1, λ 3 = 0 \lambda_3 = 0 λ3=0

    奇异值: σ 1 = 3 \sigma_1 = \sqrt{3} σ1=3 , σ 2 = 1 \sigma_2 = 1 σ2=1, σ 3 = 0 \sigma_3 = 0 σ3=0

    标准正交特征向量( V \mathbf{V} V 的列):
    v 1 = 1 6 [ 1 1 2 ] , v 2 = 1 2 [ 1 − 1 0 ] , v 3 = 1 3 [ − 1 − 1 1 ] \mathbf{v}_1 = \frac{1}{\sqrt{6}}\begin{bmatrix} 1 \\ 1 \\ 2 \end{bmatrix}, \quad \mathbf{v}_2 = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix}, \quad \mathbf{v}_3 = \frac{1}{\sqrt{3}}\begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix} v1=6 1 112 ,v2=2 1 1−10 ,v3=3 1 −1−11

  2. 计算左奇异向量 U \mathbf{U} U

    对于非零奇异值:
    u i = 1 σ i A v i \mathbf{u}_i = \frac{1}{\sigma_i}\mathbf{A}\mathbf{v}_i ui=σi1Avi

    u 1 = 1 3 [ 1 0 1 0 1 1 ] 1 6 [ 1 1 2 ] = 1 2 [ 1 1 ] \mathbf{u}_1 = \frac{1}{\sqrt{3}}\begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} \frac{1}{\sqrt{6}}\begin{bmatrix} 1 \\ 1 \\ 2 \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix} u1=3 1[100111]6 1 112 =2 1[11]

    u 2 = 1 1 [ 1 0 1 0 1 1 ] 1 2 [ 1 − 1 0 ] = 1 2 [ 1 − 1 ] \mathbf{u}_2 = \frac{1}{1}\begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix} \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix} u2=11[100111]2 1 1−10 =2 1[1−1]

  3. SVD 分解

A = U Σ V T = 1 2 [ 1 1 1 − 1 ] [ 3 0 0 0 1 0 ] [ 1 6 1 6 2 6 1 2 − 1 2 0 − 1 3 − 1 3 1 3 ] \mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} \sqrt{3} & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} \frac{1}{\sqrt{6}} & \frac{1}{\sqrt{6}} & \frac{2}{\sqrt{6}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 \\ -\frac{1}{\sqrt{3}} & -\frac{1}{\sqrt{3}} & \frac{1}{\sqrt{3}} \end{bmatrix} A=UΣVT=2 1[111−1][3 00100] 6 12 1−3 16 1−2 1−3 16 203 1

几何解释

  • V T \mathbf{V}^T VT 将 R 3 \mathbb{R}^3 R3 旋转到新坐标系
  • Σ \boldsymbol{\Sigma} Σ 将第1个方向拉伸 3 \sqrt{3} 3 倍,第2个方向拉伸1倍,第3个方向压缩到0(零空间)
  • U \mathbf{U} U 将结果旋转到 R 2 \mathbb{R}^2 R2

低秩近似

保留第1个奇异值的秩1近似:

A 1 = σ 1 u 1 v 1 T = 3 ⋅ 1 2 [ 1 1 ] ⋅ 1 6 [ 1 1 2 ] = 1 2 [ 1 1 2 1 1 2 ] \mathbf{A}_1 = \sigma_1 \mathbf{u}_1 \mathbf{v}_1^T = \sqrt{3} \cdot \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix} \cdot \frac{1}{\sqrt{6}}\begin{bmatrix} 1 & 1 & 2 \end{bmatrix} = \frac{1}{2}\begin{bmatrix} 1 & 1 & 2 \\ 1 & 1 & 2 \end{bmatrix} A1=σ1u1v1T=3 ⋅2 1[11]⋅6 1[112]=21[111122]

近似误差: ∥ A − A 1 ∥ F = σ 2 = 1 \|\mathbf{A} - \mathbf{A}_1\|_F = \sigma_2 = 1 ∥A−A1∥F=σ2=1


Cholesky 分解:正定矩阵

定义

对于对称正定 矩阵 A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} A∈Rn×n( A = A T \mathbf{A} = \mathbf{A}^T A=AT,所有特征值 > 0 > 0 >0),存在唯一 的下三角矩阵 L \mathbf{L} L(对角元素为正)使得:

A = L L T \mathbf{A} = \mathbf{L} \mathbf{L}^T A=LLT

L \mathbf{L} L 称为 A \mathbf{A} A 的 Cholesky 因子

上三角形式 :也可以写成 A = R T R \mathbf{A} = \mathbf{R}^T \mathbf{R} A=RTR,其中 R \mathbf{R} R 是上三角矩阵。

计算方法

Cholesky分解可以通过递推公式高效计算,计算复杂度为 O ( n 3 / 3 ) O(n^3/3) O(n3/3)(约为LU分解的一半)。

对于 2 × 2 2 \times 2 2×2 矩阵:

A = [ a 11 a 12 a 12 a 22 ] = [ ℓ 11 0 ℓ 21 ℓ 22 ] [ ℓ 11 ℓ 21 0 ℓ 22 ] \mathbf{A} = \begin{bmatrix} a_{11} & a_{12} \\ a_{12} & a_{22} \end{bmatrix} = \begin{bmatrix} \ell_{11} & 0 \\ \ell_{21} & \ell_{22} \end{bmatrix} \begin{bmatrix} \ell_{11} & \ell_{21} \\ 0 & \ell_{22} \end{bmatrix} A=[a11a12a12a22]=[ℓ11ℓ210ℓ22][ℓ110ℓ21ℓ22]

解得:

ℓ 11 = a 11 , ℓ 21 = a 12 ℓ 11 , ℓ 22 = a 22 − ℓ 21 2 \ell_{11} = \sqrt{a_{11}}, \quad \ell_{21} = \frac{a_{12}}{\ell_{11}}, \quad \ell_{22} = \sqrt{a_{22} - \ell_{21}^2} ℓ11=a11 ,ℓ21=ℓ11a12,ℓ22=a22−ℓ212

与特征值分解的关系

对于正定矩阵,Cholesky分解和特征值分解的关系:

A = Q Λ Q T = Q Λ 1 / 2 Λ 1 / 2 Q T = ( Q Λ 1 / 2 ) ( Q Λ 1 / 2 ) T \mathbf{A} = \mathbf{Q} \boldsymbol{\Lambda} \mathbf{Q}^T = \mathbf{Q} \boldsymbol{\Lambda}^{1/2} \boldsymbol{\Lambda}^{1/2} \mathbf{Q}^T = (\mathbf{Q} \boldsymbol{\Lambda}^{1/2})(\mathbf{Q} \boldsymbol{\Lambda}^{1/2})^T A=QΛQT=QΛ1/2Λ1/2QT=(QΛ1/2)(QΛ1/2)T

但Cholesky分解得到的 L \mathbf{L} L 是下三角的,计算更高效,不需要求特征向量。

应用
  1. 线性方程组求解

    求解 A x = b \mathbf{A}\mathbf{x} = \mathbf{b} Ax=b( A \mathbf{A} A 正定):

    • 先计算 A = L L T \mathbf{A} = \mathbf{L}\mathbf{L}^T A=LLT
    • 前向替换求解 L y = b \mathbf{L}\mathbf{y} = \mathbf{b} Ly=b
    • 后向替换求解 L T x = y \mathbf{L}^T\mathbf{x} = \mathbf{y} LTx=y

    比直接求逆高效且数值稳定。

  2. 多元高斯分布采样

    从 N ( μ , Σ ) \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma}) N(μ,Σ) 采样:

    • 生成标准正态向量 z ∼ N ( 0 , I ) \mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) z∼N(0,I)
    • 计算 Σ = L L T \boldsymbol{\Sigma} = \mathbf{L}\mathbf{L}^T Σ=LLT
    • 返回 x = μ + L z \mathbf{x} = \boldsymbol{\mu} + \mathbf{L}\mathbf{z} x=μ+Lz

    这是蒙特卡洛方法、变分推断中的核心技术。

  3. 协方差矩阵的数值稳定计算

    在卡尔曼滤波、高斯过程等算法中,保证协方差矩阵的正定性。

  4. 优化算法

    牛顿法中Hessian矩阵的Cholesky分解用于求解牛顿方向。

数值判定:Cholesky分解过程中若出现负数的平方根,说明矩阵不是正定的(可能是半正定或不定)。


QR 分解

QR分解将任意矩阵分解为正交矩阵和上三角矩阵的乘积,是数值线性代数中最重要的分解之一。

定义

对于矩阵 A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rm×n( m ≥ n m \geq n m≥n,列满秩),存在分解:

A = Q R \mathbf{A} = \mathbf{Q} \mathbf{R} A=QR

其中:

  • Q ∈ R m × m \mathbf{Q} \in \mathbb{R}^{m \times m} Q∈Rm×m:正交矩阵( Q T Q = I \mathbf{Q}^T\mathbf{Q} = \mathbf{I} QTQ=I)
  • R ∈ R m × n \mathbf{R} \in \mathbb{R}^{m \times n} R∈Rm×n:上三角矩阵(对角元素非零)

简化QR分解 :若只保留前 n n n 列:

A = Q 1 R 1 \mathbf{A} = \mathbf{Q}_1 \mathbf{R}_1 A=Q1R1

其中 Q 1 ∈ R m × n \mathbf{Q}_1 \in \mathbb{R}^{m \times n} Q1∈Rm×n( Q 1 T Q 1 = I n \mathbf{Q}_1^T\mathbf{Q}_1 = \mathbf{I}_n Q1TQ1=In), R 1 ∈ R n × n \mathbf{R}_1 \in \mathbb{R}^{n \times n} R1∈Rn×n(上三角可逆)。

几何意义

QR分解的列向量关系:

A = [ a 1 ⋯ a n ] = [ q 1 ⋯ q m ] [ r 11 r 12 ⋯ r 1 n 0 r 22 ⋯ r 2 n ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ r n n 0 0 ⋯ 0 ] \mathbf{A} = [\mathbf{a}1 \cdots \mathbf{a}n] = [\mathbf{q}1 \cdots \mathbf{q}m] \begin{bmatrix} r{11} & r{12} & \cdots & r{1n} \\ 0 & r{22} & \cdots & r_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & r_{nn} \\ 0 & 0 & \cdots & 0 \end{bmatrix} A=[a1⋯an]=[q1⋯qm] r110⋮00r12r22⋮00⋯⋯⋱⋯⋯r1nr2n⋮rnn0

展开第 k k k 列:

a k = r 1 k q 1 + r 2 k q 2 + ⋯ + r k k q k \mathbf{a}k = r{1k}\mathbf{q}1 + r{2k}\mathbf{q}2 + \cdots + r{kk}\mathbf{q}_k ak=r1kq1+r2kq2+⋯+rkkqk

关键洞察

  • Q \mathbf{Q} Q 的前 n n n 列 { q 1 , ... , q n } \{\mathbf{q}_1, \ldots, \mathbf{q}_n\} {q1,...,qn} 构成 C ( A ) \mathcal{C}(\mathbf{A}) C(A) 的标准正交基
  • R \mathbf{R} R 记录了原始列向量在正交基下的坐标
  • QR分解实际上是 Gram-Schmidt 正交化的矩阵表示
与 Gram-Schmidt 的关系

Gram-Schmidt 正交化可以表示为:

a 1 ⋯ a n \] = \[ q 1 ⋯ q n \] \[ ∥ a 1 ∥ q 1 T a 2 ⋯ q 1 T a n 0 ∥ v 2 ∥ ⋯ q 2 T a n ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ ∥ v n ∥ \] \[\\mathbf{a}_1 \\cdots \\mathbf{a}_n\] = \[\\mathbf{q}_1 \\cdots \\mathbf{q}_n\] \\begin{bmatrix} \\\|\\mathbf{a}_1\\\| \& \\mathbf{q}_1\^T\\mathbf{a}_2 \& \\cdots \& \\mathbf{q}_1\^T\\mathbf{a}_n \\\\ 0 \& \\\|\\mathbf{v}_2\\\| \& \\cdots \& \\mathbf{q}_2\^T\\mathbf{a}_n \\\\ \\vdots \& \\vdots \& \\ddots \& \\vdots \\\\ 0 \& 0 \& \\cdots \& \\\|\\mathbf{v}_n\\\| \\end{bmatrix} \[a1⋯an\]=\[q1⋯qn\] ∥a1∥0⋮0q1Ta2∥v2∥⋮0⋯⋯⋱⋯q1Tanq2Tan⋮∥vn∥ 其中 v k \\mathbf{v}_k vk 是 Gram-Schmidt 过程中的正交化向量。 ##### 计算方法 1. **Gram-Schmidt 正交化** ( O ( m n 2 ) O(mn\^2) O(mn2)): * 经典方法,数值不稳定 * 修正Gram-Schmidt更稳定 2. **Householder 反射** ( O ( m n 2 ) O(mn\^2) O(mn2)): * 数值最稳定 * 矩阵运算高效,适合稠密矩阵 * NumPy、MATLAB 等库的默认方法 3. **Givens 旋转** ( O ( m n 2 ) O(mn\^2) O(mn2)): * 适合稀疏矩阵 * 可以选择性地消除特定元素 ##### 应用 1. **求解线性最小二乘问题**: 求解 min ⁡ x ∥ A x − b ∥ 2 2 \\min_{\\mathbf{x}} \\\|\\mathbf{A}\\mathbf{x} - \\mathbf{b}\\\|_2\^2 minx∥Ax−b∥22: * 将 A = Q R \\mathbf{A} = \\mathbf{Q}\\mathbf{R} A=QR 代入: ∥ Q R x − b ∥ 2 2 = ∥ R x − Q T b ∥ 2 2 \\\|\\mathbf{Q}\\mathbf{R}\\mathbf{x} - \\mathbf{b}\\\|_2\^2 = \\\|\\mathbf{R}\\mathbf{x} - \\mathbf{Q}\^T\\mathbf{b}\\\|_2\^2 ∥QRx−b∥22=∥Rx−QTb∥22 * 解上三角系统 R x = Q T b \\mathbf{R}\\mathbf{x} = \\mathbf{Q}\^T\\mathbf{b} Rx=QTb(后向替换) **优点**: * 比正规方程 ( A T A ) x = A T b (\\mathbf{A}\^T\\mathbf{A})\\mathbf{x} = \\mathbf{A}\^T\\mathbf{b} (ATA)x=ATb 数值更稳定 * 避免计算 A T A \\mathbf{A}\^T\\mathbf{A} ATA(可能放大误差) 2. **求特征值**: QR 算法通过迭代 QR 分解逐步对角化矩阵: A 0 = A , A k = Q k R k , A k + 1 = R k Q k \\mathbf{A}_0 = \\mathbf{A}, \\quad \\mathbf{A}_k = \\mathbf{Q}_k \\mathbf{R}_k, \\quad \\mathbf{A}_{k+1} = \\mathbf{R}_k \\mathbf{Q}_k A0=A,Ak=QkRk,Ak+1=RkQk A k \\mathbf{A}_k Ak 收敛到上三角矩阵,对角元素为特征值。 3. **正交化与投影**: 计算列空间的标准正交基,用于投影、子空间分析。 4. **计算矩阵的秩**: R \\mathbf{R} R 对角元素的非零个数等于矩阵的秩(设定数值阈值)。 ##### QR 分解的唯一性 若 A \\mathbf{A} A 列满秩,且要求 R \\mathbf{R} R 对角元素为正,则简化 QR 分解 A = Q 1 R 1 \\mathbf{A} = \\mathbf{Q}_1 \\mathbf{R}_1 A=Q1R1 是唯一的。 *** ** * ** *** #### 矩阵分解的计算复杂度与应用对比 下表总结了各种矩阵分解的性质、复杂度和应用场景: | 分解类型 | 适用矩阵 | 分解形式 | 计算复杂度 | 主要应用 | 数值稳定性 | |--------------|-----------|----------------------------------------------------------------------------------------|----------------------------------------------------------------------|-------------------|--------| | **LU分解** | 一般方阵 | A = L U \\mathbf{A} = \\mathbf{L}\\mathbf{U} A=LU | O ( n 3 ) O(n\^3) O(n3) | 求解线性方程组、计算行列式 | 需要主元选取 | | **Cholesky** | 对称正定矩阵 | A = L L T \\mathbf{A} = \\mathbf{L}\\mathbf{L}\^T A=LLT | O ( n 3 / 3 ) O(n\^3/3) O(n3/3) | 正定系统求解、多元高斯采样 | 非常稳定 | | **QR分解** | 任意矩阵 | A = Q R \\mathbf{A} = \\mathbf{Q}\\mathbf{R} A=QR | O ( m n 2 ) O(mn\^2) O(mn2) | 最小二乘、特征值计算、正交化 | 最稳定 | | **特征值分解** | 方阵(实对称最优) | A = V Λ V − 1 \\mathbf{A} = \\mathbf{V}\\boldsymbol{\\Lambda}\\mathbf{V}\^{-1} A=VΛV−1 | O ( n 3 ) O(n\^3) O(n3) | 矩阵幂、微分方程、PCA(协方差) | 对称矩阵稳定 | | **SVD** | 任意矩阵 | A = U Σ V T \\mathbf{A} = \\mathbf{U}\\boldsymbol{\\Sigma}\\mathbf{V}\^T A=UΣVT | O ( min ⁡ ( m n 2 , m 2 n ) ) O(\\min(mn\^2, m\^2n)) O(min(mn2,m2n)) | 低秩近似、伪逆、PCA、推荐系统 | 最稳定 | **选择指南**: * **求解线性方程组**: * 一般系统:LU分解(配合主元选取) * 正定系统:Cholesky分解(最快) * 最小二乘:QR分解(最稳定)或 SVD(处理秩亏) * **矩阵近似与降维**: * SVD(理论最优) * 截断SVD用于大规模稀疏矩阵(如推荐系统) * **特征分析**: * 对称矩阵:特征值分解或 SVD * 一般矩阵:Schur分解、SVD * **数值稳定性要求高**: * 首选 QR 或 SVD * 避免直接计算 ( A T A ) − 1 (\\mathbf{A}\^T\\mathbf{A})\^{-1} (ATA)−1(条件数平方) **条件数与数值稳定性**: 矩阵的**条件数** κ ( A ) = σ max ⁡ σ min ⁡ \\kappa(\\mathbf{A}) = \\frac{\\sigma_{\\max}}{\\sigma_{\\min}} κ(A)=σminσmax(最大奇异值与最小奇异值之比)衡量数值计算的敏感性: * κ ( A ) ≈ 1 \\kappa(\\mathbf{A}) \\approx 1 κ(A)≈1:良态(well-conditioned),数值稳定 * κ ( A ) ≫ 1 \\kappa(\\mathbf{A}) \\gg 1 κ(A)≫1:病态(ill-conditioned),小误差可能放大 * 正规方程将条件数平方: κ ( A T A ) = κ ( A ) 2 \\kappa(\\mathbf{A}\^T\\mathbf{A}) = \\kappa(\\mathbf{A})\^2 κ(ATA)=κ(A)2,故直接求解不稳定 **在机器学习中的实践建议**: 1. **线性回归**:使用 QR 分解或 SVD,避免正规方程 2. **PCA** : * 小规模数据:计算协方差矩阵的特征值分解 * 大规模数据:直接对数据矩阵进行 SVD 3. **矩阵补全/推荐系统**:截断 SVD 或交替最小二乘 4. **优化算法**:Cholesky 分解求解牛顿方向(Hessian 正定时) *** ** * ** *** ### 2.5 矩阵微积分 在机器学习中,训练模型的核心是优化目标函数。这需要计算损失函数相对于参数的梯度。矩阵微积分提供了高效计算梯度的工具。 #### 求导布局约定 矩阵求导有两种常见布局: 1. **分母布局 (Denominator Layout)**:梯度的维度与自变量的维度一致 * ∇ x f \\nabla_{\\mathbf{x}} f ∇xf 与 x \\mathbf{x} x 同型 * 本书采用此布局 2. **分子布局 (Numerator Layout)**:梯度的维度与函数值的维度一致 **本书约定(分母布局)**: * 标量函数对向量求导( f : R n → R f: \\mathbb{R}\^n \\to \\mathbb{R} f:Rn→R): ∇ x f = ∂ f ∂ x = \[ ∂ f ∂ x 1 ⋮ ∂ f ∂ x n \] ∈ R n \\nabla_{\\mathbf{x}} f = \\frac{\\partial f}{\\partial \\mathbf{x}} = \\begin{bmatrix} \\frac{\\partial f}{\\partial x_1} \\\\ \\vdots \\\\ \\frac{\\partial f}{\\partial x_n} \\end{bmatrix} \\in \\mathbb{R}\^n ∇xf=∂x∂f= ∂x1∂f⋮∂xn∂f ∈Rn 结果是列向量。 * 标量函数对矩阵求导( f : R m × n → R f: \\mathbb{R}\^{m \\times n} \\to \\mathbb{R} f:Rm×n→R): ∇ X f = ∂ f ∂ X = \[ ∂ f ∂ X 11 ⋯ ∂ f ∂ X 1 n ⋮ ⋱ ⋮ ∂ f ∂ X m 1 ⋯ ∂ f ∂ X m n \] ∈ R m × n \\nabla_{\\mathbf{X}} f = \\frac{\\partial f}{\\partial \\mathbf{X}} = \\begin{bmatrix} \\frac{\\partial f}{\\partial \\mathbf{X}_{11}} \& \\cdots \& \\frac{\\partial f}{\\partial \\mathbf{X}_{1n}} \\\\ \\vdots \& \\ddots \& \\vdots \\\\ \\frac{\\partial f}{\\partial \\mathbf{X}_{m1}} \& \\cdots \& \\frac{\\partial f}{\\partial \\mathbf{X}_{mn}} \\end{bmatrix} \\in \\mathbb{R}\^{m \\times n} ∇Xf=∂X∂f= ∂X11∂f⋮∂Xm1∂f⋯⋱⋯∂X1n∂f⋮∂Xmn∂f ∈Rm×n 结果与 X \\mathbf{X} X 同型。 **维度一致性原则** :梯度 ∇ W L \\nabla_{\\mathbf{W}} L ∇WL 与参数 W \\mathbf{W} W 的维度必须完全一致,这样才能进行梯度下降更新 W ← W − η ∇ W L \\mathbf{W} \\leftarrow \\mathbf{W} - \\eta \\nabla_{\\mathbf{W}} L W←W−η∇WL。 *** ** * ** *** #### 常用梯度公式 熟记以下公式可以覆盖绝大多数机器学习中的梯度计算场景。推导过程遵循定义,利用链式法则和矩阵运算性质。 ##### 1. 线性型 ∇ x ( a T x ) = a \\nabla_{\\mathbf{x}} (\\mathbf{a}\^T \\mathbf{x}) = \\mathbf{a} ∇x(aTx)=a ∇ x ( x T a ) = a \\nabla_{\\mathbf{x}} (\\mathbf{x}\^T \\mathbf{a}) = \\mathbf{a} ∇x(xTa)=a **推导** : a T x = ∑ i = 1 n a i x i \\mathbf{a}\^T \\mathbf{x} = \\sum_{i=1}\^n a_i x_i aTx=∑i=1naixi,故 ∂ ∂ x j = a j \\frac{\\partial}{\\partial x_j} = a_j ∂xj∂=aj。 ##### 2. 二次型 设 A \\mathbf{A} A 为对称矩阵( A = A T \\mathbf{A} = \\mathbf{A}\^T A=AT): ∇ x ( x T A x ) = 2 A x \\nabla_{\\mathbf{x}} (\\mathbf{x}\^T \\mathbf{A} \\mathbf{x}) = 2\\mathbf{A}\\mathbf{x} ∇x(xTAx)=2Ax 若 A \\mathbf{A} A 不对称,则: ∇ x ( x T A x ) = ( A + A T ) x \\nabla_{\\mathbf{x}} (\\mathbf{x}\^T \\mathbf{A} \\mathbf{x}) = (\\mathbf{A} + \\mathbf{A}\^T)\\mathbf{x} ∇x(xTAx)=(A+AT)x **推导**(对称情况): x T A x = ∑ i , j A i j x i x j \\mathbf{x}\^T \\mathbf{A} \\mathbf{x} = \\sum_{i,j} \\mathbf{A}_{ij} x_i x_j xTAx=i,j∑Aijxixj ∂ ∂ x k = ∑ j A k j x j + ∑ i A i k x i = 2 ∑ j A k j x j = 2 ( A x ) k \\frac{\\partial}{\\partial x_k} = \\sum_j \\mathbf{A}_{kj} x_j + \\sum_i \\mathbf{A}_{ik} x_i = 2\\sum_j \\mathbf{A}_{kj} x_j = 2(\\mathbf{A}\\mathbf{x})_k ∂xk∂=j∑Akjxj+i∑Aikxi=2j∑Akjxj=2(Ax)k **应用** :最小二乘损失 L = 1 2 ∥ y − X β ∥ 2 2 L = \\frac{1}{2}\\\|\\mathbf{y} - \\mathbf{X}\\boldsymbol{\\beta}\\\|_2\^2 L=21∥y−Xβ∥22 的梯度推导。 ##### 3. 矩阵乘法 ∇ X ( a T X b ) = a b T \\nabla_{\\mathbf{X}} (\\mathbf{a}\^T \\mathbf{X} \\mathbf{b}) = \\mathbf{a} \\mathbf{b}\^T ∇X(aTXb)=abT **推导** : a T X b = ∑ i , j a i X i j b j \\mathbf{a}\^T \\mathbf{X} \\mathbf{b} = \\sum_{i,j} a_i \\mathbf{X}_{ij} b_j aTXb=∑i,jaiXijbj,故 ∂ ∂ X i j = a i b j \\frac{\\partial}{\\partial \\mathbf{X}_{ij}} = a_i b_j ∂Xij∂=aibj。 ##### 4. 迹相关(非常重要) ∇ X tr ( A X B ) = A T B T \\nabla_{\\mathbf{X}} \\text{tr}(\\mathbf{A} \\mathbf{X} \\mathbf{B}) = \\mathbf{A}\^T \\mathbf{B}\^T ∇Xtr(AXB)=ATBT ∇ X tr ( X T A ) = A \\nabla_{\\mathbf{X}} \\text{tr}(\\mathbf{X}\^T \\mathbf{A}) = \\mathbf{A} ∇Xtr(XTA)=A ∇ X tr ( X T A X ) = ( A + A T ) X \\nabla_{\\mathbf{X}} \\text{tr}(\\mathbf{X}\^T \\mathbf{A} \\mathbf{X}) = (\\mathbf{A} + \\mathbf{A}\^T)\\mathbf{X} ∇Xtr(XTAX)=(A+AT)X 若 A \\mathbf{A} A 对称: ∇ X tr ( X T A X ) = 2 A X \\nabla_{\\mathbf{X}} \\text{tr}(\\mathbf{X}\^T \\mathbf{A} \\mathbf{X}) = 2\\mathbf{A}\\mathbf{X} ∇Xtr(XTAX)=2AX **技巧**:复杂的矩阵导数通常可以转化为迹的形式,利用迹的循环性简化。 ##### 5. 范数相关 ∇ x ∥ x ∥ 2 2 = ∇ x ( x T x ) = 2 x \\nabla_{\\mathbf{x}} \\\|\\mathbf{x}\\\|_2\^2 = \\nabla_{\\mathbf{x}} (\\mathbf{x}\^T \\mathbf{x}) = 2\\mathbf{x} ∇x∥x∥22=∇x(xTx)=2x ∇ x ∥ A x − b ∥ 2 2 = 2 A T ( A x − b ) \\nabla_{\\mathbf{x}} \\\|\\mathbf{A}\\mathbf{x} - \\mathbf{b}\\\|_2\^2 = 2\\mathbf{A}\^T(\\mathbf{A}\\mathbf{x} - \\mathbf{b}) ∇x∥Ax−b∥22=2AT(Ax−b) **推导**(第二个): ∥ A x − b ∥ 2 2 = ( A x − b ) T ( A x − b ) = x T A T A x − 2 b T A x + b T b \\\|\\mathbf{A}\\mathbf{x} - \\mathbf{b}\\\|_2\^2 = (\\mathbf{A}\\mathbf{x} - \\mathbf{b})\^T(\\mathbf{A}\\mathbf{x} - \\mathbf{b}) = \\mathbf{x}\^T\\mathbf{A}\^T\\mathbf{A}\\mathbf{x} - 2\\mathbf{b}\^T\\mathbf{A}\\mathbf{x} + \\mathbf{b}\^T\\mathbf{b} ∥Ax−b∥22=(Ax−b)T(Ax−b)=xTATAx−2bTAx+bTb ∇ x = 2 A T A x − 2 A T b = 2 A T ( A x − b ) \\nabla_{\\mathbf{x}} = 2\\mathbf{A}\^T\\mathbf{A}\\mathbf{x} - 2\\mathbf{A}\^T\\mathbf{b} = 2\\mathbf{A}\^T(\\mathbf{A}\\mathbf{x} - \\mathbf{b}) ∇x=2ATAx−2ATb=2AT(Ax−b) ##### 6. 逐元素函数 对于逐元素函数 f ( X ) f(\\mathbf{X}) f(X)(如 exp ⁡ , log ⁡ , sigmoid \\exp, \\log, \\text{sigmoid} exp,log,sigmoid): \[ ∇ X ∑ i j g ( X i j ) \] i j = g ′ ( X i j ) \\left\[\\nabla_{\\mathbf{X}} \\sum_{ij} g(\\mathbf{X}_{ij})\\right\]_{ij} = g'(\\mathbf{X}_{ij}) \[∇Xij∑g(Xij)\]ij=g′(Xij) **应用**:交叉熵损失、softmax梯度。 *** ** * ** *** #### 链式法则 ##### 标量对向量的链式法则 若 f ( y ) f(\\mathbf{y}) f(y), y = g ( x ) \\mathbf{y} = \\mathbf{g}(\\mathbf{x}) y=g(x),则: ∇ x f = ∂ y ∂ x T ∇ y f \\nabla_{\\mathbf{x}} f = \\frac{\\partial \\mathbf{y}}{\\partial \\mathbf{x}}\^T \\nabla_{\\mathbf{y}} f ∇xf=∂x∂yT∇yf 其中 ∂ y ∂ x \\frac{\\partial \\mathbf{y}}{\\partial \\mathbf{x}} ∂x∂y 是 Jacobian 矩阵( R m × n \\mathbb{R}\^{m \\times n} Rm×n, y ∈ R m \\mathbf{y} \\in \\mathbb{R}\^m y∈Rm, x ∈ R n \\mathbf{x} \\in \\mathbb{R}\^n x∈Rn)。 **例子** : f ( y ) = ∥ y ∥ 2 2 f(\\mathbf{y}) = \\\|\\mathbf{y}\\\|_2\^2 f(y)=∥y∥22, y = A x \\mathbf{y} = \\mathbf{A}\\mathbf{x} y=Ax ∇ x f = A T ∇ y f = A T ( 2 y ) = 2 A T A x \\nabla_{\\mathbf{x}} f = \\mathbf{A}\^T \\nabla_{\\mathbf{y}} f = \\mathbf{A}\^T (2\\mathbf{y}) = 2\\mathbf{A}\^T \\mathbf{A} \\mathbf{x} ∇xf=AT∇yf=AT(2y)=2ATAx ##### 反向传播的本质 深度学习中的反向传播算法本质上是链式法则的高效实现: ∂ L ∂ W ( 1 ) = ∂ L ∂ z ( 2 ) ∂ z ( 2 ) ∂ a ( 2 ) ∂ a ( 2 ) ∂ z ( 1 ) ∂ z ( 1 ) ∂ W ( 1 ) \\frac{\\partial L}{\\partial \\mathbf{W}\^{(1)}} = \\frac{\\partial L}{\\partial \\mathbf{z}\^{(2)}} \\frac{\\partial \\mathbf{z}\^{(2)}}{\\partial \\mathbf{a}\^{(2)}} \\frac{\\partial \\mathbf{a}\^{(2)}}{\\partial \\mathbf{z}\^{(1)}} \\frac{\\partial \\mathbf{z}\^{(1)}}{\\partial \\mathbf{W}\^{(1)}} ∂W(1)∂L=∂z(2)∂L∂a(2)∂z(2)∂z(1)∂a(2)∂W(1)∂z(1) 从输出层向输入层逐层传递梯度。 *** ** * ** *** #### 实际应用例子 ##### 例1:线性回归的梯度推导 **问题** :求解 min ⁡ β L ( β ) \\min_{\\boldsymbol{\\beta}} L(\\boldsymbol{\\beta}) minβL(β),其中损失函数为: L ( β ) = 1 2 ∥ y − X β ∥ 2 2 L(\\boldsymbol{\\beta}) = \\frac{1}{2}\\\|\\mathbf{y} - \\mathbf{X}\\boldsymbol{\\beta}\\\|_2\^2 L(β)=21∥y−Xβ∥22 **推导**: L ( β ) = 1 2 ( y − X β ) T ( y − X β ) L(\\boldsymbol{\\beta}) = \\frac{1}{2}(\\mathbf{y} - \\mathbf{X}\\boldsymbol{\\beta})\^T(\\mathbf{y} - \\mathbf{X}\\boldsymbol{\\beta}) L(β)=21(y−Xβ)T(y−Xβ) 展开: L ( β ) = 1 2 ( y T y − 2 y T X β + β T X T X β ) L(\\boldsymbol{\\beta}) = \\frac{1}{2}(\\mathbf{y}\^T\\mathbf{y} - 2\\mathbf{y}\^T\\mathbf{X}\\boldsymbol{\\beta} + \\boldsymbol{\\beta}\^T\\mathbf{X}\^T\\mathbf{X}\\boldsymbol{\\beta}) L(β)=21(yTy−2yTXβ+βTXTXβ) 对 β \\boldsymbol{\\beta} β 求导: ∇ β L = − X T y + X T X β = X T ( X β − y ) \\nabla_{\\boldsymbol{\\beta}} L = -\\mathbf{X}\^T\\mathbf{y} + \\mathbf{X}\^T\\mathbf{X}\\boldsymbol{\\beta} = \\mathbf{X}\^T(\\mathbf{X}\\boldsymbol{\\beta} - \\mathbf{y}) ∇βL=−XTy+XTXβ=XT(Xβ−y) 令梯度为零得到正规方程: X T X β = X T y \\mathbf{X}\^T\\mathbf{X}\\boldsymbol{\\beta} = \\mathbf{X}\^T\\mathbf{y} XTXβ=XTy 解为: β \^ = ( X T X ) − 1 X T y \\hat{\\boldsymbol{\\beta}} = (\\mathbf{X}\^T\\mathbf{X})\^{-1}\\mathbf{X}\^T\\mathbf{y} β\^=(XTX)−1XTy **带L2正则化的岭回归**: 损失函数为: L ( β ) = 1 2 ∥ y − X β ∥ 2 2 + λ 2 ∥ β ∥ 2 2 L(\\boldsymbol{\\beta}) = \\frac{1}{2}\\\|\\mathbf{y} - \\mathbf{X}\\boldsymbol{\\beta}\\\|_2\^2 + \\frac{\\lambda}{2}\\\|\\boldsymbol{\\beta}\\\|_2\^2 L(β)=21∥y−Xβ∥22+2λ∥β∥22 梯度为: ∇ β L = X T ( X β − y ) + λ β \\nabla_{\\boldsymbol{\\beta}} L = \\mathbf{X}\^T(\\mathbf{X}\\boldsymbol{\\beta} - \\mathbf{y}) + \\lambda\\boldsymbol{\\beta} ∇βL=XT(Xβ−y)+λβ 解为: β \^ = ( X T X + λ I ) − 1 X T y \\hat{\\boldsymbol{\\beta}} = (\\mathbf{X}\^T\\mathbf{X} + \\lambda\\mathbf{I})\^{-1}\\mathbf{X}\^T\\mathbf{y} β\^=(XTX+λI)−1XTy 正则化项使矩阵 X T X + λ I \\mathbf{X}\^T\\mathbf{X} + \\lambda\\mathbf{I} XTX+λI 正定可逆,提高数值稳定性。 *** ** * ** *** ##### 例2:Softmax 回归(多分类逻辑回归) **模型** :输入 x ∈ R d \\mathbf{x} \\in \\mathbb{R}\^d x∈Rd,参数矩阵 W ∈ R K × d \\mathbf{W} \\in \\mathbb{R}\^{K \\times d} W∈RK×d( K K K 个类别),预测概率为: p = softmax ( W x ) , p k = exp ⁡ ( ( W x ) k ) ∑ j = 1 K exp ⁡ ( ( W x ) j ) \\mathbf{p} = \\text{softmax}(\\mathbf{W}\\mathbf{x}), \\quad p_k = \\frac{\\exp((\\mathbf{W}\\mathbf{x})_k)}{\\sum_{j=1}\^K \\exp((\\mathbf{W}\\mathbf{x})_j)} p=softmax(Wx),pk=∑j=1Kexp((Wx)j)exp((Wx)k) **损失函数**(交叉熵): L = − y T log ⁡ p = − ∑ k = 1 K y k log ⁡ p k L = -\\mathbf{y}\^T \\log \\mathbf{p} = -\\sum_{k=1}\^K y_k \\log p_k L=−yTlogp=−k=1∑Kyklogpk 其中 y \\mathbf{y} y 是 one-hot 编码的真实标签。 **梯度**: 通过推导(详细过程涉及 softmax 的雅可比矩阵)可得: ∇ W L = ( p − y ) x T \\nabla_{\\mathbf{W}} L = (\\mathbf{p} - \\mathbf{y}) \\mathbf{x}\^T ∇WL=(p−y)xT **直觉** :梯度是预测误差 ( p − y ) (\\mathbf{p} - \\mathbf{y}) (p−y) 与输入 x \\mathbf{x} x 的外积,指示了如何调整权重以减小误差。 **梯度下降更新**: W ← W − η ( p − y ) x T \\mathbf{W} \\leftarrow \\mathbf{W} - \\eta (\\mathbf{p} - \\mathbf{y}) \\mathbf{x}\^T W←W−η(p−y)xT *** ** * ** *** ##### 例3:矩阵分解的梯度 **问题** (矩阵补全/推荐系统):给定部分观测的矩阵 R ∈ R m × n \\mathbf{R} \\in \\mathbb{R}\^{m \\times n} R∈Rm×n,用低秩分解 R ≈ U V T \\mathbf{R} \\approx \\mathbf{U}\\mathbf{V}\^T R≈UVT 近似,其中 U ∈ R m × k \\mathbf{U} \\in \\mathbb{R}\^{m \\times k} U∈Rm×k, V ∈ R n × k \\mathbf{V} \\in \\mathbb{R}\^{n \\times k} V∈Rn×k。 **损失函数** (只在观测位置 Ω \\Omega Ω 计算): L ( U , V ) = 1 2 ∑ ( i , j ) ∈ Ω ( R i j − u i T v j ) 2 + λ 2 ( ∥ U ∥ F 2 + ∥ V ∥ F 2 ) L(\\mathbf{U}, \\mathbf{V}) = \\frac{1}{2}\\sum_{(i,j) \\in \\Omega} (\\mathbf{R}_{ij} - \\mathbf{u}_i\^T \\mathbf{v}_j)\^2 + \\frac{\\lambda}{2}(\\\|\\mathbf{U}\\\|_F\^2 + \\\|\\mathbf{V}\\\|_F\^2) L(U,V)=21(i,j)∈Ω∑(Rij−uiTvj)2+2λ(∥U∥F2+∥V∥F2) **梯度**: 对 u i \\mathbf{u}_i ui 求导(第 i i i 行用户向量): ∇ u i L = ∑ j : ( i , j ) ∈ Ω ( u i T v j − R i j ) v j + λ u i \\nabla_{\\mathbf{u}_i} L = \\sum_{j:(i,j) \\in \\Omega} (\\mathbf{u}_i\^T \\mathbf{v}_j - \\mathbf{R}_{ij}) \\mathbf{v}_j + \\lambda \\mathbf{u}_i ∇uiL=j:(i,j)∈Ω∑(uiTvj−Rij)vj+λui 对 v j \\mathbf{v}_j vj 求导(第 j j j 列物品向量): ∇ v j L = ∑ i : ( i , j ) ∈ Ω ( u i T v j − R i j ) u i + λ v j \\nabla_{\\mathbf{v}_j} L = \\sum_{i:(i,j) \\in \\Omega} (\\mathbf{u}_i\^T \\mathbf{v}_j - \\mathbf{R}_{ij}) \\mathbf{u}_i + \\lambda \\mathbf{v}_j ∇vjL=i:(i,j)∈Ω∑(uiTvj−Rij)ui+λvj **交替最小二乘 (ALS)**: * 固定 V \\mathbf{V} V,更新 U \\mathbf{U} U(每行独立求解最小二乘问题) * 固定 U \\mathbf{U} U,更新 V \\mathbf{V} V * 迭代直到收敛 *** ** * ** *** #### 梯度检验(数值验证) 在实现复杂的梯度公式时,建议使用**有限差分法**验证梯度的正确性。 **单侧差分**: ∂ f ∂ x i ≈ f ( x + ϵ e i ) − f ( x ) ϵ \\frac{\\partial f}{\\partial x_i} \\approx \\frac{f(\\mathbf{x} + \\epsilon \\mathbf{e}_i) - f(\\mathbf{x})}{\\epsilon} ∂xi∂f≈ϵf(x+ϵei)−f(x) **中心差分**(更精确): ∂ f ∂ x i ≈ f ( x + ϵ e i ) − f ( x − ϵ e i ) 2 ϵ \\frac{\\partial f}{\\partial x_i} \\approx \\frac{f(\\mathbf{x} + \\epsilon \\mathbf{e}_i) - f(\\mathbf{x} - \\epsilon \\mathbf{e}_i)}{2\\epsilon} ∂xi∂f≈2ϵf(x+ϵei)−f(x−ϵei) 其中 e i \\mathbf{e}_i ei 是第 i i i 个标准基向量, ϵ ≈ 10 − 4 ∼ 10 − 7 \\epsilon \\approx 10\^{-4} \\sim 10\^{-7} ϵ≈10−4∼10−7。 **相对误差检验**: relative error = ∥ ∇ numerical f − ∇ analytical f ∥ 2 ∥ ∇ numerical f ∥ 2 + ∥ ∇ analytical f ∥ 2 \\text{relative error} = \\frac{\\\|\\nabla_{\\text{numerical}} f - \\nabla_{\\text{analytical}} f\\\|_2}{\\\|\\nabla_{\\text{numerical}} f\\\|_2 + \\\|\\nabla_{\\text{analytical}} f\\\|_2} relative error=∥∇numericalf∥2+∥∇analyticalf∥2∥∇numericalf−∇analyticalf∥2 通常要求相对误差 \< 10 − 7 \< 10\^{-7} \<10−7 才认为梯度实现正确。 **注意**: * 梯度检验计算量大( O ( n ) O(n) O(n) 次函数求值),仅用于调试,不用于训练 * 对于随机算法(如 dropout),需要固定随机种子 * 确保数值稳定性(避免 log(0)、除零等) *** ** * ** *** ### 总结 本章构建了机器学习所需的线性代数基础,主要内容包括: **基础结构**: * 向量、矩阵、张量的定义与核心运算 * 逆矩阵与伪逆的概念、性质和应用 **向量空间**: * 线性组合、张成空间、线性相关性 * 基、维度与秩的概念 * 四个基本子空间及其正交关系 * 秩-零化度定理 **几何视角**: * L1, L2, L∞ 范数的几何意义与稀疏性 * 内积、角度与正交 * 正交矩阵的性质和重要性 * 正交投影的完整推导与最小二乘解释 **矩阵分解**: * 特征值分解:方阵的对角化、谱定理、正定矩阵 * SVD:任意矩阵的分解、几何意义、低秩近似、伪逆计算 * Cholesky 分解:正定矩阵的高效分解与应用 **矩阵微积分**: * 分母布局约定与维度一致性 * 常用梯度公式(线性型、二次型、迹、范数) * 链式法则与反向传播 这些工具不仅是数学形式,更是理解数据结构、优化算法和模型性质的语言。掌握这些概念的几何直觉和代数操作,是深入学习机器学习算法的坚实基础。 在后续章节中,我们将看到: * **线性回归**:正交投影和伪逆的直接应用 * **PCA**:SVD的低秩近似和特征值分解 * **优化算法**:梯度、Hessian矩阵与正定性 * **概率图模型**:协方差矩阵、Cholesky分解 * **深度学习**:反向传播、权重矩阵的奇异值 线性代数是贯穿整个机器学习理论的主线,值得反复学习和深入理解。

相关推荐
Terio_my2 小时前
简要 Java 面试题学习
java·开发语言·学习
知识分享小能手2 小时前
Oracle 19c入门学习教程,从入门到精通,Oracle 的闪回技术 — 语法知识点与使用方法详解(19)
数据库·学习·oracle
不光头强2 小时前
kafka学习要点
分布式·学习·kafka
凉、介2 小时前
ACRN Hypervisor 简介
笔记·学习·虚拟化
飞鹰512 小时前
深度学习算子CUDA优化实战:从GEMM到Transformer—Week4学习总结
c++·人工智能·深度学习·学习·transformer
顾西爵霞2 小时前
个人学习主页搭建指南:从毛坯房到精装户型
学习·html
hhhjhl2 小时前
flutter_for_openharmony逆向思维训练app实战+学习日历实现
学习·flutter
近津薪荼3 小时前
优选算法——双指针8(单调性)
数据结构·c++·学习·算法
困死了11113 小时前
KAG: Boosting LLMs in Professional Domains viaKnowledge Augmented Generation
机器学习