在之前的章节中,我们一直在追求矩阵的对角化。
然而,对角化(尤其是正交对角化)对矩阵的要求非常苛刻:

  • 必须是方阵
  • 必须有足够的特征向量
  • 若要正交对角化,甚至必须是正规矩阵(实对称矩阵)

现实世界中的数据矩阵往往是长方形的(m×nm \times n),且未必具备良好的对称性。
是否存在一种通用的 “对角化”,可以适用于任意矩阵,并且保持正交变换的优良性质?
答案是肯定的,这就是线性代数中最伟大的定理之一:奇异值分解

# 奇异值的引入

对于任意 m×nm \times n 矩阵 AA,我们虽然不能直接讨论特征值(因为 AxA \boldsymbol xx\boldsymbol x 维度不同),但我们可以通过构造方阵来 “借用” 谱理论的成果。

考虑两个对称矩阵:

  • ATAA^T An×nn \times n 实对称矩阵(且半正定)
  • AATA A^Tm×mm \times m 实对称矩阵(且半正定)

ATAA^T A 为例,根据实对称矩阵的性质,它必然可以被正交对角化,且特征值均为非负实数。
ATAA^T A 的特征值为 λ1λ2λn0\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_n \geq 0

定义
AAm×nm \times n 实矩阵,λ1,,λn\lambda_1, \dots, \lambda_nATAA^T A 的特征值。

σi=λi,i=1,,n\sigma_i = \sqrt{\lambda_i}, \quad i = 1, \dots, n

为矩阵 AA奇异值 (Singular Value)「特異値」

  • 通常将奇异值按降序排列:σ1σ2σr>0==0\sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r > 0 = \dots = 0
  • 其中非零奇异值的个数 rr 正是矩阵的秩 rank(A)\mathrm{rank}(A)

奇异值的几何意义是:矩阵 AA 将单位球映射为椭球后,椭球各个半轴的长度。

# SVD 定理与几何意义

SVD 揭示了线性变换 A:RnRmA: \mathbb{R}^n \to \mathbb{R}^m 的本质结构:
旋转 (Rotation) \to 拉伸 (Stretching) \to 旋转 (Rotation)

定理 奇异值分解 (SVD)
AAm×nm \times n 实矩阵,且 rank(A)=r\mathrm{rank}(A) = r
则存在 mm 阶正交矩阵 UUnn 阶正交矩阵 VV,使得

A=UΣVTA = U \Sigma V^T

其中 Σ\Sigmam×nm \times n 的 “对角” 矩阵(只有主对角线有元素):

Σ=(DOOO)m×n,D=diag(σ1,σ2,,σr)\Sigma = \begin{pmatrix} D & O \\ O & O \end{pmatrix}_{m \times n}, \quad D = \mathrm{diag}(\sigma_1, \sigma_2, \dots, \sigma_r)

σ1σ2σr>0\sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r > 0AA 的非零奇异值。

  • UU 的列向量 ui\boldsymbol u_i 称为 左奇异向量 (Left Singular Vector)「左特異ベクトル」
  • VV 的列向量 vi\boldsymbol v_i 称为 右奇异向量 (Right Singular Vector)「右特異ベクトル」

该定理指出,任意矩阵都可以分解为三个矩阵的乘积:

