奇异值分解

如题所述

第1个回答  2022-06-25
  奇异值分解(Singular Value Decomposition,SVD)是线性代数中一种重要的矩阵分解方法,区别于只适用于实对称矩阵的特征分解方法,奇异值分解可对任意实矩阵进行分解。

 特征分解(eigendecomposition)又叫谱分解(Spectral decomposition),是把一个矩阵根据其特征值和特征向量分解的过程,只有可以正交化的矩阵才可以进行特征分解。

  有了上述定义,接下来讨论如何计算一个矩阵的特征值和特征向量。由定义可知:

  其中 为单位矩阵,显然上式的推导结果是一个 元 次的齐次线性方程组, 为该方程组的一个非零解,则有 ,其中 称为 的特征方程, 称为 的特征多项式。基于此,可得到求解方阵A特征值和特征向量的步骤如下:

  求出矩阵 的特征值和特征向量后,若矩阵 有 个线性独立的特征向量,那么 是可以正交化的,此时 的特征分解为:

其中 时 个特征向量所组成的 维矩阵, 为以这 个特征值为主对角线元素的对角阵。

  对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵:

这样处理的好处是,我们可以用三个较小的矩阵 来表示一个大矩阵 ,如下图所示,使用三个灰色部分的小矩阵来表示大矩阵。

  由于这个重要的性质,SVD可以用于PCA降维,来做图片数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。
相似回答