文章目录
系列第三篇:从“为什么存在”走向“怎样算、怎样取舍”
一、从前两篇走到这里
第一篇把矩阵看成一台“变形机器”:任意三维方形矩阵 A A A都会把输入空间中的单位球变成输出空间中的椭球。椭球的主轴来自一组特殊的输入方向 v i v_i vi;它们在输入端彼此正交,经过 A A A之后仍然彼此正交。每个方向被缩放为
A v i = σ i u i , Av_i=\sigma_i u_i, Avi=σiui,
其中, v i v_i vi是右奇异向量, σ i \sigma_i σi是缩放倍数, u i u_i ui是变换后的单位向量。把所有方向并排放在一起,就得到
A = U Σ V T . A=U\Sigma V^T. A=UΣVT.
顺着矩阵乘法从右往左看, V T V^T VT先把输入方向对齐到主轴, Σ \Sigma Σ沿各条主轴分别拉伸, U U U再把它们摆到输出空间中的位置。任何线性变换,都可以拆成“换一组正交坐标轴、沿轴缩放、再换一组正交坐标轴”。

第二篇继续追问:这样的方向为什么一定存在,又该从哪里找到?从单位球面上“寻找被 A A A拉伸最长的方向”出发,问题被转换成:
max ∥ v ∥ = 1 ∥ A v ∥ 2 = max ∥ v ∥ = 1 v T A T A v . \max_{\|v\|=1}\|Av\|^2 =\max_{\|v\|=1}v^TA^TAv. ∥v∥=1max∥Av∥2=∥v∥=1maxvTATAv.
拉格朗日乘子法把这个极值问题化成了特征方程
A T A v = λ v . A^TAv=\lambda v. ATAv=λv.
由于 A T A A^TA ATA是对称半正定矩阵,它拥有一组标准正交特征向量,并且所有特征值都非负。由此可以依次构造 SVD 的三个组成部分:
v i : A T A 的单位特征向量 , σ i = λ i , u i = A v i σ i . v_i:\ A^TA\text{ 的单位特征向量}, \qquad \sigma_i=\sqrt{\lambda_i}, \qquad u_i=\frac{Av_i}{\sigma_i}. vi: ATA 的单位特征向量,σi=λi,ui=σiAvi.
至此,前两篇建立的几何直觉与存在性证明已经落到具体的构造方法上。本文将把这一构造整理成计算步骤,再用一个具体矩阵走完整个过程;最后把 U Σ V T U\Sigma V^T UΣVT展开为一层层秩为 1 1 1的“信息薄片”,由此引出低秩近似。
二、把推导收成计算配方
- 给定矩阵 A ∈ R m × n A\in\mathbb{R}^{m\times n} A∈Rm×n,第二篇的推导可以整理为下面这套构造规则:
| 要求的量 | 计算方法 | 延续前文的几何含义 |
|---|---|---|
| 右奇异向量 v i v_i vi | 求 A T A A^TA ATA的单位特征向量 | 输入空间中那组“正交映成正交”的方向 |
| 奇异值 σ i \sigma_i σi | 对相应特征值开平方: σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi | 对应方向的缩放倍数,也是椭球主轴的半长 |
| 左奇异向量 u i u_i ui | 对 σ i > 0 \sigma_i>0 σi>0,令 u i = A v i / σ i u_i=Av_i/\sigma_i ui=Avi/σi | 输入主方向经过 A A A后,在输出空间中的单位方向 |
将 A T A A^TA ATA的特征值按从大到小排列,
λ 1 ≥ λ 2 ≥ ⋯ ≥ 0 , \lambda_1\geq\lambda_2\geq\cdots\geq 0, λ1≥λ2≥⋯≥0,
对应的奇异值也自然满足
σ 1 ≥ σ 2 ≥ ⋯ ≥ 0. \sigma_1\geq\sigma_2\geq\cdots\geq 0. σ1≥σ2≥⋯≥0.
排序并不是形式上的整理。到了低秩近似中,排在前面的方向还会成为最先被保留的信息层。
完整 SVD 的标准形式为:
A m × n = U m × m Σ m × n V n × n T . A_{m\times n}=U_{m\times m}\Sigma_{m\times n}V^T_{n\times n}. Am×n=Um×mΣm×nVn×nT.
U U U与 V V V都是正交矩阵:它们的列分别构成输出空间和输入空间的一组标准正交基。因此
U T U = U U T = I m , V T V = V V T = I n . U^TU=UU^T=I_m, \qquad V^TV=VV^T=I_n. UTU=UUT=Im,VTV=VVT=In.
Σ \Sigma Σ是一个 m × n m\times n m×n的“矩形对角矩阵”,奇异值依次放在主对角线上,其余位置均为零。SVD 给出 min ( m , n ) \min(m,n) min(m,n)个对角位置,其中真正非零的奇异值有
r = rank ( A ) r=\operatorname{rank}(A) r=rank(A)
个。若 σ i = 0 \sigma_i=0 σi=0,则 A v i = 0 Av_i=0 Avi=0,对应的 v i v_i vi落在 A A A的零空间中。

