SVD与EVD

 

前阵子在知乎看自动化保研面试,其中一个题目是奇异值和特征值的区别,细想我还真不太懂,就找了些解答,截取简明的部分记录下。

特征值分解——EVD

A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候,称为A的特征方程,特征方程是一个齐次线性方程组,求解特征值的过程其实就是求解特征方程的解。
我们可以将矩阵看成是一个力的混合体,但需要注意的是,这个力的混合体中各个力是相互独立的!即特征向量之间线性无关,是无法做力的合成(这里只是假设其无法合成,有更好的解释以后会补充)的。其中力的个数为矩阵的秩,力的大小为特征值的大小,力的方向即为特征向量的方向。
此时如果我们对任一向量(这里可以把看成是一个物体,如一个小方块)无限施加这个力的集合,正如上图所示的那样,最终小方块运动的方向即为力最大的那个方向。即向量会收敛为最大特征值的特征向量。去掉这个力,不断重复,即可以得到第二个、第三个特征向量。
这就是为什么我们将这样的向量定义为矩阵的特征向量,因为一方面它能够体现出线性变换中力的方向及大小,另一方面可以可以通过分析特征值得到该线性变换的主导因素。
————–

奇异值分解——SVD

上面的特征值分解的A矩阵是对称阵,根据EVD可以找到一个(超)矩形使得变换后还是(超)矩形,也即A可以将一组正交基映射到另一组正交基!那么现在来分析:对任意M*N的矩阵,能否找到一组正交基使得经过它变换后还是正交基?答案是肯定的,它就是SVD分解的精髓所在。


二者区别

矩阵可以认为是一种线性变换,如果将这种线性变换放在几何意义上,则他的作用效果和基的选择有关。
以Ax = b为例,x是m维向量,b是n维向量,m,n可以相等也可以不相等,表示矩阵可以将一个向量线性变换到另一个向量,这样一个线性变换的作用可以包含旋转、缩放和投影三种类型的效应。
奇异值分解正是对线性变换这三种效应的一个析构。A=μΣσ,μ和σ是两组正交单位向量,Σ是对角阵,对角值s表示奇异值,它表示我们找到了μ和σ这样两组基,A矩阵的作用是将一个向量从σ这组正交基向量的空间旋转到μ这组正交基向量空间,并对每个方向进行了一定的缩放(乘个缩放因子),缩放因子就是各个奇异值,然后再在μ旋转回去。如果σ维度比μ大,则表示还进行了投影。可以说奇异值分解将一个矩阵原本混合在一起的三种作用效果,分解出来了。

而特征值分解其实是对旋转缩放两种效应的归并。(有投影效应的矩阵不是方阵,没有特征值)特征值,特征向量由Ax=λx得到,它表示如果一个向量v处于A的特征向量方向,那么Av对v的线性变换作用只是一个缩放。也就是说,求特征向量和特征值的过程,我们找到了这样一组基,在这组基下,矩阵的作用效果仅仅是存粹的缩放。对于实对称矩阵,特征向量正交,我们可以将特征向量式子写成A=xλxT,这样就和奇异值分解类似了,就是A矩阵将一个向量从x这组基的空间旋转到x这组基的空间,并在每个方向进行了缩放,由于前后都是x,就是没有旋转或者理解为旋转了0度。

总而言之,特征值分解和奇异值分解都是给一个矩阵(线性变换)找一组特殊的基,特征值分解找到了特征向量这组基,在这组基下该线性变换只有缩放效果。而奇异值分解则是找到另一组基,这组基下线性变换的旋转、缩放、投影三种功能独立地展示出来了。
又因为有投影效应的矩阵不是方阵,没有特征值,所以奇异值分解可以适用于所有矩阵,但特征值分解就仅仅适用于方阵了。