跳转至

第十四章:奇异值分解

奇异值分解(Singular Value Decomposition,简称SVD)是矩阵分析中最为重要的分解形式之一。它将任意一个实数矩阵(或复数矩阵)分解为三个特殊矩阵的乘积,在统计学、机器学习、信号处理、图像压缩等领域有着极为广泛的应用。本章将系统介绍奇异值分解的定义、紧型与截断形式、Eckart-Young定理以及Frobenius范数意义下的低秩近似理论。


14.1 奇异值分解的定义

\(A\) 为一个 \(m \times n\) 的实矩阵(为讨论简便,本章主要考虑实矩阵情形,复矩阵情形可类似推广),秩为 \(r = \text{rank}(A)\)。奇异值分解将矩阵 \(A\) 表示为三个矩阵的乘积:

\[A = U \Sigma V^{\mathrm{T}}\]

其中各矩阵的定义如下:

左奇异矩阵 \(U\)\(U\) 是一个 \(m \times m\) 的正交矩阵,其列向量称为左奇异向量。\(U\) 的列向量是 \(AA^{\mathrm{T}}\) 的特征向量构成的规范正交基,即 \(U^{\mathrm{T}}U = I_m\)

奇异值矩阵 \(\Sigma\)\(\Sigma\) 是一个 \(m \times n\) 的对角矩阵,对角线元素为奇异值 \(\sigma_1, \sigma_2, \ldots, \sigma_r > 0\),并满足 \(\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0\)。当 \(m > n\) 时,\(\Sigma\) 的下方或上方(取决于实现方式)会有 \((m-n)\) 行零元素;当 \(m < n\) 时,\(\Sigma\) 的右方会有 \((n-m)\) 列零元素。

右奇异矩阵 \(V\)\(V\) 是一个 \(n \times n\) 的正交矩阵,其列向量称为右奇异向量。\(V\) 的列向量是 \(A^{\mathrm{T}}A\) 的特征向量构成的规范正交基,即 \(V^{\mathrm{T}}V = I_n\)

奇异值分解的存在性可以从特征值理论直接推出。矩阵 \(A^{\mathrm{T}}A\) 是对称半正定矩阵,其特征值均为非负数。设 \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_r > 0\)\(A^{\mathrm{T}}A\) 的非零特征值,则奇异值定义为 \(\sigma_i = \sqrt{\lambda_i}\)。可以验证,\(AV = U\Sigma\) 恰好成立,从而 \(A = U\Sigma V^{\mathrm{T}}\)

奇异值的几何意义十分清晰:对于任意向量 \(x \in \mathbb{R}^n\),矩阵 \(A\) 将其映射到 \(y = Ax \in \mathbb{R}^m\)。奇异值描述了这一线性变换在正交方向上的拉伸因子。左奇异向量 \(\{u_i\}\) 构成 \(\mathbb{R}^m\) 空间中的一组规范正交基,右奇异向量 \(\{v_i\}\) 构成 \(\mathbb{R}^n\) 空间中的一组规范正交基。变换 \(A\) 先后将 \(v_i\) 方向拉伸 \(\sigma_i\) 倍,然后映射到 \(u_i\) 方向。


14.2 紧奇异值分解

紧奇异值分解(Compact SVD)是奇异值分解的一种经济形式,它仅保留矩阵中真正含有信息量的部分。

对于秩为 \(r\)\(m \times n\) 矩阵 \(A\),其紧奇异值分解定义为:

\[A = U_r \Sigma_r V_r^{\mathrm{T}}\]

其中:\(U_r\)\(m \times r\) 矩阵,由 \(U\) 的前 \(r\) 列组成;\(V_r\)\(n \times r\) 矩阵,由 \(V\) 的前 \(r\) 列组成;\(\Sigma_r\)\(r \times r\) 的对角矩阵,对角线元素为前 \(r\) 个奇异值 \(\sigma_1, \sigma_2, \ldots, \sigma_r\)

紧奇异值分解与完全奇异值分解的关系可以通过下式理解:

\[A = \sum_{i=1}^{r} \sigma_i u_i v_i^{\mathrm{T}}\]

