SVD分解

2026/5/30 · 离散数学

重要定义与预备知识

1 矩阵特征分解

特征分解是针对方阵的一种结构化分解 设 A\mathbf{A}nn 阶方阵,如果存在常数 λ\lambdann 维非零列向量 u\mathbf{u} 满足:

Au=λu\mathbf{Au} = \lambda \mathbf{u}

则称 λ\lambdaA\mathbf{A}特征值u\mathbf{u} 为对应的特征向量。对于实对称矩阵,其特征分解可表示为 A=WΣWT\mathbf{A} = \mathbf{W} \boldsymbol{\Sigma} \mathbf{W}^T,其中 W\mathbf{W} 为单位正交阵,Σ\boldsymbol{\Sigma} 为特征值对角阵

W\mathbf{W}是单位特征向量对应Σ\Sigma顺序排列成的矩阵

2 正交矩阵与变换性质

Q\mathbf{Q} 为单位正交阵,满足 QTQ=I\mathbf{Q}^T \mathbf{Q} = \mathbf{I}

  • 几何意义:在几何上对应于旋转反射变换
  • 范数保持:正交变换的核心价值在于保持向量的内积与 L2L_2 范数(欧氏范数)不变,即:

Qx2=x2\|\mathbf{Q}\mathbf{x}\|_2 = \|\mathbf{x}\|_2

这一性质确保了数据在坐标变换过程中,信息和向量间的夹角(相关性)得以完整保留


奇异值分解定理

1 SVD 的定义

奇异值分解是将特征分解推广到任意维度矩阵的方法。对于任何 m×nm \times n 的矩阵 A\mathbf{A},其 SVD 形式为:

Am×n=Um×mΣm×nVn×nT\mathbf{A}_{m \times n} = \mathbf{U}_{m \times m} \boldsymbol{\Sigma}_{m \times n} \mathbf{V}^T_{n \times n}

其中U\mathbf{U} 是一个m×m{m \times m}的矩阵,Σ\Sigma 是一个m×n{m \times n}的矩阵,并且除了主对角线上的元素以外全为0 ,主对角线上的每个元素都称为奇异值,V\mathbf{V}是一个n×n{n \times n}的矩阵。U\mathbf{U}V\mathbf{V}都是酉矩阵,即满足:

UTU=I,VTV=I U^T U = I, \quad V^T V = I

  • U\mathbf{U} (左奇异向量矩阵):其列向量是 AAT\mathbf{AA}^T 的特征向量

  • V\mathbf{V} (右奇异向量矩阵):其列向量是 ATA\mathbf{A}^T\mathbf{A} 的特征向量

  • Σ\boldsymbol{\Sigma} (奇异值矩阵):主对角线上的元素 σi\sigma_i 称为奇异值

2 SVD 的基本原理

  • 右奇异向量与 (A^T A): ATA=(VΣTUT)(UΣVT)=VΣ2VTA^T A = (V \Sigma^T U^T)(U \Sigma V^T) = V \Sigma^2 V^T

由此可知,(V) 的列向量是方阵 (A^T A) 的特征向量,称为 (A) 的右奇异值向量

  • 左奇异向量与 (AA^T): AAT=(UΣVT)(VΣTUT)=UΣ2UTAA^T = (U \Sigma V^T)(V \Sigma^T U^T) = U \Sigma^2 U^T

由此可知,(U) 的列向量是方阵 (AA^T) 的特征向量,称为 (A) 的左奇异值向量

  • 奇异值关系: 方阵 (A^T A) 或 (AA^T) 的特征值 (\lambda_i) 等于 SVD 中奇异值的平方,即

σi=λi\sigma_i = \sqrt{\lambda_i}

2.1 SVD 的物理意义

  • 几何逻辑:旋转 - 缩放 SVD 通过几何逻辑将抽象的算子变换转化为可解释的步骤: 旋转 (VT\mathbf{V}^T):通过正交变换寻找输入空间的主轴,实现数据解耦 缩放 (Σ\boldsymbol{\Sigma}):奇异值对各个主轴方向进行拉伸或压缩,反映该维度的信息增益。 再旋转 (U\mathbf{U}):将结果映射到输出空间的坐标系中