对非零奇异值,我们可以直接用 u i = A v i / σ i u_i=Av_i/\sigma_i ui=Avi/σi构造左奇异向量;如果完整的 U U U还缺少列,就在输出空间中寻找正交补,把已有的 u i u_i ui补成一组完整的标准正交基。完整 SVD 中 U U U和 V V V都是满秩的正交方阵;矩阵 A A A是否满秩,则由非零奇异值的个数决定。
因此计算的顺序是:
- 从 A T A A^TA ATA求出按特征值排序的 v i v_i vi;
- 令 σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi;
- 对每个 σ i > 0 \sigma_i>0 σi>0,用 u i = A v i / σ i u_i=Av_i/\sigma_i ui=Avi/σi顺着 v i v_i vi构造 u i u_i ui;
- 对剩余方向使用正交补。
这样每一组三元组 ( u i , σ i , v i ) (u_i,\sigma_i,v_i) (ui,σi,vi)都由关系 A v i = σ i u i Av_i=\sigma_i u_i Avi=σiui直接拴在一起,符号会自动匹配。
三、一个完整的计算示例
考虑矩阵
A = [ 3 2 2 3 2 − 2 ] . A= \begin{bmatrix} 3&2\\ 2&3\\ 2&-2 \end{bmatrix}. A= 32223−2 .
它把二维输入空间映射到三维输出空间,所以
A ∈ R 3 × 2 , U ∈ R 3 × 3 , Σ ∈ R 3 × 2 , V ∈ R 2 × 2 . A\in\mathbb{R}^{3\times 2}, \qquad U\in\mathbb{R}^{3\times 3}, \qquad \Sigma\in\mathbb{R}^{3\times 2}, \qquad V\in\mathbb{R}^{2\times 2}. A∈R3×2,U∈R3×3,Σ∈R3×2,V∈R2×2.

