奇异值分解

瘦(约简)SVD

完整 SVD 背负了大量无用之重。若 A 是 1000×3 的瘦高矩阵,完整的 U 就是 1000×1000——一百万个元素——尽管只有前 3 列会与奇异值发生作用;其余 997 列乘的都是 Sigma 中的零。瘦 SVD 抛掉这些浪费的结构,只保留真正干活的部分。

具体地说,对 m >= n 的瘦高 m×n 矩阵,瘦 SVD 写作 A = U_hat Sigma_hat V^T,其中 U_hat 为 m×n(仅前 n 个左奇异向量),Sigma_hat 为 n×n 方对角阵,V 为 n×n。若进一步只保留 r 个非零奇异值(r = rank A),便得到紧凑 SVD A = U_r Sigma_r V_r^T,其中 U_r 为 m×r,Sigma_r 为 r×r 且可逆,V_r 为 n×r。

乘积与完整 SVD 完全相同——你没有丢失关于 A 的任何信息,丢掉的只是那些与零奇异值配对、毫无贡献的 U 的列。对宽矩阵(m < n),同样的思路改为裁剪 V。这正是数值库默认返回的形式,因为它以能精确重建 A 的最小代价进行存储与计算。

可以把它想成一张完整世界地图与一张只裁出你唯一会驾车前往的国家的地图之间的区别。紧凑形式也是伪逆与低秩工作的天然居所,因为 Sigma_r 是方阵且可逆,且不再有需要绕开的填充零。

1000x3 matrix: full U is 1000x1000; thin U_hat is 1000x3 (same product A)

对瘦高矩阵,瘦 SVD 成本低得多,却能完美重建 A。

瘦 SVD 保留 n 个奇异向量(部分 sigma 仍可能为零);紧凑 SVD 只保留 r 个非零的。人们常把“瘦”笼统地用来指代两者;要看保留的方块是 n×n 还是 r×r。

又称
economy SVDcompact SVD