首页 > 代码库 > 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分解的理解