命题
只讨论实矩阵.
任意矩阵
Am,n 可以分解为:
Am,n=UΣVT
其中
Um,m 和
Vn,n 为由
Rm 和
Rn 下的标准正交基组成,
Σ 为对角矩阵
证明
ATA 为半正定矩阵, 特征值都为非负数, 记其特征值为
σ(ATA)={σ12...σn2}, 并按照从大到小顺序排列
记
ATA 的秩为
r, 则
σ1≥...≥σr≥0=σr+1=...=σn
令
Σ=diag(σ1...σn),V=[v1...vn] 为其特征值平方根矩阵和对应的标准正交特征向量组
其中
Σ1=diag(σ1...σr),V1=[v1...vr]
Σ2=diag(σr+1...σn)=0,V2=[vr+1...vn]
于是有
ATAV1=V1Σ12
变形得
Σ1−1V1TATAV1Σ1−1=I (公式 I )
又有
$A^T A V_2 = V_2 \bold0 $
变形得
V2TATAV2=(AV2)T(AV2)=0
因此
AV2=0
令
U1=AV1Σ1−1
由公式 I, 有
U1TU1=I
选择任意
U2 使得
U=[U1,U2] 为正交矩阵
于是有
UTAV=[U1,U2]TA[V1,V2]=[U1AV1U2AV1U1AV2U2AV2]=[Σ1U2TU1Σ100]=[Σ1000]=Σ
所以
A=UΣVT
理解
在我看来, SVD 的功劳是, 它实现了对任意矩阵的特征值分解.
特征值分解的好处是, 它将一个矩阵分解为有限个同阶子矩阵的代权和, 从而实现了有损压缩.
对于本身即可对角化的方阵来说, SVD的速度比常规手段更快
因此, 在PCA中, SVD的角色是实现快速的特征值分解, 因为协方差矩阵本身就可对角化.