2.2 与主成分分析 (PCA) 的联系

在数值计算中,SVD 是实现 PCA 的常用方法

  • A\mathbf{A} 为中心化后的样本-特征矩阵,V\mathbf{V} 的列向量等同于 PCA 中的主成分方向 αi\boldsymbol{\alpha}_i
  • 奇异值的平方和 σi2\sum \sigma_i^2 代表了矩阵的总能量(总方差)

3 求解步骤

有两种主要的求解路径,通常根据矩阵的维度(m 与 n 的大小关系)选择更高效的一种

3.1 方法一:利用 ATAA^T A 求解(适用于 nmn \leq m

  • 构造对称算子:计算 n×nn \times n 阶对称矩阵 ATAA^T A

  • 计算特征值右奇异向量 VV

求解特征方程 λIATA=0|\lambda I - A^T A| = 0

得到特征值 λ1,λ2,,λn\lambda_1, \lambda_2, \dots, \lambda_n

对每个特征值求解齐次方程 (λiIATA)vi=0(\lambda_i I - A^T A) v_i = 0,并进行单位化,构造酉矩阵 V=[v1,,vn]V = [v_1, \dots, v_n]

这里的viv_i指的是λi\lambda_i对应的单位特征向量,若秩是k,则 λk+1,,λn\lambda_{k+1}, \dots, \lambda_n 为0,且 vk+1,,vnv_{k+1}, \dots, v_n都是模长为 1 且相互正交的非零向量

  • 确定奇异值得到奇异值矩阵Σ\Sigma:计算非零奇异值 σi=λi\sigma_i = \sqrt{\lambda_i}

  • 通过映射求解左奇异向量 UU

利用公式 U1=AV1Σ11U_1 = A V_1 \Sigma^{-1}_1 计算与非零奇异值对应的左奇异矩阵的一部分

根据 SVD 的定义,任何矩阵 AA 均可以表示为三个矩阵的乘积:A=UΣVTA = U \Sigma V^T 其中 VV 是酉矩阵(正交阵),满足 VTV=IV^T V = I。我们在等式两边同时右乘 VVAV=UΣVTV=UΣA V = U \Sigma V^T V = U \Sigma同时右乘Σ1\Sigma^{-1}得证

若矩阵秩 k<mk < m,需通过寻找 ATA^T 零空间的标准正交基来扩充 U1U_1,使其成为 m×mm \times m 阶酉矩阵 U=[U1,U2]U = [U_1, U_2]

  • 组装矩阵:将奇异值按降序排列构成 m×nm \times n 阶对角矩阵 Σ\Sigma,最终写出 A=UΣVTA = U \Sigma V^T

3.2 方法二:利用 AATA A^T 求解(适用于 m<nm < n

  • 构造对称算子:计算 m×mm \times m 阶对称矩阵 AATA A^T

  • 计算左奇异向量 UU:求解 AATA A^T 的单位正交特征向量,构成 m×mm \times m 阶酉矩阵 UU

  • 通过映射求解右奇异向量 VV

  • 利用公式 vi=1σiATuiv_i = \frac{1}{\sigma_i} A^T u_i 计算与非零奇异值对应的右奇异向量主要部分 V1V_1

  • 若矩阵秩 k<nk < n,寻找 AA 零空间的标准正交基扩充得到 n×nn \times n 阶酉矩阵 V=[V1,V2]V = [V_1, V_2]

  • 组装结构:按照奇异值降序构建 Σ\Sigma 并完成分解


性质与应用

1 最优低秩近似

通过奇异值截断策略(保留前 kk 个大奇异值),可以实现:

  • 数据降噪:丢弃代表噪声的小奇异值
  • 特征提取:提取数据中最剧烈变化的主轴
  • 数据压缩:用极小的数据量近似描述原矩阵

2 累计贡献率

类似于 PCA,可以通过奇异值计算新数据占原数据信息的比值: Contribution=i=1kσi2i=1pσi2\text{Contribution} = \frac{\sum_{i=1}^k \sigma_i^2}{\sum_{i=1}^p \sigma_i^2} 这为选择合适的截断点 kk 提供了定量依据