转载-SVD奇异值分解的数学涵义及其应用实例

这篇文章分别从数学角度和图形变换角度分析了SVD分解的意义,值得收藏原文链接

SVD(Singular Value Decomposition, 奇异值分解)是线性代数中既优雅又强大的工具, 它揭示了矩阵最本质的变换. 使用SVD对矩阵进行分解, 能得到代表矩阵最本质变化的矩阵元素. 这就好比一个合数能表示为若干质数之积, 分解合数能得到表示该合数的质因数; 复杂周期信号可以表示为若干简单的正弦波和余弦波之和, 使用傅里叶变换能得到表示该信号的简单波; 复杂矩阵所代表的线性变换可由若干个简单矩阵所代表的线性变换组合起来, 使用SVD能找到这些简单矩阵.

SVD的数学涵义

我们可以从以下三个角度看待:

  1. 矩阵A是线性方程组(1)的系数组成的矩阵, 其每一行是(1)中每一个方程式的系数部分, 通过分析矩阵的秩rank(A)和其极大线性无关组的情况, 我们可以了解(1)的解的情况, 同时, 对于使用高斯消元法等进行求解也比较方便;

  2. 时, 矩阵A是空间中的一个基, 在这个基上面, 有向量, 而此向量在标准正交基上表示为, 此时(1)隐含着一个基变换的关系, 即为标准正交基;

  3. 矩阵本身表示一个线性变换, (1)表示其对向量进行线性变换得到向量的过程.

当我们将矩阵视为一种线性变换时, SVD可以帮我们揭示组成该线性变换的最本质的变换, 具体地, SVD揭示了这样的一个事实: 对于任意的矩阵A, 我们总能找到一组单位正交基, 使得A对其进行变换之后, 得到的向量组仍然是正交的. 这样的表述还是相当地晦涩, 我们不妨在二维平面中举一个例子.

设有矩阵A, 其对单位正交基进行线性变换, 得到的向量仍然是彼此正交的, 即仍然是正交的. 设方向上的单位向量是, 长度是, 则我们可得

现在利用矩阵A对向量进行线性变换. 我们先将向量在单位正交基上进行表示, 即

由(2), (3), (4), 我们有

(6)表达了这样一个事实, 对于任意的矩阵A, 我们总可以将其分解为一个酉矩阵U, 一个对角矩阵和另一个酉矩阵的转置的乘积, 这便是SVD的核心内容.

SVD的几何涵义

现在我们知道, 对于任意的矩阵A, 我们总可以将其分解为一个酉矩阵U, 一个对角矩阵和另一个酉矩阵的转置的乘积, 即等式(6)所表述的内容.表示矩阵A所代表的线性变换可以由更简单的旋转, 拉伸变换进行合成. 这些更简单的变换是怎么进行生效的呢? 我们还是在二维平面中举例说明.

我们可以先将向量在单位正交基上进行表示,是向量在单位正交基上的坐标

由(6)和(7)可得

现在我们仔细地来分析(8)中各矩阵的具体操作效果.

如(9)所示, 矩阵A对向量进行线性变换, 其先将向量用单位正交基进行表示. 然后使用酉矩阵进行旋转, 由酉矩阵的性质我们可知 所以旋转之后我们可得到标准正交基. 然后使用矩阵对标准正交基进行拉伸, 使得x-axis,y-axis分别拉伸倍的长度. 最后再使用酉矩阵对拉伸之后的正交基进行旋转, 得到最终的基, 从而得到最终的向量为

上述过程可表示为下图

通过SVD, 我们找到了能代表矩阵A作为线性变换时最本质的操作. 而$σ1,σ2$就是所谓的奇异值, 表示对标准正交基各个轴进行拉伸的程度

SVD的具体应用

压缩

许多存储在计算机中的数据都是以矩阵的形式存在的, 进行合理的矩阵压缩能把存储矩阵所占的空间缩减下来. 例如图像, 事实上一个灰度图像就是一个矩阵, 矩阵中的每个元素就是灰度图像的像素值. 如果我们有灰度图, 由(6)我们有

奇异值有一定的大小关系, 我们不妨设, 取前k个分量, 则由(15)可知, 若一个像素为1字节, 原始图像需m×n字节的存储空间, 而使用SVD分解后只需k×(1+m+n)字节的存储空间, 以此达到压缩图像(矩阵)的目的.

降维

数据降维在机器学习, 数据挖掘等领域是一个重要的技术, 通过数据降维可以挖掘数据的关键信息, 降低运算的成本. 使用SVD进行降维的核心思想是, 通过对feature向量(如机器学习中的数据向量)所组成的矩阵X进行分解, 可直接得到降维后的feature向量矩阵, 这其实就是PCA(主成分分析, Principal component analysis)的过程, 具体地, 令矩阵X是若干feature向量所组成的feature向量矩阵且矩阵X已经进行去均值处理, 则我们有

(16)即为PCA的求解过程, 熟悉PCA的同学都知道, 这个过程实际上是通过对矩阵进行正交对角化求出投影矩阵, 使得投影后的矩阵各个维度相互独立, 即为对角矩阵, 然后取方差最大的若干维以达到降维的效果. 所以我们需要对协方差矩阵进行对角化以求出投影矩阵, 而现在我们可以直接对协方差矩阵进行SVD分解

(17)中酉矩阵U即为投影矩阵W. 由(17)可得

由(18)我们可得投影后的矩阵, 此时我们只需

由(19)即可直接求出投影后的向量, 而无需先求得投影矩阵W再进行投影计算. 而后我们便可以取方差最大的若干维, 从而达到降维的目的.

文章作者:Jiadai Sun

最后更新:2019年09月25日 22:09:05

原始链接:https://sunjiadai.xyz/2019/06/14/SVD奇异值分解的数学涵义及其应用实例/

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 3.0 许可协议,转载请注明出处!


-----------本文结束-----------
0%