SVD的几何理解

来自 https://www.youtube.com/watch?v=DG7YTlGnCEo ,Singular Value Decomposition (SVD) and Image Compression

几何变换

我们有些时候需要做一个变换,比如:

变换示例

在这种情况下,我们需要进行旋转、水平和竖直方向的拉伸和压缩,并且再次进行旋转。

而矩阵可以表示一个线性变换,比如:

矩阵表示线性变换的例子

有一些特殊的矩阵:

  • 旋转:
    • 旋转矩阵
  • 拉伸压缩:
    • 拉伸压缩矩阵

并且可以进行分解:

  • 分解

转换为SVD

转换为矩阵形式的示意图

降维

0.44很小,所以可以考虑把它去掉(变为0)

比较不重要的部分

变成0之后

因此可以降维:

降维

而且可以将矩阵分解之后压缩存储:

分解后从16个数缩减到8个数

而其实矩阵可以用SVD的方式分解出来:

分解的示意图

分解的示意图2

所以可以考虑把后面的比较小的去掉。

前n项计算出来的结果

四个不同的大小矩阵计算

如果不是一个方阵,其实也可以做:

非方阵的情况

图像压缩

基于之前的SVD技术,可以进行图像压缩。

先对原始图像进行分解,只保留一行一列的情况下:

图像压缩保留一行一列

而之后已经基本上等于0了:

到后面就基本上等于0了

如果保留前3项,就已经和原图很像了;如果保留前4项,就已经一样了。

压缩