奇异值分解
奇异值分解(singular value decomposition,SVD)把任意实矩阵的作用拆成正交方向之间的伸缩。矩阵可以不是方阵,也可以没有逆。设 为 实矩阵,秩为 。它可写成 非零奇异值按 排序。 这里 是输入空间中两两正交的单位向量, 是输出空间中两两正交的单位向量; 是非零奇异值。式子 说得很具体:沿第 个输入方向走一个单位,输出沿对应方向走 个单位。对没有输出的方向, 把它送到零。
单位圆怎样变成椭圆
看一个不是对称矩阵的例子: 输入单位方向 被送到 ,其中 ; 被送到 ,其中 。因而 取 ,便有 。 左右两组方向各自正交,但承担不同角色: 指明输入方向, 指明对应的输出方向。这里先伸长,再把方向转过直角。直接相乘可以复核 。
把单位圆参数化为 ,其像为 。消去 得 :水平半轴长一,竖直半轴长二。图左的两条输入单位方向,对应图右标出的两条输出半轴;半轴长度就是奇异值。
本例 。它的特征值四和一开平方,正是奇异值二和一。这不是巧合,也是一般构造的入口。
从对称矩阵得到任意矩阵的分解
对任意 ,矩阵 对称,且对所有 有 。由实对称矩阵谱定理,它有一组正交规范特征向量 ,特征值非负。把正特征值写为 ,并定义 。
还需核对这些 确实正交。由特征向量的正交性, 零特征值的方向满足 ,因而 。任意输入 都能沿这组 分解;作用 后,零方向消失,剩下 这就是开篇的公式,也说明正奇异值的个数恰为矩阵的秩。若把两组单位向量各补足为完整正交基,还能写成 ;完整 可为长方形,未使用的位置填零。零奇异值并非“没有分解”,它们记录的是核中的输入方向。
伸缩范围与条件数
沿正交输入方向分解后,输出长度可逐项计算: 对单位输入,最大可能输出长度是 ,在 取得;因此矩阵的二范数 。若 是可逆方阵,最小伸缩倍数为 ,于是二范数条件数为 。这一公式在奇异方阵上不能把零奇异值放到分母里当成有限条件数。
例如对角矩阵 ,沿第二坐标的输入被压缩一千倍。若输出第二坐标因测量误差增加 ,恢复输入时第二坐标会增加一。这里的放大来自问题本身;计算方法再精确,也不能从受噪声污染的数据中无条件恢复被强烈压缩的方向。
只保留较大的伸缩方向
令 ,其中 。它的秩至多为 ,丢掉的部分在二范数下满足 。这个截断不仅方便计算,在所有秩不超过 的矩阵里,它还达到最小的二范数误差。
可以直接看出下界。任取秩不超过 的矩阵 ;在 这个 维空间内, 必有一个单位零向量 。由于 ,而 只由前 个 组成, 所以没有秩 的 能让最大方向误差小于 ; 刚好达到它。对前面的二阶矩阵,只留 得 ,丢失的竖直输入方向造成的最大误差为一。截断是改变原变换以换取低秩表示,不能把被丢弃的方向一概判作“噪声”。
练习取 。计算 ,其特征值为二和零,所以奇异值为 。向量 落入核;这说明即使矩阵有两个输入坐标,也可能只保留一个可辨别方向。
参考资料与知识联系
- MIT OpenCourseWare:奇异值分解:一般矩阵的正交—伸缩—正交表示。
- MIT 18.065,SVD 与低秩逼近讲次。
- 先修:正交矩阵、实对称矩阵谱定理;应用:条件数、伪逆、最小二乘法。