这一展开式称为奇异值的外积展开。每一项 \(\sigma_i u_i v_i^{\mathrm{T}}\) 都是一个秩为1的矩阵,所有这些秩1矩阵的线性组合恰好重构出原始矩阵 \(A\)。由于 \(r \leq \min(m, n)\),紧分解去除了完全分解中那些对应零奇异值的冗余部分,存储量从 \(O(mn)\) 降低到 \(O(r(m+n))\),这对于大规模矩阵运算具有重要的实用价值。

紧奇异值分解保留了矩阵的全部信息,二者是数学上等价的两种表示形式。引入完全奇异值分解中 \(U\)\(V\) 的其余 \(m-r\) 列和 \(n-r\) 列只是为了使得矩阵 \(U\)\(V\) 成为正交方阵,这些额外列在重构 \(A\) 时并不提供新的信息。


14.3 截断奇异值分解

截断奇异值分解(Truncated SVD)也称为部分奇异值分解,是紧奇异值分解的进一步简化。与保留全部 \(r\) 个非零奇异值不同,截断SVD只保留前 \(k\) 个最大的奇异值,其中 \(k < r\)

截断奇异值分解的数学表达式为:

\[A_k = U_k \Sigma_k V_k^{\mathrm{T}} = \sum_{i=1}^{k} \sigma_i u_i v_i^{\mathrm{T}}\]

其中 \(U_k\)\(V_k\)\(\Sigma_k\) 分别由完全分解的前 \(k\) 列(或行)构成,\(k\) 为截断参数。

截断奇异值分解与紧奇异值分解的关键区别在于:\(A_k\) 不再等于原矩阵 \(A\),而只是 \(A\) 在某种意义下的最佳近似。具体而言,\(A_k\) 的秩恰好为 \(k\),它是一个秩为 \(k\) 的矩阵。截断过程丢弃了较小的奇异值 \(\sigma_{k+1}, \sigma_{k+2}, \ldots, \sigma_r\) 以及对应的奇异向量,这些成分通常被认为含有较少的"能量"或信息。

在实际应用中,截断参数 \(k\) 的选择是一个重要的实践问题。常用的选择依据包括:累积方差贡献率——当 \(\sum_{i=1}^{k} \sigma_i^2 / \sum_{i=1}^{r} \sigma_i^2\) 达到某一阈值(如0.95或0.99)时,认为前 \(k\) 个奇异值已经捕获了矩阵的主要信息;也有基于用户指定的精度阈值或基于具体应用场景的先验知识来确定 \(k\) 的取值。


14.4 Eckart-Young定理

Eckart-Young定理是奇异值分解理论中最为核心的结果之一,它精确地描述了截断奇异值分解在矩阵低秩近似中的最优性质。该定理最早由Eckart和Young在1936年提出,是矩阵近似理论的基石。

定理(Eckart-Young):设 \(A\)\(m \times n\) 矩阵,奇异值为 \(\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0\)。对任意正整数 \(k < r\),设 \(A_k = \sum_{i=1}^{k} \sigma_i u_i v_i^{\mathrm{T}}\)\(A\) 的截断奇异值分解。则:

\[\| A - A_k \|_2 = \min_{\text{rank}(B) \leq k} \| A - B \|_2 = \sigma_{k+1}\]

其中 \(\| \cdot \|_2\) 表示矩阵的谱范数(最大奇异值范数)。

这一定理的含义极为深刻:在一个秩不超过 \(k\) 的矩阵集合中,\(A_k\) 是距离 \(A\) 最近的矩阵,而这个最近的距离恰好等于被丢弃的第一个奇异值 \(\sigma_{k+1}\)。换言之,若希望用一个秩至多 \(k\) 的矩阵来近似原矩阵 \(A\),则截断奇异值分解给出的 \(A_k\) 是在谱范数意义下的最优选择,无法找到比它更好的近似。

Eckart-Young定理的证明基于奇异值分解的正交不变性和奇异值的基本性质。由于 \(U\)\(V\) 是正交矩阵,谱范数具有双正交不变性,即 \(\| UAV^{\mathrm{T}} \|_2 = \| A \|_2\)。对于任意秩不超过 \(k\) 的矩阵 \(B\),可以设其奇异值分解为 \(B = XY^{\mathrm{T}}\) 的形式,并利用奇异值的不等式关系 \(\| A - B \|_2 \geq \sigma_{k+1}\) 加以证明。

