首页 > 代码库 > SVD分解的理解

SVD分解的理解

对称阵A

                                                        技术分享

相应的,其对应的映射也分解为三个映射。现在假设有x向量,用A将其变换到A的列空间中,那么首先由U‘先对x做变换:

                                                                              技术分享

由于正交阵“ U的逆=U‘ ”,对于两个空间来讲,新空间下的“ 基E‘ 坐标 x‘ ,原空间E 坐标x ”有如下关系

    EX=E‘X‘ ===>

    X=E‘X‘ ===>

    X‘=(E‘的逆)x ==>

    x向量在新的“基”下的新坐标  (E的转置)X;

1、那么对于上式UTx先可以理解为:将x用A的所有特征向量表示为:

                                         技术分享

则通过第一个变换就可以把x表示为[a1 a2 ... am]‘:

                           技术分享

2、紧接着,在新的坐标系表示下,由中间那个对角矩阵对新的向量坐标换,其结果就是将向量往各个轴方向拉伸或压缩:

                              技术分享

如果A不是满秩的话,那么就是说对角阵的对角线上元素存在0,这时候就会导致维度退化,这样就会使映射后的向量落入m维空间的子空间中(塌缩的概念)。

3、最后一步U[],相当于将X按照A的空间下变化过后,在转回原坐标系表示!

 

 

 

那么对于SVD分解中,

正交基v选择为A‘A的特征向量的,由于A‘A是对称阵,v之间两两正交,

对v1,v2,...,vk进行扩展v(k+1),...,vn(这n-k个向量存在于A的零空间中,即Ax=0的解空间的基),使得v1,v2,...,vn为n维空间中的一组正交基,即

技术分享

技术分享

当k < i <= m时,对u1,u2,...,uk进行扩展u(k+1),...,um,使得u1,u2,...,um为m维空间中的一组正交基,即

技术分享

 

A矩阵的奇异值分解:

                                                 技术分享

                技术分享

AX=UEVTx,,,按照同上的理解,首先对x坐标转换,然后做对应效果的拉伸,

不过这里在一个A的作用下应该没有ATA的效果厉害所以只有sqrt作为对角元素,然后在使用U将表示转变回来!

 

参考:http://blog.csdn.net/zhongkejingwang/article/details/43053513

 

SVD分解的理解