奇异值分解(SVD)

主成分分析的方法有两种,一种是相关矩阵的特征值分解,;另一种是样本矩阵的奇异值分解。
前面我们学过了利用协方差矩阵来使用PCA来降维,将数据投影到新超平面空间,主要是计算数据的协方差矩阵,然后求协方差矩阵的特征值和特征向量,将特征值按照大到小的顺序排列,然后删掉较小的特征值,将数据投影到特征空间。现在来了解一下奇异值分解。

奇异值分解

Am×n=Um×nΣn×nVn×nA_{m\times n}=U_{m\times n}\Sigma_{n\times n}V_{n\times n}Am×n=Um×nΣn×nVn×n
其中U,V分别是m,n阶的正交矩阵,A为数据矩阵。Σ\SigmaΣm×nm\times nm×n矩形对角矩阵,其对角线元素非负,按降序排列。
那么U,Σ,VU,\Sigma,VU,Σ,V应该怎么求得呢?

  • 确定V,ΣV,\SigmaV,Σ
  1. 构造n阶正交实矩阵V,
    矩阵A是m×nm\times nm×n实矩阵,则ATAA^TAATA是n阶实对称矩阵(实对称矩阵必能相似对角化),即有n个线性无关的特征向量,所以必然存在一个n阶正交矩阵V使得ATAA^TAATA对角化,即V(ATA)VT=ΛV(A^TA)V^T=\LambdaV(ATA)VT=Λ,
  2. 可设V的正交向量对应的特征值的降序排列是:
    λ1≥λ2≥...≥λn≥0\lambda_1\ge\lambda_2\ge...\ge\lambda_n\ge0λ1λ2...λn0
  3. 计算其平方根,实际就是矩阵A的奇异值。
    σi=λi,1≤i≤n\sigma_i=\sqrt{\lambda_i},\quad1\le i\le nσi=λi,1in
    设A的秩为r,则ATAA^TAATA的秩也为r,因为ATA是对称矩阵A^TA是对称矩阵ATA(实对称矩阵可看作二次型),它的值等于正的特征值的个数,所以:
    λ1≥λ2≥...≥λr,λr+1=...=λn=0\lambda_1\ge\lambda_2\ge...\ge\lambda_r,\quad\lambda_{r+1}=...=\lambda_n=0λ1λ2...λr,λr+1=...=λn=0
    V1=[v1,...,vr],V2=[vr+1,...,vn]V_1=[v_1,...,v_r],V_2=[v_{r+1},...,v_n]V1=[v1,...,vr],V2=[vr+1,...,vn]
    v1,...,vr对应的ATA正特征值的特征向量,vr+1,...,vnv_1,...,v_r对应的A^TA正特征值的特征向量,v_{r+1},...,v_nv1,...,vrATAvr+1,...,vn是特征值为零的特征向量,V=[V1,V2]V=[V_1,V_2]V=[V1,V2],这就是奇异值分解中的V矩阵。
    对于特征值为零的向量有ATAvj=0×vj=0,j>rA^TAv_j=0\times v_j=0,\quad j\gt rATAvj=0×vj=0,j>r,所以有AV2=0AV_2=0AV2=0
    因为V是正交矩阵,III表示单位矩阵,所以I=VVT=V1V1T+V2V2T,A=AI=AV1V1T+AV2V2T=AV1V1TI=VV^T=V_1V_1^T+V_2V_2^T,\\A=AI=AV_1V_1^T+AV_2V_2^T=AV_1V_1^TI=VVT=V1V1T+V2V2T,A=AI=AV1V1T+AV2V2T=AV1V1T
  4. 特征值对应的奇异值有:
    σ1≥σ2≥...≥σr,σr+1=...=σn=0\sigma_1\ge\sigma_2\ge...\ge\sigma_r,\quad\sigma_{r+1}=...=\sigma_n=0σ1σ2...σr,σr+1=...=σn=0
    Σ1=[σ1σ2...σr]\Sigma_1=\begin{bmatrix}\sigma_1&&&\\&\sigma_2&&\\&&...&\\&&&\sigma_r\end{bmatrix}Σ1=σ1σ2...σr
    Σ=[Σ1000]\Sigma=\begin{bmatrix}\Sigma_1&0\\0&0\end{bmatrix}Σ=[Σ1000]
  • 确定UUU
    uj=1σjAvj,j=1,2,3,..,ru_j=\frac{1}{\sigma_j}Av_j,\quad j=1,2,3,..,ruj=σj1Avj,j=1,2,3,..,r
    U1=[u1,...,ur]U_1=[u_1,...,u_r]U1=[u1,...,ur]
    {ur+1,ur+2,...,un}\{u_{r+1},u_{r+2},...,u_n\}{ur+1,ur+2,...,un}ATA^TAT的一组标准正交基,并令U2=[ur+1,ur+2,...,un]U_2=[u_{r+1},u_{r+2},...,u_n]U2=[ur+1,ur+2,...,un]
    U=[U1,U2]U=[U_1,U_2]U=[U1,U2]

于是有:
UΣVT=[U1,U2][Σ1000][V1TV2T]=U1Σ1V1T=AV1V1T=AU\Sigma V^T=[U_1,U_2]\begin{bmatrix}\Sigma_1&0\\0&0\end{bmatrix}\begin{bmatrix}V_1^T\\V_2^T\end{bmatrix}=U_1\Sigma_1V_1^T=AV_1V_1^T=AUΣVT=[U1,U2][Σ1000][V1TV2T]=U1Σ1V1T=AV1V1T=A

  • 性质
    V的列向量是ATA的特征向量,U的列向量是AAT的特征向量,Σ的奇异值是ATA和AAT的特征值的平方根。A^TA的特征向量,U的列向量是AA^T的特征向量,\Sigma的奇异值是A^TA和AA^T的特征值的平方根。ATAUAATΣATAAAT
    AV=UΣAV=U\SigmaAV=UΣ,正交矩阵有性质V−1=VTV^{-1}=V^TV1=VT
  • 几何意义
    对A矩阵的奇异值分解,V和U都是正交矩阵,其列向量构成了Rn\bm R^nRn空间的标准正交基,表示在Rn\bm R^nRn空间正交坐标系的旋转或反射变换,Σ\SigmaΣ的对角元素非负,表示原始正交坐标系坐标轴的σ1,...,σn\sigma_1,...,\sigma_nσ1,...,σn的缩放变换。
  • 紧奇异值分解与截断奇异值分解
    紧奇异值分解是与原始矩阵等秩的奇异值分解,即紧奇异值分解的对角矩阵Σr的秩与A,ATA的秩相等\Sigma_r的秩与A,A^TA的秩相等ΣrAATA,紧
    截断奇异值分解是比原矩阵低秩的奇异值分解(类似于特征值分解)即截断奇异值分解的对角矩阵$\Sigma_r的秩比A,A^TA的秩低,实际应用中通常使用截断奇异值分解,截断奇异值分级是有损压缩。
    奇异值分解是弗罗贝尼乌斯范数意义下(平方损失意义)下的矩阵最优近似。

本文章只介绍了奇异值计算的方法,若对推导过程感兴趣,可参考统计学习方法一书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值