问题引入
特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,突然看的话两者好像是差不多的,都可以用于信息的提取和转换,但是两者有啥区别呢? 问题解答
特征向量
如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式:
这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式:
其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值,里面的特征值是由大到小排列的。这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列),可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。
奇异值
特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可能是方阵,我们怎样才能描述这样普通的矩阵呢的重要特征呢?奇异值分解可以用来干这个事情,奇异值分解是一个能适用于任意的矩阵的一种分解的方法:
那么奇异值和特征值是怎么对应起来的呢?我们将一个矩阵A的转置乘以A,并对求特征值,则有下面的形式:
这里V就是上面的右奇异向量,另外还有:
这里的
就是奇异值,u就是上面说的左奇异向量。奇异值
跟特征值类似,在矩阵中也是从大到小排列,而且的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r(r远小于
m、n
)个的奇异值来近似描述矩阵,即部分奇异值分解:
右边的三个矩阵相乘的结果将会是一个接近于的矩阵,在这儿,越接近于,则相乘的结果越接近于A。
参考
https://www.zhihu.com/question/21874816/answer/181864044 https://zhuanlan.zhihu.com/p/59324612 https://blog.csdn.net/qq_32742009/article/details/82286434
喜欢就关注一下啦~~~