美文网首页
奇异值分解

奇异值分解

作者: DestinyBaozi | 来源:发表于2018-11-06 21:09 被阅读0次

奇异值分解(Singular Value Decomposition,SVD):

定义:

  任意的实矩阵A\in \mathbb{R}^{m \times n}都可以分解为:
  A=U\Sigma V^{T}
  其中,U\in \mathbb{R}^{m \times m}是满足U^{T}U=Im阶酉矩阵(unitary matrix);V \in \mathbb{R}^{n \times n}是满足V^{T}V=In阶酉矩阵;\Sigma \in \mathbb{R}^{m \times n}的矩阵,其中(\Sigma)_{ii}=\sigma_{i}且其他位置的元素均为0\sigma_{i}为非负实数且满足\sigma_{1} \geq \sigma_{2} \geq ... \geq 0
  其中U的列向量\mu_{i} \in \mathbb{R}^{m}称为A的坐奇异向量,V的列向量v_{i} \in \mathbb{R}^{n}称为A的右奇异向量,\sigma_{i}称为奇异值。

奇异值分解的用途:

  如果想要描述好一个变换,那就描述这个变换主要的方向就行。特征值分解得到的\Sigma矩阵是一个对角举证,里面的特征值是由大到小的排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要到次要),当矩阵是高维的情况下,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵的最主要的N个变化方向,但是特征值分解的局限,就是变化矩阵必须是方阵,对于非方阵而言,我们就只能进行奇异值分解。
  而在实际中,大部分矩阵都不是方阵,奇异值分解就是用来解决这个问题的,奇异值分解是一个能适用于任意的矩阵的一种分解方法:
  A=U\Sigma V^{T}
首先,将矩阵AA^{T}就得到一个方阵,利用这个方阵得到:
  (A^{T}A)v_{i}=\lambda_{i}v_{i}
这里的v_{i}就是右奇异值向量,
  \sigma_{i}=\sqrt{\lambda_{i}}
  \mu_{i}=\frac{1}{\sigma_{i}}Av_{i}
奇异值\sigma跟特征值类似,在矩阵\Sigma中也是从大到小排列,而且\sigma的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上,也就是说可以用前r大的奇异值来近似描述矩阵。

相关文章

网友评论

      本文标题:奇异值分解

      本文链接:https://www.haomeiwen.com/subject/mplpxqtx.html