本文图片引自文末参考链接,版权归原作者所有。
SVD的含义以及存在性证明
对于任意的矩阵 A m × n A_{m\times n} Am×n, 我们都可以找到正交矩阵 U m × m U_{m\times m} Um×m、 V n × n T V^T_{n\times n} Vn×nT和矩阵 Σ m × n \Sigma _{m\times n} Σm×n使得 A m × n = U m × m Σ m × n V n × n T A_{m\times n}=U_{m\times m}\Sigma _{m\times n}V^T_{n\times n} Am×n=Um×mΣm×nVn×nT,其中 Σ \Sigma Σ具有这样的形式:
故SVD还可以写成:
存在性的证明见 奇异值分解(SVD)原理与在降维中的应用 或 奇异值分解(1)——奇异值分解的证明 。
SVD之后为什么可以通过取特定的分块矩阵来代替原矩阵
首先,正交矩阵等价于旋转操作,即一组基向量左乘正交矩阵后保持模和正交性,而仅仅同时旋转一定角度,下图是一个直观的解释,其他相关解释网上有很多,可自行搜索“矩阵乘法的本质”等。
接下来以
A
3
×
2
A_{3\times 2}
A3×2为例解释SVD的本质,下面的图中
Σ
\Sigma
Σ用
S
S
S代替。
n
n
n维向量
x
x
x左乘矩阵
A
m
×
n
A_{m\times n}
Am×n的本质是对这个向量进行一个线性变换,从n维空间映射到m维空间
[
3
]
^{[3]}
[3]。而SVD本质就是将这个相对复杂的变换分解为3步简单的变换:旋转->简单映射->旋转。为什么说中间的是“简单”映射呢,因为
Σ
\Sigma
Σ的组成方式(见前面的图,仅“主对角线”有元素)决定了它(在本例的
A
3
×
2
A_{3\times 2}
A3×2中)实质上是将二维平面的单位圆映射到三维空间的某个平面上的椭圆。
Σ
\Sigma
Σ中的很多0起到的作用是使得映射后的向量在某些维度上模为0,所以前面说是三维空间的“某个平面”上的椭圆。
在A的作用下,二维平面的单位圆->旋转后的二维平面的单位圆->三维平面中某个平面的椭圆->旋转后的三维平面中某个平面的椭圆。
如果我们只取前面的非零奇异值得到 A k A_k Ak(假设有两个非零奇异值),那么 A k A_k Ak相当于是 A A A的去除冗余操作后的变换。 A k A_k Ak表达的是:二维平面的单位圆->旋转后的二维平面的单位圆->二维平面的椭圆->旋转后的二维平面的椭圆。表达的变换依然含有等价的含义,只是没有了多余的空间变换(变换之后仍然有些维度被“浪费”,例如上面例子映射后只是三维空间中的一个平面,有一个维度没有被利用)。
还有种理解:
奇异值分解的几何含义为:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。奇异值的几何含义为:这组变换后的新的向量序列的长度。[4]
所以说,奇异值为0表示完全不包含有价值的变换信息,而非零的奇异值,非常小的奇异值对变换的结果影响也较小。这相当于物理中力的合成,合力主要取决于分量较大的分力,而某个方向上的分力很小时,去掉也对合力影响不大。 [ 5 ] [ 6 ] ^{[5][6]} [5][6]
总结
左乘矩阵的几何意义是空间变换。SVD就是分解,将一个复杂的变换分解为三个简单的基本变换( U U U和 V V V是旋转, Σ \Sigma Σ是放缩和投影)。而奇异值的大小代表了相应奇异向量的放缩程度。奇异值越大,则此奇异向量对最后的空间影响越大。因此可以用SVD进行压缩图像或者去噪。 [ 5 ] ^{[5]} [5]
参考:
[1]. https://www.zhihu.com/question/22237507/answer/740565206
[2]. https://www.cnblogs.com/pinard/p/6251584.html
[3]. 矩阵与矩阵乘法的几何意义
[4]. https://www.zhihu.com/question/22237507/answer/53804902
[5]. https://www.zhihu.com/question/22237507/answer/801023732
[6]. https://www.zhihu.com/question/22237507/answer/225371236