进一步地,Eckart-Young定理还可以推广到其他矩阵范数情形。对于Frobenius范数(详见下一节),最优低秩近似的结论形式类似,但具体的最优值表达式有所不同。


14.5 Frobenius低秩近似

Frobenius范数(又称F范数)是矩阵分析中另一常用的范数度量。对于矩阵 \(A = (a_{ij})_{m \times n}\),其Frobenius范数定义为:

\[\| A \|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij}^2} = \sqrt{\text{tr}(A^{\mathrm{T}}A)} = \sqrt{\sum_{i=1}^{r} \sigma_i^2}\]

Frobenius范数可以理解为将矩阵拉伸为长向量后的欧氏距离,它衡量的是矩阵元素的整体偏差。在统计学习中,F范数与均方误差有着天然的联系,这使得它在低秩近似问题中具有重要的应用价值。

在Frobenius范数意义下,截断奇异值分解同样给出了最优低秩近似,这被称为Eckart-Young定理的Frobenius范数版本。

定理(F范数意义下的最优低秩近似):设 \(A\)\(m \times n\) 矩阵,前 \(k\) 个奇异值为 \(\sigma_1, \ldots, \sigma_k\)。则对任意秩不超过 \(k\) 的矩阵 \(B\),有:

\[\| A - A_k \|_F = \min_{\text{rank}(B) \leq k} \| A - B \|_F = \sqrt{\sigma_{k+1}^2 + \sigma_{k+2}^2 + \cdots + \sigma_r^2}\]

\(A_k = U_k \Sigma_k V_k^{\mathrm{T}}\) 在Frobenius范数意义下是 \(A\) 的最优秩 \(k\) 近似。

这一结论的证明可以利用奇异值分解的外积展开式以及正交矩阵的性质完成。由于 \(\| A - A_k \|_F^2 = \| \sum_{i=k+1}^{r} \sigma_i u_i v_i^{\mathrm{T}} \|_F^2 = \sum_{i=k+1}^{r} \sigma_i^2\),而对任意秩 \(k\) 矩阵 \(B\),其奇异值 \(\beta_1 \geq \cdots \geq \beta_k\)\(A\) 的奇异值之间满足 Weyl 不等式一类的不等式关系,从而可以证明 \(\| A - B \|_F^2 \geq \sum_{i=k+1}^{r} \sigma_i^2\)

Frobenius低秩近似的误差与奇异值的平方和直接相关。当前 \(k\) 个奇异值的平方和占全部奇异值平方和的比例较大时,截断近似的误差较小,这一比例在统计学中被称为累积贡献率,是确定截断参数 \(k\) 的重要依据。


14.6 奇异值分解与特征值分解的关系

奇异值分解与特征值分解虽然名称相近,但二者针对的是不同类型的矩阵,且具有不同的数学性质。

对于对称矩阵 \(S = S^{\mathrm{T}}\),其特征值分解为 \(S = Q \Lambda Q^{\mathrm{T}}\),其中 \(Q\) 是正交矩阵,\(\Lambda\) 是对角矩阵,对角线元素为特征值 \(\lambda_1, \lambda_2, \ldots, \lambda_n\)。若 \(S\) 还是半正定的,则特征值非负,奇异值与特征值完全一致。

对于一般矩阵 \(A\),其奇异值分解 \(A = U\Sigma V^{\mathrm{T}}\) 与特征值分解的关系可以表述为:\(A^{\mathrm{T}}A = V\Sigma^{\mathrm{T}}\Sigma V^{\mathrm{T}} = V\text{diag}(\sigma_1^2, \ldots, \sigma_r^2, 0, \ldots, 0)V^{\mathrm{T}}\),即 \(A^{\mathrm{T}}A\) 的特征值就是奇异值的平方。类似地,\(AA^{\mathrm{T}} = U\text{diag}(\sigma_1^2, \ldots, \sigma_r^2, 0, \ldots, 0)U^{\mathrm{T}}\)