A=(u1um)U(σ1σr0)Σ(v1TvnT)VTA = \underbrace{(\boldsymbol u_1 \dots \boldsymbol u_m)}_{U} \underbrace{\begin{pmatrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_r \\ & & & 0 \end{pmatrix}}_{\Sigma} \underbrace{\begin{pmatrix} \boldsymbol v_1^T \\ \vdots \\ \boldsymbol v_n^T \end{pmatrix}}_{V^T}

这也意味着,我们总可以找到两组正交归一基(定义域中的 VV 和陪域中的 UU),使得 AA 在这两组基下的矩阵表示为对角阵 Σ\Sigma
即:

Avi={σiui(1ir)0(i>r)A \boldsymbol v_i = \begin{cases} \sigma_i \boldsymbol u_i & (1 \leq i \leq r) \\ \boldsymbol 0 & (i > r) \end{cases}

# 构造与证明

SVD 的证明过程实际上就是构造 UUVV 的过程。

证明

第一步:构造 VV
由于 ATAA^T A 是实对称矩阵,存在 nn 阶正交矩阵 V=(v1,,vn)V = (\boldsymbol v_1, \dots, \boldsymbol v_n) 使得

VT(ATA)V=diag(λ1,,λn)V^T (A^T A) V = \mathrm{diag}(\lambda_1, \dots, \lambda_n)

其中 λ1λr>0\lambda_1 \geq \dots \geq \lambda_r > 0,而 λr+1==λn=0\lambda_{r+1} = \dots = \lambda_n = 0
此时 {v1,,vn}\{\boldsymbol v_1, \dots, \boldsymbol v_n\}Rn\mathbb{R}^n 的一组正交归一基。

第二步:观察 AviA \boldsymbol v_i 的正交性
对于 iji \neq j,计算向量 AviA \boldsymbol v_iAvjA \boldsymbol v_j 的内积:

Avi,Avj=(Avi)T(Avj)=viTATAvj=viT(λjvj)=λjviTvj=0(因 vivj)\begin{aligned} \langle A \boldsymbol v_i, A \boldsymbol v_j \rangle &= (A \boldsymbol v_i)^T (A \boldsymbol v_j) \\ &= \boldsymbol v_i^T A^T A \boldsymbol v_j \\ &= \boldsymbol v_i^T (\lambda_j \boldsymbol v_j) \\ &= \lambda_j \boldsymbol v_i^T \boldsymbol v_j = 0 \quad (\text{因 } \boldsymbol v_i \perp \boldsymbol v_j) \end{aligned}

这说明 {Av1,,Avn}\{A \boldsymbol v_1, \dots, A \boldsymbol v_n\} 是一组正交向量。

第三步:计算模长与归一化

Avi2=Avi,Avi=λi=σi2\|A \boldsymbol v_i\|^2 = \langle A \boldsymbol v_i, A \boldsymbol v_i \rangle = \lambda_i = \sigma_i^2

对于 1ir1 \leq i \leq rσi>0\sigma_i > 0,定义单位向量

ui:=1σiAvi\boldsymbol u_i := \frac{1}{\sigma_i} A \boldsymbol v_i

此时 {u1,,ur}\{\boldsymbol u_1, \dots, \boldsymbol u_r\}Rm\mathbb{R}^m 中的一组正交归一向量。
对于 i>ri > rAvi2=0    Avi=0\|A \boldsymbol v_i\|^2 = 0 \implies A \boldsymbol v_i = \boldsymbol 0

第四步:扩充 UU
利用 Gram-Schmidt 方法将 {u1,,ur}\{\boldsymbol u_1, \dots, \boldsymbol u_r\} 扩充为 Rm\mathbb{R}^m 的正交归一基 {u1,,ur,ur+1,,um}\{\boldsymbol u_1, \dots, \boldsymbol u_r, \boldsymbol u_{r+1}, \dots, \boldsymbol u_m\}
构造正交矩阵 U=(u1um)U = (\boldsymbol u_1 \dots \boldsymbol u_m)

第五步:验证分解
计算 UTAVU^T A V 的元素 (UTAV)ij=uiTAvj(U^T A V)_{ij} = \boldsymbol u_i^T A \boldsymbol v_j

  • 1jr1 \leq j \leq r 时:Avj=σjujA \boldsymbol v_j = \sigma_j \boldsymbol u_j
    uiT(σjuj)=σjδij\boldsymbol u_i^T (\sigma_j \boldsymbol u_j) = \sigma_j \delta_{ij}
    即只有对角元 (i,i)(i,i)σi\sigma_i
  • j>rj > r 时:Avj=0A \boldsymbol v_j = \boldsymbol 0
    uiT0=0\boldsymbol u_i^T \boldsymbol 0 = 0

综上,UTAV=ΣU^T A V = \Sigma,即 A=UΣVTA = U \Sigma V^T
\square


通过 SVD,我们可以完美地看清矩阵的四个基本子空间的结构:

命题 SVD 与子空间
A=UΣVTA = U \Sigma V^T,其中 σ1σr>0\sigma_1 \dots \sigma_r > 0

  1. 列空间 C(A)C(A):由 UU 的前 rr{u1,,ur}\{\boldsymbol u_1, \dots, \boldsymbol u_r\} 张成。
  2. 左零空间 N(AT)N(A^T):由 UU 的后 mrm-r{ur+1,,um}\{\boldsymbol u_{r+1}, \dots, \boldsymbol u_m\} 张成。
  3. 行空间 C(AT)C(A^T):由 VV 的前 rr{v1,,vr}\{\boldsymbol v_1, \dots, \boldsymbol v_r\} 张成。
  4. 零空间 N(A)N(A):由 VV 的后 nrn-r{vr+1,,vn}\{\boldsymbol v_{r+1}, \dots, \boldsymbol v_n\} 张成。

示例
求矩阵

A=(110011)A = \begin{pmatrix} 1 & 1 \\ 0 & 0 \\ 1 & 1 \end{pmatrix}

的奇异值分解。

这是一个 3×23 \times 2 矩阵。
1. 计算 ATAA^T A 及其特征值(求 VVΣ\Sigma

ATA=(101101)(110011)=(2222)A^T A = \begin{pmatrix} 1 & 0 & 1 \\ 1 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 & 1 \\ 0 & 0 \\ 1 & 1 \end{pmatrix} = \begin{pmatrix} 2 & 2 \\ 2 & 2 \end{pmatrix}

特征多项式 det(λEATA)=λ24λ=λ(λ4)\det(\lambda E - A^T A) = \lambda^2 - 4\lambda = \lambda(\lambda - 4)
特征值:λ1=4,λ2=0\lambda_1 = 4, \lambda_2 = 0
奇异值:σ1=4=2,σ2=0\sigma_1 = \sqrt{4} = 2, \sigma_2 = 0。秩 r=1r=1
Σ=(200000)\Sigma = \begin{pmatrix} 2 & 0 \\ 0 & 0 \\ 0 & 0 \end{pmatrix}

对应 λ1=4\lambda_1 = 4 的单位特征向量:v1=12(11)\boldsymbol v_1 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix}
对应 λ2=0\lambda_2 = 0 的单位特征向量:v2=12(11)\boldsymbol v_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} -1 \\ 1 \end{pmatrix}
V=12(1111)V = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & -1 \\ 1 & 1 \end{pmatrix}

2. 计算 UU
对于非零奇异值 σ1=2\sigma_1 = 2,计算 u1\boldsymbol u_1

u1=1σ1Av1=12(110011)12(11)=122(202)=(12012)\boldsymbol u_1 = \frac{1}{\sigma_1} A \boldsymbol v_1 = \frac{1}{2} \begin{pmatrix} 1 & 1 \\ 0 & 0 \\ 1 & 1 \end{pmatrix} \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \frac{1}{2\sqrt{2}} \begin{pmatrix} 2 \\ 0 \\ 2 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ 0 \\ \frac{1}{\sqrt{2}} \end{pmatrix}

扩充 u1\boldsymbol u_1R3\mathbb{R}^3 的标准正交基。
我们需要找两个与 u1\boldsymbol u_1 正交的单位向量。
显然 u2=(010)\boldsymbol u_2 = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} 是一个。
再找 u3\boldsymbol u_3,可以选 u1×u2\boldsymbol u_1 \times \boldsymbol u_2 或者观察法:
u3=(12012)\boldsymbol u_3 = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ 0 \\ -\frac{1}{\sqrt{2}} \end{pmatrix}
U=(1201201012012)U = \begin{pmatrix} \frac{1}{\sqrt{2}} & 0 & \frac{1}{\sqrt{2}} \\ 0 & 1 & 0 \\ \frac{1}{\sqrt{2}} & 0 & -\frac{1}{\sqrt{2}} \end{pmatrix}