(一)计算 ATA
右奇异向量在二维输入空间中,因此先构造 2 × 2 2\times2 2×2的对称矩阵 A T A A^TA ATA:
A T A = [ 3 2 2 2 3 − 2 ] [ 3 2 2 3 2 − 2 ] = [ 17 8 8 17 ] \begin{aligned}A^TA&=\begin{bmatrix}3&2&2\\2&3&-2\end{bmatrix}\begin{bmatrix}3&2\\2&3\\2&-2\end{bmatrix}=\begin{bmatrix}17&8\\8&17\end{bmatrix}\end{aligned} ATA=[32232−2] 32223−2 =[178817]
(二)求右奇异向量与奇异值
特征方程为
det ( A T A − λ I ) = ∣ 17 − λ 8 8 17 − λ ∣ = ( 17 − λ ) 2 − 64 = λ 2 − 34 λ + 225 = 0. \begin{aligned} \det(A^TA-\lambda I) &= \begin{vmatrix} 17-\lambda&8\\ 8&17-\lambda \end{vmatrix}\\ &=(17-\lambda)^2-64\\ &=\lambda^2-34\lambda+225=0. \end{aligned} det(ATA−λI)= 17−λ8817−λ =(17−λ)2−64=λ2−34λ+225=0.
解得
λ 1 = 25 , λ 2 = 9. \lambda_1=25, \qquad \lambda_2=9. λ1=25,λ2=9.
因此奇异值为
σ 1 = 25 = 5 , σ 2 = 9 = 3. \sigma_1=\sqrt{25}=5, \qquad \sigma_2=\sqrt{9}=3. σ1=25=5,σ2=9=3.
这两个数正是 A A A沿两条输入主方向的缩放倍数。由于都不为零,矩阵 A A A的秩为 2 2 2。换成第一篇的几何语言,它没有把二维输入平面中的任何主方向彻底压扁。
接着求单位特征向量。
当 λ 1 = 25 \lambda_1=25 λ1=25时,解
( A T A − 25 I ) v = 0 (A^TA-25I)v=0 (ATA−25I)v=0
可取
v 1 = 1 2 [ 1 1 ] . v_1=\frac{1}{\sqrt2} \begin{bmatrix} 1\\ 1 \end{bmatrix}. v1=21[11].
当 λ 2 = 9 \lambda_2=9 λ2=9时,解
( A T A − 9 I ) v = 0 (A^TA-9I)v=0 (ATA−9I)v=0
可取
v 2 = 1 2 [ 1 − 1 ] . v_2=\frac{1}{\sqrt2} \begin{bmatrix} 1\\ -1 \end{bmatrix}. v2=21[1−1].
两者互相垂直,组成右奇异矩阵
V = [ 1 2 1 2 1 2 − 1 2 ] , V T = [ 1 2 1 2 1 2 − 1 2 ] . V= \begin{bmatrix} \frac1{\sqrt2}&\frac1{\sqrt2}\\[4pt] \frac1{\sqrt2}&-\frac1{\sqrt2} \end{bmatrix}, \qquad V^T= \begin{bmatrix} \frac1{\sqrt2}&\frac1{\sqrt2}\\[4pt] \frac1{\sqrt2}&-\frac1{\sqrt2} \end{bmatrix}. V=[212121−21],VT=[212121−21].
这里 V T = V V^T=V VT=V,只是这个具体例子的巧合,并不是 SVD 的一般性质。
按照奇异值的位置构造
Σ = [ 5 0 0 3 0 0 ] . \Sigma= \begin{bmatrix} 5&0\\ 0&3\\ 0&0 \end{bmatrix}. Σ= 500030 .
(三)顺着 V 构造 U
第一组输出方向为
u 1 = A v 1 σ 1 = 1 5 [ 5 / 2 5 / 2 0 ] = [ 1 / 2 1 / 2 0 ] \begin{aligned}u_1=\frac{Av_1}{\sigma_1}&=\frac{1}{5}\begin{bmatrix}5/\sqrt2\\5/\sqrt2\\0\end{bmatrix} =\begin{bmatrix} 1/\sqrt2\\ 1/\sqrt2\\ 0 \end{bmatrix} \end{aligned} u1=σ1Av1=51 5/25/20 = 1/21/20
它满足
A v 1 = 5 u 1 Av_1=5u_1 Av1=5u1
这句话与第一篇中的几何图像完全对应:输入方向 v 1 v_1 v1被 A A A拉伸 5 5 5倍,落到三维输出空间中的方向 u 1 u_1 u1上。
第二组输出方向为
u 2 = A v 2 σ 2 = 1 3 [ 1 / 2 − 1 / 2 4 / 2 ] = [ 1 / ( 3 2 ) − 1 / ( 3 2 ) 4 / ( 3 2 ) ] \begin{aligned} u_2 &=\frac{Av_2}{\sigma_2} =\frac{1}{3} \begin{bmatrix} 1/\sqrt2\\ -1/\sqrt2\\ 4/\sqrt2\end{bmatrix} =\begin{bmatrix} 1/(3\sqrt2)\\ -1/(3\sqrt2)\\ 4/(3\sqrt2) \end{bmatrix} \end{aligned} u2=σ2Av2=31 1/2−1/24/2 = 1/(32)−1/(32)4/(32)
同样有
A v 2 = 3 u 2 . Av_2=3u_2. Av2=3u2.
u 1 u_1 u1、 u 2 u_2 u2已经是三维输出空间中的两个正交单位向量。完整 SVD 需要把 U U U补成 3 × 3 3\times3 3×3的正交矩阵,所以还要找一个单位向量 u 3 u_3 u3,使它同时垂直于 u 1 u_1 u1和 u 2 u_2 u2。
设
u 3 = [ x y z ] u_3= \begin{bmatrix} x\\ y\\ z \end{bmatrix} u3= xyz
“同时垂直”意味着它与 u 1 u_1 u1、 u 2 u_2 u2的内积都等于零。先由 u 1 T u 3 = 0 u_1^Tu_3=0 u1Tu3=0得
u 1 T u 3 = [ 1 / 2 1 / 2 0 ] [ x y z ] = x + y 2 = 0 , \begin{aligned} u_1^Tu_3 &= \begin{bmatrix} 1/\sqrt2&1/\sqrt2&0 \end{bmatrix} \begin{bmatrix} x\\y\\z \end{bmatrix}\\ &=\frac{x+y}{\sqrt2}=0, \end{aligned} u1Tu3=[1/21/20] xyz =2x+y=0,
所以
y = − x . y=-x. y=−x.
再由 u 2 T u 3 = 0 u_2^Tu_3=0 u2Tu3=0得
u 2 T u 3 = [ 1 / ( 3 2 ) − 1 / ( 3 2 ) 4 / ( 3 2 ) ] [ x y z ] = x − y + 4 z 3 2 = 0. \begin{aligned} u_2^Tu_3 &= \begin{bmatrix} 1/(3\sqrt2)&-1/(3\sqrt2)&4/(3\sqrt2) \end{bmatrix} \begin{bmatrix} x\\y\\z \end{bmatrix}\\ &=\frac{x-y+4z}{3\sqrt2}=0. \end{aligned} u2Tu3=[1/(32)−1/(32)4/(32)] xyz =32x−y+4z=0.
代入 y = − x y=-x y=−x:
2 x + 4 z = 0 ⟹ z = − x 2 . 2x+4z=0 \qquad\Longrightarrow\qquad z=-\frac{x}{2}. 2x+4z=0⟹z=−2x.
因此,所有同时垂直于 u 1 u_1 u1、 u 2 u_2 u2的向量都可以写成
u 3 = x [ 1 − 1 − 1 / 2 ] . u_3=x \begin{bmatrix} 1\\ -1\\ -1/2 \end{bmatrix}. u3=x 1−1−1/2 .
最后要求 u 3 u_3 u3是单位向量,即 ∥ u 3 ∥ = 1 \|u_3\|=1 ∥u3∥=1:
∥ u 3 ∥ 2 = x 2 + ( − x ) 2 + ( − x 2 ) 2 = 9 4 x 2 = 1. \begin{aligned} \|u_3\|^2 &=x^2+(-x)^2+\left(-\frac{x}{2}\right)^2\\ &=\frac94x^2=1. \end{aligned} ∥u3∥2=x2+(−x)2+(−2x)2=49x2=1.
由此得到 x = ± 2 / 3 x=\pm2/3 x=±2/3。取 x = 2 / 3 x=2/3 x=2/3,便有
u 3 = [ 2 / 3 − 2 / 3 − 1 / 3 ] . u_3= \begin{bmatrix} 2/3\\ -2/3\\ -1/3 \end{bmatrix}. u3= 2/3−2/3−1/3 .
于是有:
U = [ 1 / 2 1 / ( 3 2 ) 2 / 3 1 / 2 − 1 / ( 3 2 ) − 2 / 3 0 4 / ( 3 2 ) − 1 / 3 ] . U= \begin{bmatrix} 1/\sqrt2&1/(3\sqrt2)&2/3\\ 1/\sqrt2&-1/(3\sqrt2)&-2/3\\ 0&4/(3\sqrt2)&-1/3 \end{bmatrix}. U= 1/21/201/(32)−1/(32)4/(32)2/3−2/3−1/3 .
(四)拼回并验证分解
现在三部分已经齐全:
U ≈ [ 0.7071 0.2357 0.6667 0.7071 − 0.2357 − 0.6667 0 0.9428 − 0.3333 ] , Σ = [ 5 0 0 3 0 0 ] , V T ≈ [ 0.7071 0.7071 0.7071 − 0.7071 ] . U\approx \begin{bmatrix} 0.7071&0.2357&0.6667\\ 0.7071&-0.2357&-0.6667\\ 0&0.9428&-0.3333 \end{bmatrix}, \qquad\Sigma= \begin{bmatrix} 5&0\\ 0&3\\ 0&0 \end{bmatrix}, \qquad V^T\approx \begin{bmatrix} 0.7071&0.7071\\ 0.7071&-0.7071 \end{bmatrix}. U≈ 0.70710.707100.2357−0.23570.94280.6667−0.6667−0.3333 ,Σ= 500030 ,VT≈[0.70710.70710.7071−0.7071].
将它们相乘,得到
U Σ V T = [ 3 2 2 3 2 − 2 ] = A . U\Sigma V^T =\begin{bmatrix} 3&2\\ 2&3\\ 2&-2 \end{bmatrix} =A. UΣVT= 32223−2 =A.
手算过程由此闭合。从 A T A A^TA ATA找到输入主方向,对特征值开根号得到缩放倍数,再把每条输入方向送过 A A A,便能构造出与之配对的输出方向。第二篇的存在性推导由此转化为一套完整的计算路径。
四、从矩阵乘积到信息薄片
前三步“ V T V^T VT对齐、 Σ \Sigma Σ缩放、 U U U摆放”解释了 A A A如何作用于空间。若把矩阵乘积按列展开,同一个 SVD 还会显露出另一层结构:
A = U Σ V T = ∑ i = 1 r σ i u i v i T . A=U\Sigma V^T =\sum_{i=1}^{r}\sigma_i u_iv_i^T. A=UΣVT=i=1∑rσiuiviT.
这个求和式把第一篇开头的“信息分解”写成了精确的代数形式:
A = σ 1 u 1 v 1 T ⏟ 第一层,权重最大 + σ 2 u 2 v 2 T ⏟ 第二层 + ⋯ + σ r u r v r T ⏟ 第 r 层 . A =\underbrace{\sigma_1u_1v_1^T}_{\text{第一层,权重最大}} +\underbrace{\sigma_2u_2v_2^T}_{\text{第二层}} +\cdots +\underbrace{\sigma_ru_rv_r^T}_{\text{第 }r\text{ 层}}. A=第一层,权重最大 σ1u1v1T+第二层 σ2u2v2T+⋯+第 r 层 σrurvrT.
其中,每个外积 u i v i T u_iv_i^T uiviT都是一个秩 1 1 1矩阵;乘上权重 σ i \sigma_i σi后,就形成一张最薄的“信息薄片”。 v i v_i vi决定这一层从输入空间的哪个方向读取信息, u i u_i ui决定它写入输出空间的哪个方向, σ i \sigma_i σi则决定这一层的强弱。作用在向量 x x x上时,矩阵的作用可以写成
A x = ∑ i = 1 r σ i ( v i T x ) u i . Ax=\sum_{i=1}^{r}\sigma_i(v_i^Tx)u_i. Ax=i=1∑rσi(viTx)ui.
这里, v i T x v_i^Tx viTx先读出 x x x在第 i i i个输入方向上的分量, σ i \sigma_i σi对它进行缩放, u i u_i ui再把结果写入输出空间。复杂的矩阵变换由此被拆成若干条互不干扰的信息通道。

