Singular Values and Spectral Decomposition
先看两个矩阵:
它们的秩都是 2,但保留二维信息的能力并不相同。 完全不改变单位圆; 却把单位圆压成了一根针。第二个坐标在精确算术中确实还没有消失,但只要混入一点噪声,它就可能被彻底淹没。
秩说不出这种差别。它能告诉我们某个方向是否已经消失,却不能告诉我们这个方向离消失还有多远。我们真正想要的是另一种描述:矩阵作用在哪些输入方向上,分别把它们伸缩了多少,最后又把它们送到了哪些输出方向。
奇异值分解给出的正是这种描述。下面先从二维图形建立直觉,再沿着同一幅图理解奇异值谱、、低秩近似、谱分解和谱范数。
奇异值分解
对实矩阵 ,奇异值分解写作
和 是正交矩阵, 是一个矩形对角阵,它的对角元就是奇异值:
要看懂这个乘积,最好按照它作用在向量上的顺序,从右向左读:
记 为 的第 列,那么 的第 个分量是
因此, 所做的是读取 沿输入方向 的坐标; 再把这个坐标乘以 ;最后, 把结果写到输出方向 上。换一种更紧凑的写法,就是
整个分解的几何意义都藏在这个式子里: 是一组正交输入方向, 是一组正交输出方向, 记录从前者到后者还保留了多少长度;如果 ,整个 方向都会被抹掉。
调节下面的 、、 和 ,四幅图会让同一个固定向量依次经过 、、 和 。
单位球会变成什么形状,现在已经很清楚了。 和 都是正交变换,不会改变长度;真正改变长度的只有 。所以, 会把单位球变成椭球,椭球各条半轴的长度是奇异值,方向则是 的各列。
奇异值的作用
开头两个矩阵的奇异值分别是 和 。秩只看这两组数里有几个不为零:
奇异值补上了秩遗漏的信息。奇异值等于零,表示这个方向已经彻底消失;奇异值很小,表示这个方向在代数上仍然存在,却在数值上非常脆弱,因为恢复它时必须除以一个很小的数。
对满秩方阵,这种脆弱程度可以用二范数条件数概括:
的条件数是 ,这意味着在求逆时,沿弱方向的误差可能被放大到同一数量级。如果 ,逆矩阵不存在,条件数记为无穷大。
奇异值谱
把奇异值排列成有序列表 ,得到的是奇异值谱。这里的限定词不能省略:方阵的“谱”通常指它的特征值,而特征值可以是负数或复数;奇异值适用于矩形矩阵,并且总是非负实数。
维度很高时,谱的尾部往往比精确秩更有信息。给定阈值 ,可以定义有效秩
给定截断位置 ,还可以计算前 个方向保留了多少平方奇异值总量:
平坦的谱把尺度分散在许多方向上;快速衰减的谱则把尺度集中在前几个方向上。因此,一个矩阵完全可以拥有满的精确秩,同时在实际效果上很像一个低维映射。
下面的例子采用 ;调节 、 和 ,可以直接观察谱的衰减如何改变有效秩、保留能量和截断误差。
ε
σ1
σ2
σ3
σ4
σ5
σ6
σ7
σ8
σ9
σ10
σ11
σ12
σ13
σ14
σ15
σ16
- 有效秩
- rε = 11
- 保留能量
- E5 = 91.0%
- 截断误差
- σ6 = 0.301
这正是奇异值比秩更有用的地方:它把“这个方向还在不在”的二元判断,变成了“这个方向还保留了多强”的定量描述。
从 AᵀA 求 SVD
SVD 告诉我们,真正重要的输入方向是 的各列。那么,只给定 时,怎样找出这些方向?
关键观察是,输出长度的平方可以写成一个二次型:
因此, 记录了 对每个输入方向的伸缩程度,却不再保留输出最后朝向哪里。把 SVD 代入后,这个消去过程会直接显现出来:
因为 ,左奇异方向被抵消了,剩下的正是 的正交谱分解:
所以,右奇异向量是 的特征向量,奇异值则是对应特征值的平方根。对每个正奇异值,还可以进一步得到左奇异向量:
当 时,这个式子没有定义, 中剩余的列需要用一组正交补补齐。在输出空间做同样的推导,可以得到
这里有一个常见的简写错误。对任意向量 ,正确的式子是
而不是 。只有先把 写进 的坐标系,或者 本身就是某个 时,对角阵的作用才会直接显现。
通过特征分解理解 SVD 很自然,但它不是首选的数值算法。显式构造 会把条件数平方,弱方向上的信息可能因此丢失;稳定的 SVD 算法通常直接处理 ,例如先把它化为双对角阵。
谱分解
关系式 只描述了 对一个特殊方向的作用。要恢复它对任意向量的作用,先把 展开为
再对两边作用 ,得到
因为这个式子对所有 都成立,所以矩阵本身可以写成
每个秩一项都是一条独立的方向通道: 读取一个输入坐标, 对它进行伸缩, 再把结果写入输出空间。只保留前 条通道,就得到截断 SVD:
Eckart–Young 定理说明,在谱范数和 Frobenius 范数下, 都是 的最佳秩 近似;对谱范数,误差还有一个特别简洁的形式:
这就是谱图尾部值得关注的原因:第一根被舍弃的柱子,恰好等于剩余部分在最坏方向上的误差。
这个秩一展开有时会被宽泛地称为“谱分解”,但保留术语边界很有用。实对称矩阵具有正交特征分解
这里同一个方向 同时出现在左右两边。对一般矩阵,输入方向 与输出方向 未必相同,所以它的 SVD 并不是 自身的正交谱分解。
如果 是对称半正定矩阵,它的特征值都非负,特征分解便与 SVD 对齐。如果 对称但不定,奇异值是 ,符号会被吸收到一侧的奇异向量中。对任意矩阵,始终拥有正交谱分解的是 和 :
谱范数
同一幅几何图还能直接给出最后一个量。谱范数所问的是: 最多能把一个单位向量拉长多少倍?
令 。正交性保证 ,于是
取 时等号成立,因此
现在可以回答开头的问题了。理解一个矩阵,最有用的方式是把它看成一组正交的方向通道:
秩只计算其中有多少条通道的增益不为零;奇异值谱记录所有通道的强弱;截断会以最优方式删去弱通道;谱范数则是最强通道的增益。这幅图适用于任意实矩阵,而只有当矩阵对称时,它的输入方向和输出方向才会对齐,形成矩阵自身的正交谱分解。