这一关系揭示了奇异值分解的一个重要性质:奇异值总是非负的实数,即使对于非对称矩阵也是如此。这一点使得奇异值分解在数值计算上比一般矩阵的特征值分解更为稳定,因为对称矩阵的特征值也总是实数,但一般矩阵的特征值可能是复数。

下表总结了奇异值分解与特征值分解的主要区别与联系:

比较项目 奇异值分解(SVD) 特征值分解(EVD)
适用矩阵 任意 \(m \times n\) 矩阵 仅限方阵 \(n \times n\)
分解形式 \(A = U\Sigma V^{\mathrm{T}}\) \(A = Q\Lambda Q^{-1}\)\(Q\Lambda Q^{\mathrm{T}}\)(对称)
对角元素 奇异值 \(\sigma_i \geq 0\),必为实数 特征值 \(\lambda_i\) 可为复数
正交性 \(U\)\(V\) 均为正交矩阵 \(Q\) 的列向量为特征向量
存在性 任意矩阵均存在SVD 方阵未必有完全特征值分解
计算稳定性 较稳定 对病态矩阵可能不稳定

14.7 奇异值分解的计算方法与总结

奇异值分解的计算是数值线性代数中的核心算法之一。在计算机上,通常不先计算 \(A^{\mathrm{T}}A\) 再求其特征值(这样做可能引入数值误差),而是采用两阶段 Golub-Kahan-Reinsch 算法或其他更稳定的数值方法。

第一阶段对 \(A\) 进行 Householder 变换或 Givens 旋转变换,将其约化为双对角矩阵 \(B\),这一过程的计算复杂度约为 \(O(mn^2)\)(假设 \(m \geq n\))。第二阶段对双对角矩阵 \(B\) 迭代计算其奇异值,常用的方法包括带有位移的 QR 算法。整个过程的计算复杂度约为 \(O(mn^2)\),空间复杂度为 \(O(mn)\)

在实际使用时,Python 的 NumPy 库提供了 numpy。linalg。svd 函数,可以直接计算矩阵的奇异值分解。在 MATLAB、R 等科学计算环境中,也有对应的标准函数可供调用。

奇异值分解之所以在统计学习和数据科学中占据核心地位,是因为它具有以下几个关键优势:第一,分解的存在性具有普遍保证,任何矩阵都存在奇异值分解;第二,最优低秩近似的性质由 Eckart-Young 定理精确保证;第三,奇异值具有明确的物理和统计含义,可以与数据的方差、能量等概念直接对应;第四,奇异值的计算在数值上是稳定的。这些优点使得奇异值分解成为降维、主成分分析、协同过滤、图像压缩、噪声去除等众多算法的理论基石。

本章系统介绍了奇异值分解的定义、紧型与截断形式、Eckart-Young 定理以及 Frobenius 范数意义下的低秩近似理论,并讨论了奇异值分解与特征值分解的关系。掌握这些内容将为后续学习主成分分析、因子分析等多元统计方法奠定坚实的矩阵理论基础。

14.7 公式汇总表

编号 公式名称 公式形式 说明 类型
(14.1) SVD分解 \(\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T\) 奇异值分解 定义
(14.2) 紧SVD \(\mathbf{A}_r = \mathbf{U}_r \boldsymbol{\Sigma}_r \mathbf{V}_r^T\) 保留r个奇异值 公式
(14.3) 截断SVD \(\hat{\mathbf{A}} = \sum_{i=1}^{k} \sigma_i \mathbf{u}_i \mathbf{v}_i^T\) 保留k个奇异值 公式
(14.4) Frobenius范数 \(\|\mathbf{A}\|_F = \sqrt{\sum_{i,j} a_{ij}^2} = \sqrt{\sum_{i} \sigma_i^2}\) Frobenius范数 范数
(14.5) Eckart-Young \(\min_{\hat{\mathbf{A}}, \text{rank}(\hat{\mathbf{A}})=k} \|\mathbf{A} - \hat{\mathbf{A}}\|_F^2 = \sum_{i=k+1}^{r} \sigma_i^2\) 最优低秩近似 理论
(14.6) 伪逆 \(\mathbf{A}^+ = \mathbf{V} \boldsymbol{\Sigma}^+ \mathbf{U}^T\) Moore-Penrose伪逆 公式