接下来需要回答一个关键问题:这些薄片究竟有多大,又该怎样比较它们?为此,把矩阵看成由所有元素排成的长向量,并定义 Frobenius 范数与 Frobenius 内积:
∥ A ∥ F = ∑ i = 1 m ∑ j = 1 n a i j 2 , ⟨ X , Y ⟩ F = ∑ i = 1 m ∑ j = 1 n x i j y i j . \|A\|_F=\sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n}a_{ij}^2}, \qquad \langle X,Y\rangle_F=\sum_{i=1}^{m}\sum_{j=1}^{n}x_{ij}\,y_{ij}. ∥A∥F=i=1∑mj=1∑naij2,⟨X,Y⟩F=i=1∑mj=1∑nxijyij.
在这个定义下,不同薄片两两正交:
⟨ u i v i T , u j v j T ⟩ F = ( u i T u j ) ( v i T v j ) = 0 , i ≠ j . \left\langle u_iv_i^T,u_jv_j^T\right\rangle_F =(u_i^Tu_j)(v_i^Tv_j)=0, \qquad i\ne j. ⟨uiviT,ujvjT⟩F=(uiTuj)(viTvj)=0,i=j.
每张加权薄片的 Frobenius 范数则恰好等于相应的奇异值:
∥ σ i u i v i T ∥ F = σ i . \|\sigma_i u_iv_i^T\|_F=\sigma_i. ∥σiuiviT∥F=σi.
因此,按 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 \sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0 σ1≥σ2≥⋯≥σr>0排列奇异值,也就等于按薄片的 Frobenius 范数从大到小排列。由于这些薄片彼此正交,矩阵整体的范数平方还可以像勾股定理一样逐层相加:
∥ A ∥ F 2 = ∥ ∑ i = 1 r σ i u i v i T ∥ F 2 = ∑ i = 1 r σ i 2 . \|A\|_F^2 =\Bigl\|\sum_{i=1}^{r}\sigma_i u_iv_i^T\Bigr\|_F^2 =\sum_{i=1}^{r}\sigma_i^2. ∥A∥F2= i=1∑rσiuiviT F2=i=1∑rσi2.
这说明 σ i 2 \sigma_i^2 σi2是第 i i i张薄片对矩阵总能量的贡献。既然各层已经按贡献从大到小排好,一个自然的问题随之出现:如果只保留最前面的几层,能否用更简单的矩阵抓住 A A A的主要结构?
五、为什么可以只保留前几层
上一节已经把矩阵拆成按贡献从大到小排列的正交薄片。低秩近似顺着这个结构做一件很直接的事:保留前面的强模式,舍弃后面的弱模式,用较低秩的矩阵逼近原矩阵。

