矩阵的奇异值分解

Besides having a rather simple geometric explanation, the singular value decomposition offers extremely effective techniques for putting linear algebraic ideas into practice.

SVD分解与四个子空间

任意的线性变换都可以进行奇异值分解(SVD: Singular Value Decomposition)。之前的一篇博客讲的特征值和特征向量都是针对方阵而言的.这里任意形状的矩阵都能够进行SVD变换。给定一个的矩阵,这里需要特别说明,我们可以在这个矩阵的行空间和列空间内找到个线性无关的基,即使行、列空间的维度有不同。此处是核心:我们能够参考方阵,对它的特征值特征向量的推导过程得到启发,结合这里矩阵不一定是方阵(行、列维度不同的特点),能否在行子空间内找到一组相互正交的单位基向量,这组基向量通过的变换在列空间内“生产”出一组也是相互正交的向量,并且这组向量正好是列空间的一组基。

() 中,是行空间内的单位向量,且是列空间内的单位向量(Orthonormal basis),且是列空间内单位向量的伸缩系数。 写成矩阵乘法的形式如下:

写成更简单的形式是:

奇异值分解的几何意义

接上面的矩阵定义,我们看一下空间的任意对象是如何变换的。

()中,在行空间、零空间的坐标值,其中前个向量是行空间的分量,后面的是零空间的分量。并且,可以把这个对象想象成在内的单位球体。线性变换:

()少了后面的个分量,是因为。 到这里,我们理解奇异值分解的几何意义就是:矩阵的奇异值分解,是在行空间内找到一组相互垂直的单位向量,这组向量经过矩阵的变换在列空间得到的向量也是相互垂直,观察(),旧坐标值和奇异值相乘的意义就是在新的基方向上,进行奇异值大小的拉伸操作。更加形象的理解就是,将单位球面变换为超椭球面,这个球面具有r$个半轴,每个半轴对应的奇异值是该半轴伸缩的系数。

最近在知乎上又看到了硬核机器学习文章分享的回答,在他的回答中,两组正交基分别就是矩阵行空间、列空间的标准正交基。如果不好记忆的话,我们可以对比矩阵和向量的乘法,向量的维度和矩阵的行向量是一致的,所以 向量是用来分解给定的向量的,这样我们就很容易得到酉矩阵的列向量是原矩阵列向量的一组标准正交基构成。

总结一下

步骤如下:

  • 给出任意向量

  • 矩阵对该向量的变换分解为如下

  • 投影,得到投影矢量为

  • 使用旋转行基到单位标准正交基

  • 使用奇异值拉伸的各个分量

  • 使用旋转拉伸后的基向量,得到最终基,变换在该基下的分矢量就是

和特征值分解的关系

刚才只讨论了矩阵行空间和列空间的向量,那么,剩下的零空间和左零空间的向量难道就放弃了么?并不是这样的,出于考虑问题的完备性,我们写出如下的表达式

SVD更广泛的意义是将(行空间+零空间)内的一组标准正交基和(列空间+左零空间)的标准正交基拉进来,形式上完备了,具体矩阵所具有的特性取决于中间对角矩阵中非零奇异值的个数,理想的情况是,当矩阵是一个方阵时,并且具有个特征向量,那么行空间和列空间的维度是一样的,通过SVD分解矩阵得到的中,各列就是该矩阵的特征向量。从这点上,我们可以得到,方阵的特征向量特征值是矩阵SVD分解的特殊情况。

参考材料

We Recommend a Singular Value Decomposition "奇异值分解的直观理解"

机器学习中的数学(5):强大的矩阵奇异值分解(SVD)及其应用

线性变换的矩阵为什么要强调在这组基下?

The SVD of a Matrix


矩阵的奇异值分解
https://warden2018.github.io/2020/06/22/2020-02-03-Linear-Algebra-SVD/
作者
Yang
发布于
2020年6月22日
许可协议