SVD的介绍与原理

来源:互联网 发布:攻城掠地控号手软件 编辑:程序博客网 时间:2024/05/22 00:23

一.SVD的介绍

SVD,Singular Value Decomposition ,奇异值分解。PCA的实现一般有两种,一种是用特征值分解,一种是用奇异值分解。

  • 优点:简化数据,去除噪声,提高算法的结果
  • 缺点:数据的转换可能难以理解
  • 适用数据类型:数值型数据

二.奇异值分解的定义

假设M是一个mn的矩阵,如果存在一个分解:

Mmn=UmmmnVTnn

其中,U,V为正交矩阵,只有对角元素,其他元素都是0,而且的对角元素是从大到小排列的,这些对角元素称为奇异值,式中
=[1OOO]1=diag(σ1,σ2,...,σr),σ1σ2...σr>0

MMT,MTM的奇异值分解为
MMT=UVTVTUT=UTUT

MTM=VTUTUVT=V(T)VT

其中,TT为方阵


奇异值有以下写性质,

1.如果M是n*n的方阵,那么有|det(M)|=|det()|=σ1σ2...σn
2.考虑到MTM的奇异值分解,我们发现其特征值等于M的奇异值的平方。

三.奇异值的意义

在几何中,我们可以把矩阵看做空间上的线性变换,比如对角矩阵M作用于任意一个变量,等同于在x方向上拉伸三倍,y方向上保持不变,如下:

[3001][xy]=[3xy]

如果M不是对角矩阵,而是一个对称正定矩阵,假设M如下,
[2112]

那么我们总可以找到一组基,使得矩阵作用在该组基上,总变现为拉伸变换,而没有旋转变换。
对于更一般的非对称矩阵,我们再也找不到一组基,使得矩阵作用在该组基上只有拉伸变换,而没有旋转变换,如矩阵:
[1011]

如果我们允许有拉伸和旋转变换,这是可以实现的。
则,奇异值分解的几何含义是:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。
奇异值的含义是:这组变换后新的向量序列的长度


当矩阵M作用在正交的向量v1,v2上时,得到的向量Mv1,Mv2也是正交的,假设向量u1,u2Mv1,Mv2的单位向量,那么有

Mv1=σ1u1,Mv2=σ2u2

依据前面的条件有,
M=M[v1,v2][vT1vT2]=[u1,u2][σ100σ2][vT1vT2]

其中,σ1,σ2分别为Mv1,Mv2的长度。
很容易可以把结论推广到n维的情况。


举个例子说明一下,假设矩阵A存下以下奇异值分解,

A=[u1,u2][3001][vT1vT2]

其中u1,u2,v1,v2均为二维平面的向量 ,依据奇异值分解的特性,u1,u2线性无关,v1,v2线性无关,因而v1,v2可以作为一组基,假设一个一般的二维品面的向量x,那么可以得到x=ξ1v1+ξ2v2
当A作用到x上,则有,
y=Ax=[u1,u2][3001][vT1vT2][v1,v2][ξ1ξ2]=3ξ1u1+ξ2u2

η1=3ξ1,η2=ξ2,假设x是在以v1,v2一组基的圆上,即ξ21+ξ22=1,那么变换后的y则在椭圆(η13)2+η22=1上,这表明矩阵A将单元院变成了椭圆,且奇异值恰好为椭圆的半长轴和半短轴的长度。


说一点它的物理意义:
假设有一张图像,我们用矩阵A来表示,A中的每一个元素代表一个像素,我们这里用和的形式表示A,

A=σ1u1vT1+σ2u2vT2+...+σrurvTr

假设我们图像矩阵A为400*300的像素,那么存储这张图片我们需要120000个元素,那么右边的每一项需要元素1*300+1*400+1=701个,如果我们需要存储很多高清图片,存储空间又有限制的情况下,我们在保证图片能被识别的精度下,保留那么奇异值较大的一些项,假设这里我们保留了20个奇异值,那么我们需要存储701*20=14020项,相比原来需要的存储空间,减少了很多。
总结一下奇异值往往隐含着矩阵中潜在的重要信息,重要性和奇异值大小正相关,每一个矩阵可以表示成一系列的秩为1的特殊矩阵之和,而奇异值则是衡量这些矩阵的权重。

四.总结

这里仅仅介绍了一下SVD的定义以及一些简单的物理意义,关于SVD的一些公式的证明,还有SVD在推荐系统,图像压缩、去噪中应用还需要大家多查阅其他的一些资料,以后有时间,会继续补充说明。

五.参考资料

1.《矩阵分析与应用》,张贤达著
2.知乎回答:http://www.zhihu.com/question/22237507
3.《机器学习实战》

0 0