svd基本定理(透彻理解奇异值分解SVD)
- 向量左乘对角矩阵,几何上相当对这个向量的长度进行缩放,此处坐标轴保持不变;
- 向量左乘对称矩阵,几何上相当于对这个向量的长度进行缩放,并且对坐标轴也进行旋转;
- 给向量左乘普通矩阵,总能找到一组正交的坐标轴来表示该向量,这组坐标轴是由原来的坐标轴通过缩放和旋转而得到。
我们看一下在坐标轴上的几何变化:
1、左乘对角阵:
2、左乘对称阵:
3、左乘任意阵
对于任意的矩阵,我们总能找到一组坐标轴,来表示该向量。这个新的坐标体系是由原来的坐标轴通过缩放和旋转得到。
二、SVD的几何意义
奇异值分解SVD ( The singular value decomposition )从几何意义上来说:对于任意矩阵M,通过SVD。可以将一个相互垂直的坐标变换到另外一个相互垂直的坐标。
问题描述:
用v1和v2分别表示原来坐标系中的单位向量, 经过左乘矩阵M后,向量Mv1和 Mv2 正交。用u1 和 u2分别表示Mv1 和 Mv2方向上的单位向量,那么:
σ1* u1 = Mv1
σ2* u2 = Mv2
σ2 和 σ2分别表示这不同方向向量上的模。
设现有一个向量x,那么在变换前,其表达式为:
x = (v1·x) *v1 (v2·x) *v2向量点乘v1·x,表示x在v1上投影乘以v1的模,由于v1是单位向量,模为1,所以这个向量点乘,就是x在v1上投影,向量x在两个正交向量的投影乘对应的向量,然后相加就是向量x。
经过M线性变换后的向量的表达形式:
Mx = (v1·x) σ1u1 (v2·x) σ2u2
而我们对原坐标空间表达式,等式两边同乘以矩阵M:
Mx = (v1· x) Mv1 (v2· x) Mv2
由于v1· x是一个标量, Mv1是一个向量,所以可以变换位置如下:
Mx = u1σ1 v1Tx u2σ2 v2Tx
进而,由于u1和v1都是列向量,u1σ1 v1T就是两个向量点乘后乘以一个标量
于是可得:
M = u1σ1 v1T u2σ2 v2T
表示成:
M = UΣVT
u 矩阵的列向量分别是u1,u2 ,Σ 是一个对角矩阵,对角元素分别是对应的σ1 和 σ2,V 矩阵的列向量分别是v1,v2。
以上表明任意矩阵 M 是可以分解成三个矩阵。V 表示了原始域的标准正交基,u 表示经过 M 变换后的标准正交基,Σ 表示V 中的向量与u 中 相对应向量之间的关系。
三、与PCA的关系
将一个m * n的矩阵A的进行坐标轴的变化,P是变换矩阵,把一个m×n维的空间变换到另一个m×n维的空间,在空间中就会进行一些类似于旋转、拉伸的变化。
如果降低特征空间维度,只提取r个特征,那么就是:
这就是PCA,如果要详细了解PCA原理,请阅读本头条号另一篇非常易懂PCA的文章《深度剖析:Eigenfaces算法原理及其中PCA几何意义(人脸系列一)》
跟PCA一样,SVD也是按照奇异值由大到小排列的,方差最大的坐标轴是第一个奇异向量,以此类推, SVD表达式:
在矩阵的两边同时乘上一个矩阵V,由于V是一个正交的矩阵,所以V转置乘以V得到单位阵I,所以可以化成后面的式子:
对比变换
,这里是将一个m * n 的矩阵压缩到一个m * r的矩阵,也就是对列进行压缩。
同样我们写出一个通用的行压缩例子:
这样就从一个m行的矩阵压缩到一个r行的矩阵了,对SVD来说也是一样的,我们对SVD分解的式子两边乘以U的转置UT
注意上式,m×r后转置,符合矩阵相乘的左矩阵列数与右矩阵行数相等的要求。
综上,可见,PCA是SVD的一个特例,我们实现了SVD,那也就实现了PCA,或者说,我们可以得到两个方向的PCA,如果我们对ATA进行特征值的分解,只能得到一个方向的PCA。
总结如下:
- 左奇异矩阵可以用于行数的压缩。
- 右奇异矩阵可以用于列数即特征维度的压缩,也就是PCA降维。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com