(一)完整、紧致与截断 SVD
在真正舍弃信息之前,需要先区分三种容易混淆的写法。
完整 SVD 会把 U U U和 V V V的正交基全部补齐;紧致 SVD 只保留与非零奇异值配对的 r r r组方向,去掉纯粹用于补基的零方向。二者虽然尺寸不同,却都能精确重构 A A A。
在前面的例子中, A ∈ R 3 × 2 A\in\mathbb{R}^{3\times2} A∈R3×2且 r = 2 r=2 r=2。完整 SVD 中的 U U U有三列,但第三列只用于补全输出空间的正交基。删去这一列得到
A = U 2 [ 5 0 0 3 ] V T , A=U_2 \begin{bmatrix} 5&0\\ 0&3 \end{bmatrix} V^T, A=U2[5003]VT,
这仍然是等式,因此属于紧致 SVD,而不是低秩近似。
只有继续取 k < r k<r k<r,舍弃一部分非零奇异值,才得到截断 SVD:
A k = ∑ i = 1 k σ i u i v i T = U k Σ k V k T , A ≈ A k \boxed{ A_k=\sum_{i=1}^{k}\sigma_i u_iv_i^T =U_k\Sigma_kV_k^T, \qquad A\approx A_k } Ak=i=1∑kσiuiviT=UkΣkVkT,A≈Ak

