SVD分解理论

来源:互联网 发布:淘宝买家仅退款不退货 编辑:程序博客网 时间:2024/05/20 01:36

矩阵SVD分解的理论基础

首先,我们先说明什么是矩阵的奇异值分解(single value decomposition),简称SVD。

给定一个矩阵ARm×n, 设它的秩为r,则它具有以下的分解形式

Am×n=Um×mΣm×nVTn×n

其中,U是正交矩阵,其列向量是AAT的单位特征向量,V 也是正交矩阵,其列向量是对应的ATA的单位特征向量,Σ具有下述的形式
Σ=(Σ1OOO)

Σ1=diag(σ1,σ2,,σr),r是矩阵A的秩,σi(i=1,2,,r) 是矩阵AAT (或ATA)的非零特征值的正平方根,也叫做A的\textbf{奇异值},当然A还可能包括零奇异值。
在我们知道了什么是SVD后,接下来看一下SVD是怎么来的,在开始之前我们先介绍一下矩阵的四个基本子空间的基本性质。

四个基本子空间

设矩阵ARm×n,秩rank(A) = r,
A的行空间 R(AT) 为A 的行向量张成集合,
A的列空间 R(A)为A 的列向量的张成集合,
A的的零空间 N(A)为满足Ax = 0 的所有x 组成的集合,
AT零空间N(AT) 为满足ATy=0的所有y 组成的集合。
\par 四个基本子空间的维数分别为dim(R(A)) = r,dim(R(AT)) = r,dim(N(A)) = n-r,dim(N(AT)) = m - r,而且R(A)N(AT)R(AT)N(A)

有关特征值的结论

  • AATATA具有相同的非零特征值,而且所有特征值均大于等于0
  • A=UUT为对称矩阵A的特征值分解(对称性保证特征向量正交),是对角线元素A的特征值的对角矩阵,U的列向量为对应的A的特征向量。
  • rank(A) = r,则ATA的正特征值有r个

SVD的由来

在矩阵A的行空间,我们选择一组标准正交基v1,v2,,vr,经过A 变换,得到列空间的r个元素u1,u2,,ur,我们希望变换后的u1,u2,,ur也是正交的,所以我们在行空间选择的标准正交基就不能是任意的,它需要满足使得变换后的u1,u2,,ur也正交。写成矩阵形式

A[v1,v2,,vr]=[u1,u2,,ur]

我们把u1,u2,,ur单位化,设其长度分别为σ1,σ2,,σr,并记单位化后的向量重新记为u1,u2,,ur,则
A[v1,v2,,vr]=[σ1u1,σ2u2,,σrur]=[u1,u2,,ur]σ10000σ200000000σr

我们把零空间也考虑进来,记A的零空间的一组标准正交基vr+1,vr+2,,vnAT的零空间的一组标准正交基为ur+1,ur+2,,un,则
A[v1,v2,,vrvr+1,vr+2,,vn]=[σ1u1,σ2u2,,σrur,0,0,,0]

=[u1,u2,,ur,ur+1,ur+2,,um]σ10000σ200000000σrO

写成矩阵形式如下
AV=UΣ,A=UΣVT

什么样的U,V,Σ满足上面的要求呢?我们需要解出来。
首先,左乘AT,我们得到,
ATA=VΣTUTUΣVT=VΣTΣVT

由对称矩阵的特征值分解,我们可以知道,Σ中的σ1,σ2,,σrATA的非零(即正)特征值的正平方根,也是做A正
奇异值,的正V 的列向量取对应的特征向量。
然后,右乘AT,我们得到,
AAT=UΣVTVΣTUT=UΣΣTUT

由对称矩阵的特征值分解,我们可以知道,Σ中的σ1,σ2,,σrAAT的非零(即正)特征值正平方根,U的列向量取对应的特征向量。
由于AATATA具有相同的非零特征值,而且所有特征值均大于等于0,所以上述结论是成立的。

再看SVD

从上面的推导我们可以看出,

  • V的前r列组成R(AT)的标准正交基
  • U的前r列组成R(A)的标准正交基
  • V的后n-r列组成N(A)的标准正交基
  • U的后m-r列组成N(AT)的标准正交基

我们把矩阵A的SVD展开

A====UΣVT[u1,u2,,ur,ur+1,ur+2,,um]σ10000σ200000000σrO[v1,v2,,vrvr+1,vr+2,,vn]Tσ1u1vT1+σ2u1vT1++σru1vT1i=1rσiuivTi

求矩阵A = (44 33)的奇异值分解。

ATA=(257 725),特征值λ1=32,λ2=18,对应的单位正交向量分别为1212,
(12 12)
所以 V = (1212 1212),
Σ=(320 018).

AV=(820 062).

因此U=(821320 062118)=(1001)

所以A=(10 01)(320018)12121212.

0 0
原创粉丝点击