如何通俗地理解奇异值?

奇异值分解,就是把矩阵分成多个“分力”。奇异值的大小,就是各个“分力”的大小。
让我们从小时候玩过的翻绳游戏开始这个问题的讲解。
1 翻绳
对于翻绳的这个花型而言,是由四只手完成的:
我们可以认为这个花型是由两个方向的力合成的:
容易想象,如果其中一个力(相比另外一个力而言)比较小的话,那么绳子的形状基本上由大的那个力来决定:
2 奇异值分解与奇异值
类比于翻绳,我们可以认为:
  • 奇异值分解,就是把矩阵分成多个“分力”
  • 奇异值的大小,就是各个“分力”的大小
2.1 奇异值分解
下面通过一个具体的矩阵例子来解释下,比如:
根据之前的类比,矩阵是“力”,“力”怎么画出来呢?
翻绳游戏中的“力”要通过绳子的形状来观察。很显然要观察矩阵也需要一个载体。
我们通过单位圆来观察矩阵:
把这个单位圆的每一点都通过进行变换,得到一个椭圆(我把单位圆保留下来了,作为一个比较):
进行奇异值分解:
实际上,将分为了两个“分力”:
我们来看看第一个“分力”,,作用在单位圆这个“橡皮筋”上的效果:
可怜的“橡皮筋”被拉成了一根线段。
我们来看看第二个“分力”,,作用在单位圆这个“橡皮筋”上的效果:
可怜的“橡皮筋”被拉成了另外一根线段。
这两个“分力”一起作用的时候,可以想象(画面自行脑补),单位圆这个“橡皮筋”被拉成了椭圆:
2.2 奇异值的大小
刚才举的矩阵的两个“分力”大小,只相差一倍,如果相差很大会怎么样?
换一个矩阵,对它进行奇异值分解:
这两个“分力”的奇异值相差就很大,大概相差了40倍。
单位圆被映射成了短轴和长轴相差太大的椭圆,看起来和直线差不多:
我们试试,把小的那个奇异值去掉会怎么样:
把单位圆变为了一根直线:
这个直线和之前的椭圆看上去差不多。
回到之前的比喻,两个相差很大的分力作用在“橡皮筋”上,“橡皮筋”的形状可以说完全取决于大的那个分力。
2.3 奇异值为什么这么神奇?
奇异值分解实际上把矩阵的变换分为了三部分:
  • 旋转
  • 拉伸
  • 投影
拿刚才的:
举例子(方阵没有投影,不过不影响这里思考):
单位圆先被旋转,是没有形变的:
再进行拉伸,这里决定了单位圆的形状,奇异值分别是椭圆的长轴和短轴:
最后,被旋转到最终的位置,这一过程也没有发生形变:
所以,奇异值决定了形变,大小决定在形变中的重要性。
3 总结
根据奇异值分解、以及奇异值的特点,有很多应用。
比如,可以把图片转为矩阵,通过丢弃不重要的奇异值,进行压缩: