前置知识
见另一篇博客:谱定理的证明
奇异值分解(SVD)
奇异值分解(singular value decomposition, SVD),说的是任意矩阵A∈Cm×n,都可以分解成以下形式
A=u1σ1v1∗+u2σ2v2∗+⋯+urσrvr∗=(u1…u2um)(diag(σ1,σ2,…,σr)000)v1∗v2∗⋮vn∗=UΣV∗
其中r是矩阵A的秩,u1,u2,…,um为AA∗的特征向量,v1,v2,…vn为A∗A的特征向量
U和V满足
U∗UV∗V=I=I
即U和V均为酉矩阵。
且σ1≥σ2≥⋯≥σr>σr+1=σr+2=⋯=σn=0。
奇异值分解表明了任意矩阵都可以拆分成r个秩为1的矩阵之和。酉矩阵表明u1和v1的长度均为1。则σi的大小描述了拆分成的这个矩阵的重要程度,σi越大,说明uiσivi∗这一项越重要。这就揭示了奇异值分解在数据降维、图像压缩、统计分析(如:主成分分析)方面大有用处。
优势
相比于特征值分解,奇异值分解的优势多多。
- 对矩阵的要求少
特征值分解要求A为方阵,且可对角化。而奇异值分解对A没有什么限制。
- 稳定性
当A中一个值微小的改变时,特征值分解的Λ可能会发生比较大的改变。但是奇异值分解的Σ只会发生很小的改变。并且这些改变都发生在靠后的、σi更小的项里。
截取k项
由于σi的大小是从大到小排列,因此我们可以只取前面k项,得到
u1σ1v1∗+u2σ2v2∗+⋯+ukσkvk∗=UkΣkVk∗
其中Uk为m×k矩阵,Σk为k×k对角阵,V为n×k矩阵。
当k=r时,则
A=UkΣkVk∗
仍然成立,此时相当于对A进行了无损压缩。
当k<r时,σ1最小的r−k项被舍弃了,但是得到的新矩阵和原来的矩阵仍然是相近的,相当于一个有损压缩。
A≈UkΣkVk∗
显然,新矩阵的秩为k,此时相当于做了一个数据降维。
存在性证明
引理1:对称矩阵均为半正定矩阵(半正定矩阵:特征值均非负的矩阵)
先证明λ为实数
S∗Sx⇒x∗Sx∗(Sx)(x∗S)x(λ−λ)∣x∣2=S=λx=λx∗=λx∗x=λ∣x∣2=λx∗x=λ∣x∣2=0
又因为特征向量x非零,得λ=λ,即λ为实数
再证明λ非负
x∗A∗Ax∣Ax∣2∣λ∣2=(λx∗)(λx)=∣λ∣2∣x2∣=∣x∣2∣Ax∣2≥0
引理2:rank(A∗A)=rank(AA∗)=r
由Ax=0⇒A∗Ax=0得
N(A∗A)⊂N(A)
若A∗Ax=0,则
x∗A∗AX=(Ax)∗Ax=∣Ax∣2=0
Ax=0
所以
N(A)⊂N(A∗A)
有
N(A)dimN(A)n−rank(A)rank(A)=N(A∗A)=dimN(A∗A)=n−rank(A∗A)=rank(A∗A)
同理可证明rank(A∗)=rank(AA∗),故原式成立
引理3:A∗A和AA∗均有r个相同的正特征值。
首先证明均有r个特征值:
由于A∗A为对称矩阵,由于对称矩阵一定是正规矩阵,由谱定理有
A∗A=UΛU∗
由引理1,特征值不可能为负。且Λ中非零元素个数其实就是rank(Λ)
则正特征值个数rank(Λ)=rank(A∗A)>
对AA∗同理
再证明A∗A的正特征值也是AA∗的正特征值:
A∗AxAA∗AxAA∗(Ax)=λx=λAx=λ(Ax)
由λ=0得Ax=0,故Ax是A∗A的一个特征向量,对应的特征值为λ。
反之可证AA的正特征值也是A∗A的特征值,则两矩阵拥有相同的一组正特征值。
由引理3,我们设这一组相同的特征值为λi(i≤r)并从大到小排列,λ1≥λ2≥⋯≥λr>λr+1=λr+2=⋯=λm=0。
证明是构造性的
对A∗A谱分解可以求出V和λi,设V的第i列为vi,对应特征值λi。
设V=(VrV0),前r列为Vr,剩下m−r列为V0。
U=(UrU0),前r列为Ur,剩下n−r列为U0。
当i>r时,由A∗Avi=0两边左乘以vi∗,易得Avi=0,故有AV0=0。
等价变换原式
AAVA(VrV0)AVr=UΣV∗=UΣ=(UrU0)(Σr000)=UrΣr(1)(2)
再令
σiΣr=λi=diag(σ1,σ2,…,σr)
Vr、Σr均已构造出来,则只需构造符合(1)的Ur,且ui(i≤r)满足以下条件:
- ui为单位向量。
- ui⊥uj(i=j)。
- ui是AA∗的特征向量。
令ui=σi1Avi,下面证明其满足三个条件
1.
ui∗ui=σi21vi∗A∗Avi=λi1vi∗λivi=1
2.
ui∗uj=σiσj1vi∗A∗Avj=σiσj1vi∗vj
由vi和vj正交知上式等于0,即ui和uj也正交。
3.
AA∗ui=σi1AA∗Avi=σiAvi=λiui
证毕。
与四个基本子空间的关系
Vr=(v1,v2,…,vn)是A的行空间C(A∗)的一组标准正交基;
V0=(vr,vr+1,…,vn)是A的零空间N(A)的一组标准正交基;
Ur=(u1,u2,…,uu)是A的列空间C(A)的一组标准正交基;
U0=(ur,ur+1,…,un)是A的左零空间N(A∗)的一组标准正交基。
线性代数中非常重要的子空间,和SVD就这样巧妙地联系在一起了,由V∗V=I和U∗U=I,又能再次验证四个基本子空间的两组垂直关系:
C(A)⊥N(A∗)C(A∗)⊥N(A)
补充
为了结论的泛用性,上面的证明是在复数域C下进行的,当然换成实数域也是同理的,只要将A∗换成AT即可。
参考
Introduction to Linear Algebra, 5th edition, by Gilbert Strang
https://inst.eecs.berkeley.edu/~ee127/sp21/livebook/thm_sed.html