A k A_k Ak的秩不超过 k k k。它保留了前 k k k张权重最大的薄片,而被舍弃的部分为
A − A k = ∑ i = k + 1 r σ i u i v i T . A-A_k=\sum_{i=k+1}^{r}\sigma_i u_iv_i^T. A−Ak=i=k+1∑rσiuiviT.
由于保留部分和舍弃部分都由正交薄片组成,截断效果可以从两个互补角度衡量。一个看“留下了多少”,即能量保留比例
η k = ∑ i = 1 k σ i 2 ∑ i = 1 r σ i 2 . \eta_k= \frac{\sum_{i=1}^{k}\sigma_i^2} {\sum_{i=1}^{r}\sigma_i^2}. ηk=∑i=1rσi2∑i=1kσi2.
另一个看“丢掉了多少”,即 Frobenius 重构误差
∥ A − A k ∥ F = ∑ i = k + 1 r σ i 2 . \|A-A_k\|_F =\sqrt{\sum_{i=k+1}^{r}\sigma_i^2}. ∥A−Ak∥F=i=k+1∑rσi2.
这两个指标来自同一个正交分解: η k \eta_k ηk越接近 1 1 1,尾部奇异值的平方和就越小, A k A_k Ak也越接近 A A A。
回到前面的例子,矩阵只有两张薄片:
A = 5 u 1 v 1 T + 3 u 2 v 2 T . A=5u_1v_1^T+3u_2v_2^T. A=5u1v1T+3u2v2T.
取 k = 1 k=1 k=1时,只保留第一张薄片,得到
A 1 = 5 u 1 v 1 T = [ 5 / 2 5 / 2 5 / 2 5 / 2 0 0 ] . \begin{aligned} A_1 &=5u_1v_1^T\\ &= \begin{bmatrix} 5/2&5/2\\ 5/2&5/2\\ 0&0 \end{bmatrix}. \end{aligned} A1=5u1v1T= 5/25/205/25/20 .
第二张薄片正是被舍弃的全部,因此
∥ A − A 1 ∥ F = σ 2 = 3 , \|A-A_1\|_F=\sigma_2=3, ∥A−A1∥F=σ2=3,
而保留的能量比例为
η 1 = σ 1 2 σ 1 2 + σ 2 2 = 25 34 ≈ 73.53 % . \eta_1 =\frac{\sigma_1^2}{\sigma_1^2+\sigma_2^2} =\frac{25}{34} \approx73.53\%. η1=σ12+σ22σ12=3425≈73.53%.
这个例子把截断的取舍具体化了:用秩 1 1 1矩阵代替原来的秩 2 2 2矩阵,换来更简单的表示,同时承担大小为 3 3 3的 Frobenius 误差。
(二)压缩和去噪
截断 SVD 的价值来自同一件事:它用少数强模式代替原矩阵,同时舍弃较弱的尾部模式。
在压缩中,只需存储 U k U_k Uk、 k k k个奇异值和 V k V_k Vk。它们一共包含
m k + k + n k = k ( m + n + 1 ) mk+k+nk=k(m+n+1) mk+k+nk=k(m+n+1)
个标量。只有当 k ( m + n + 1 ) < m n k(m+n+1)<mn k(m+n+1)<mn时,参数数量才少于直接存储 A A A所需的 m n mn mn个标量;实际文件大小还会受到量化精度、编码方式和格式开销的影响。
在去噪中,如果噪声主要分散在小奇异值对应的弱模式里,截断就会在保留主体结构的同时滤去部分噪声。
下面的动图展示了随着 k k k增大,主要轮廓和细节如何逐层恢复。

