彻底搞懂 SVD!矩阵究竟怎么就奇异了?

前言

奇异值分解(SVD)这个名字在线性代数中的迷惑程度和特征值并列,仅次于相似和合同变换。你可能会问:已经有特征值分解了,为什么还要搞一个更复杂的奇异值分解?矩阵好好的,哪里就”奇异”了呢?为什么非要把一个矩阵拆成 U·Σ·Vᵀ 三个矩阵的乘积?

答案很简单:SVD 是线性代数的超级节点,串联起了线性组合、基底、特征值等所有内容。搞懂它,你对矩阵的理解将会产生质变。

一、SVD 的几何意义:旋转 → 伸缩 → 摆放

SVD 的核心公式:$$A = U \Sigma V^T$$

任何矩阵 A(无论方阵还是长方阵、可逆还是不可逆)对空间的作用,都可以精确分解为三步:

1
2
输入空间 ──[Vᵀ]──→ 坐标空间 ──[Σ]──→ 坐标空间 ──[U]──→ 输出空间
旋转/坐标变换 伸缩 摆放

第一步:Vᵀ(旋转/坐标变换)

在输入空间建立 V 坐标系(正交坐标系,每个列向量长度为 1)。Vᵀ 乘以向量 x 就是将其在 V 坐标系下分解成坐标。

正交矩阵的神奇性质在于,左乘 Vᵀ 将向量转为坐标,左乘 V 则将坐标重组为向量——互为逆操作。因为 V 的列向量两两垂直且长度为 1,向量与某个轴的单位向量做内积,就能直接得到这个轴的线性组合系数。

第二步:Σ(伸缩)

Σ 是对角矩阵,只有对角线有非零元素 σ₁, σ₂, … 称为奇异值。它的效果是沿坐标轴方向分别伸缩 σᵢ 倍。

第三步:U(摆放)

在输出空间建立 U 坐标系(同样正交),把伸缩后的坐标”拎起来”,对准 U 坐标系”拍下去”,得到最终的 Ax。

可视化理解

想象一个标准坐标系里的圆形滑稽脸:

  1. Vᵀ 作用:建立新坐标系,滑稽脸跟着旋转
  2. Σ 作用:沿 V₁ 方向拉长 σ₁ 倍,V₂ 方向压缩 σ₂ 倍 → 圆形变成椭圆
  3. U 作用:把椭圆在输出空间重新摆放

关键规律: U₁ 永远对应 V₁ 方向,U₂ 永远对应 V₂ 方向,一一对应。

二、奇异值的深刻含义

什么是”奇异”?

奇异(Singular)在数学中意味着「在这个位置失去一般性 / 没有定义 / 不可逆」。

举个例子:如果 σ₂ = 0,所有点的第二个坐标都乘以 0,整个滑稽脸被压成一条线——无法逆向唯一还原,因为一条线上的多个点被压缩到了同一位置。

结论:只要有任何一个奇异值为 0,矩阵就不可逆。

奇异值与秩

非零奇异值的个数 = 矩阵的秩 = 列空间的维数。输入空间在这些维度上还有信息分布。

但秩有一个”神经质”的问题:考虑两个矩阵——

1
2
3
4
5
A  = |1   1  |  两列共线,秩 = 1
|1 1 |

A' = |1 1 | 秩 = 2,但几乎奇异
|1 1.001|

A 和 A’ 几乎相同,但秩一个是 1,一个是 2。A’ 理论上可逆,但求逆会非常病态(稍微扰动就跑偏十万八千里)。在有扰动的现实世界,我们很难找到严格不可逆的矩阵,但很多矩阵”几乎奇异”。

这就是 SVD 不可替代的原因——它不仅仅告诉你”是否奇异”,还告诉你”有多奇异”。

三、矩阵的谱(Spectrum)

把所有奇异值由大到小排列,这个单调下降的数列叫做矩阵的谱。就像物质元素的光谱一样,矩阵的谱告诉我们:哪些维度被拉长、哪些被压缩,倍数分别是多少。

相比之下,秩只是统计有多少个奇异值严格不等于 0,显得非常粗糙。工程应用中动辄成千上万维度的矩阵,不可能用”瞪眼法”判断是否”几乎奇异”,必须用 SVD 分析谱。

四、SVD 与特征值分解的关系

SVD 的一个漂亮副产品是揭示了 AᵀA 和 AAᵀ 的深层结构:

$$A^TA = V \Sigma^T U^T \cdot U \Sigma V^T = V \Sigma^2 V^T$$

这意味着:

  • V 的列向量就是 AᵀA 的特征向量
  • σᵢ² 就是 AᵀA 的特征值
  • U 的列向量就是 AAᵀ 的特征向量

由此可以推出几个重要结论:

  • 对称矩阵的特征值一定非负(因为 σᵢ² ≥ 0)
  • 对称矩阵的特征向量两两垂直
  • 转置矩阵和逆矩阵的差距就是 Σ vs Σ⁻¹:$$A^{-1} = V \Sigma^{-1} U^T$$

只要有一个 σᵢ = 0,Σ⁻¹ 就炸了——再次印证奇异值与可逆性的关系。

五、SVD 的计算方法

标准计算流程很简单:

  1. 计算 AᵀA
  2. 求 AᵀA 的特征值,开根号得奇异值 σᵢ
  3. 求 AᵀA 的特征向量,拼成 V
  4. 计算 AAᵀ,求其特征向量,拼成 U

六、经典应用:图像压缩

SVD 可以从谱分解视角理解——把大矩阵像”剥洋葱”一样拆成一层层切片:

$$A = \sum_{i} \sigma_i u_i v_i^T$$

  • 大 σᵢ 对应的分量:主要信息、最大轮廓、最强能量
  • 小 σᵢ 对应的分量:细微细节,甚至只是噪声

图像压缩案例: 一张 700×700 的黑白照片 = 700×700 的像素矩阵。做 SVD 后发现绝大多数能量集中在前 10% 的奇异值,后 90% 的奇异值很小,贡献微弱。

压缩策略就是只保留前 k 个奇异值,扔掉后面的:

保留奇异值数 占比 效果
K = 7 1% 大致色块,可见横竖基底结构(压缩过度)
K = 20 3% 人影可辨认,横竖结构消失
K = 35 5% 角色可识别
K = 70 10% 细节丰富,线条清晰
K > 70 >10% 继续增加只是去噪,提升有限

马赛克的本质

过度压缩会导致底层分量(横竖数值的方块图案)显露出来——这就是马赛克的由来。

注:实际工程中图片压缩不用 SVD,因为每张图都要存基底 U、V,开销太大。实际用的是固定基底——傅里叶变换。但 SVD 作为理解”低秩近似”概念的绝佳工具,其教育价值不可替代。


核心要点总结

  1. 三步走:旋转 → 伸缩 → 摆放,这就是 SVD 的全部
  2. 奇异值:检验各坐标轴方向的压缩是否”奇异”,零奇异值 = 不可逆
  3. 谱:比秩更精细的矩阵健康指标,告诉你”有多奇异”
  4. 对称矩阵:特征值非负,特征向量正交 —— 从 SVD 视角一目了然
  5. 数据压缩:抓主要矛盾(大奇异值),忽略次要矛盾(小奇异值)

本文内容整理自漫士沉思录的 B站视频 《彻底搞懂SVD!矩阵究竟怎么就奇异了?》,整理日期:2026-05-20。