3. 组合结果

A=(1201201012012)(200000)(12121212)A = \begin{pmatrix} \frac{1}{\sqrt{2}} & 0 & \frac{1}{\sqrt{2}} \\ 0 & 1 & 0 \\ \frac{1}{\sqrt{2}} & 0 & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 2 & 0 \\ 0 & 0 \\ 0 & 0 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix}

注意最后的 VTV^TVV 的转置。
\square

# 低秩近似与 Eckart-Young 定理

SVD 还可以写成加法分解的形式:

A=i=1rσiuiviTA = \sum_{i=1}^r \sigma_i \boldsymbol u_i \boldsymbol v_i^T

这表明 AArr 个秩为 1 的矩阵的加权和,权重就是奇异值。
由于 σ1\sigma_1 最大,第一项包含了 AA 最大的 “能量” 或信息。
如果我们只保留前 kk 项(k<rk < r),就得到了矩阵 AA 的最佳低秩近似。

定理 Eckart-Young 定理
Ak=i=1kσiuiviTA_k = \sum_{i=1}^k \sigma_i \boldsymbol u_i \boldsymbol v_i^T
则对于任意秩为 kk 的矩阵 BB,都有

AAkFABF\|A - A_k\|_F \leq \|A - B\|_F

AkA_k 是 Frobenius 范数意义下,最接近 AA 的秩 kk 矩阵。

  • 这就是图像压缩的原理:仅存储前 kk 个奇异值和对应的向量,就可以还原出图像的主要特征,丢弃的通常是噪音或细节。

内容已经过 Gemini 3.0 Pro 审查