适用于一切矩阵的分解
谱定理很美,但它只对对称矩阵成立。可大多数矩阵并不对称——许多甚至不是方阵。奇异值分解(SVD)能处理它们全部。对任意 m-by-n 的矩阵 A:A = U*S*V^T,其中 U 和 V 是正交矩阵(旋转/反射),S 是对角矩阵、元素非负。
A = U * S * V^T V^T : rotate the input (orthogonal) S : stretch each axis by sigma_1 >= sigma_2 >= ... >= 0 U : rotate into the output (orthogonal)
几何:旋转、拉伸、旋转
想象单位圆。作用 A 之后它变成一个椭圆。SVD 精确地命名了这个变换的各个部件。
- V^T 旋转输入空间,让那些特殊的输入方向对齐到坐标轴上。
- S 按各自的奇异值 sigma_i 拉伸每个轴——它们就是椭圆各半轴的长度。
- U 把拉伸后的结果旋转到它在输出空间里的最终朝向。
奇异值 sigma_1 >= sigma_2 >= ... >= 0 是 SVD 的核心。大的奇异值对应矩阵大幅拉伸的方向;近乎为零的奇异值对应它几乎压扁的方向。这一串有序的数几乎告诉你矩阵行为的一切。
奇异值、秩与特征值
非零奇异值的个数恰好就是 A 的秩。所以 SVD 通过数个数就读出了秩——而且关键在于,它让你能衡量*近似*秩:若某个奇异值很小但不完全为零,那么这个矩阵*近乎*是更低的秩,这正是下一篇压缩的全部根据。