k k k的选择因此是一种取舍:较小的 k k k带来更强的压缩或平滑效果,但也会增大重构误差;较大的 k k k保留更多细节,却需要更多参数。能量比例 η k \eta_k ηk可以提供定量参考,但不能把“小奇异值”直接等同于“噪声”,因为真实而细微的结构也可能落在尾部模式中。
(三)最优低秩近似
现在还剩最后一个问题:在所有秩不超过 k k k的候选矩阵中,为什么偏偏保留前 k k k张薄片?
Eckart–Young 定理给出了答案。在所有秩不超过 k k k的矩阵 B B B中,截断 SVD 得到的 A k A_k Ak满足
∥ A − A k ∥ F = min rank ( B ) ≤ k ∥ A − B ∥ F = σ k + 1 2 + ⋯ + σ r 2 . \|A-A_k\|_F =\min_{\operatorname{rank}(B)\leq k}\|A-B\|_F =\sqrt{\sigma_{k+1}^2+\cdots+\sigma_r^2}. ∥A−Ak∥F=rank(B)≤kmin∥A−B∥F=σk+12+⋯+σr2.
因此,按奇异值从大到小截断并非经验规则,而是 Frobenius 范数下固定秩的最优选择。若尾部奇异值迅速衰减,少数薄片就足以逼近原矩阵;若奇异值下降缓慢,信息分散在许多方向上,任何低秩表示都会承担较大的误差。
回顾三篇文章,第一篇用几何图像解释矩阵“做了什么”,第二篇从极值问题说明奇异方向“为什么存在”,本篇则把这些方向算出来,并进一步说明怎样按奇异值取舍信息。从 A T A A^TA ATA的特征向量,到 U Σ V T U\Sigma V^T UΣVT的构造,再到正交秩 1 1 1薄片和最优截断,SVD 的几何直觉、计算方法与低秩近似由此连成了一条完整的主线。
系列文章目录
1、 深入理解主成分分析(PCA)
2、SVD 的核心思想及几何理解
3、SVD 公式推导
4、SVD的计算和低秩近似


被折叠的 条评论
为什么被折叠?



