奇异值分解(SVD)在机器学习、图像压缩中应用很多,使用它能够节省很多存储空间。这里主要从数学原理上阐述SVD的证明。
奇异值分解定义
对任意矩阵A∈Rm×n,存在正交矩阵U∈Rm×m,V∈Rn×n及除了主对角线上的元素以外全为0的矩阵Σ∈Rm×n,使得A=UΣVT,其中Σ的主对角元上的元素满足σ11≥σ22≥...≥σkk,k=min(m,n).
其中称σi=λi,i=1,2,...,r为A的奇异值,r为A的秩且λ1,λ2,...,λr为ATA的非零特征值。
数学证明
因为ATA为实对称矩阵,所以存在正交矩阵V使得VTATAV=diag(λ1,...,λn),其中λ1,...,λn为ATA的特征值。
因为ATAvi=λivi,viTATAvi=λiviTvi=λi,所以λi=(Avi)TAvi≥0则不妨设λ1≥...≥λn≥0.
设V=(v1,...,vn),且vi(i=1,...,n)为ATA的属于λi的特征向量以及Rn的一组标准正交基,设r=rank(A),有(Avi,Avj)=viTATAvj=viTλjvj={λi=0,0,if i=jif i=j (i,j=1,...,r)
其中,λi=∣Avi∣,(i=1,...,r),且Av1,...,Avr也为正交基,
令ui=∣Avi∣Avi,i=1,...,r再将u1,...,ur扩充成Rm的一组标准正交基u1,...,ur,...,um.令U=(u1,...,um), 有AV=A(v1,...,vn)=(Av1,...,Avr,0,...,0)=(λ1u1,...,λrur,0,...,0)=(u1,...,um)diag(λ1,...,λr,0,...,0)所以A=UΣVT且λ1≥...≥λr.