SVD的计算和低秩近似

系列第三篇:从“为什么存在”走向“怎样算、怎样取舍”

一、从前两篇走到这里

第一篇把矩阵看成一台“变形机器”:任意三维方形矩阵 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=1maxAv2=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的“信息薄片”,由此引出低秩近似。

二、把推导收成计算配方

  1. 给定矩阵 A ∈ R m × n A\in\mathbb{R}^{m\times n} ARm×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λ20,

对应的奇异值也自然满足

σ 1 ≥ σ 2 ≥ ⋯ ≥ 0. \sigma_1\geq\sigma_2\geq\cdots\geq 0. σ1σ20.

排序并不是形式上的整理。到了低秩近似中,排在前面的方向还会成为最先被保留的信息层。

完整 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是否满秩,则由非零奇异值的个数决定。

因此计算的顺序是:

  1. A T A A^TA ATA求出按特征值排序的 v i v_i vi
  2. σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi
  3. 对每个 σ 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
  4. 对剩余方向使用正交补。

这样每一组三元组 ( 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= 322232 .

它把二维输入空间映射到三维输出空间,所以

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}. AR3×2,UR3×3,ΣR3×2,VR2×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=[322322] 322232 =[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λ)264=λ234λ+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 (ATA25I)v=0

可取

v 1 = 1 2 [ 1 1 ] . v_1=\frac{1}{\sqrt2} \begin{bmatrix} 1\\ 1 \end{bmatrix}. v1=2 1[11].

λ 2 = 9 \lambda_2=9 λ2=9时,解

( A T A − 9 I ) v = 0 (A^TA-9I)v=0 (ATA9I)v=0

可取

v 2 = 1 2 [ 1 − 1 ] . v_2=\frac{1}{\sqrt2} \begin{bmatrix} 1\\ -1 \end{bmatrix}. v2=2 1[11].

两者互相垂直,组成右奇异矩阵

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=[2 12 12 12 1],VT=[2 12 12 12 1].

这里 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/2 5/2 0 = 1/2 1/2 0

它满足

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/2 4/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/2 1/2 0] xyz =2 x+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 =32 xy+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=0z=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 111/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} u32=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/32/31/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/2 1/2 01/(32 )1/(32 )4/(32 )2/32/31/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.23570.23570.94280.66670.66670.3333 ,Σ= 500030 ,VT[0.70710.70710.70710.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= 322232 =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=1rσ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=1rσ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}. AF=i=1mj=1naij2 ,X,YF=i=1mj=1nxijyij.

在这个定义下,不同薄片两两正交:

⟨ 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,ujvjTF=(uiTuj)(viTvj)=0,i=j.

每张加权薄片的 Frobenius 范数则恰好等于相应的奇异值:

∥ σ i u i v i T ∥ F = σ i . \|\sigma_i u_iv_i^T\|_F=\sigma_i. σiuiviTF=σ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. AF2= i=1rσiuiviT F2=i=1rσ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} AR3×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=1kσiuiviT=UkΣkVkT,AAk

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. AAk=i=k+1rσ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σi2i=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}. AAkF=i=k+1rσ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, AA1F=σ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=342573.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}. AAkF=rank(B)kminABF=σ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的计算和低秩近似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值