课程/M07/M07 SVD
M075 篇概念23 道题

M07 · SVD

一句话:奇异值分解把任意矩阵拆成「旋转—拉伸—旋转」,并告诉你这个矩阵真正用力在哪几个方向;低秩近似、伪逆、PCA、LoRA 都是它的推论。

这个模块解决什么

学完 M06,你会对方阵做特征分解。但真实世界里的矩阵大多不是方阵,也经常不可对角化:

  • 一个 的数据矩阵,怎么找它的「主要方向」?
  • 一个秩亏的矩阵,怎么定义「逆」?
  • 一张图和 1600 万参数的权重,凭什么能压到十分之一而「看起来没变」?
  • 为什么大模型微调只改 0.1% 的参数也能有效?

SVD 是这些问题的统一答案。它的核心陈述只有一句:,而且对任意矩阵都成立。剩下的工作,是理解 的几何与数值含义,并学会用它做压缩、求逆、降维、约束。

本模块的路线:几何(7.1)→ 计算与性质(7.2)→ 低秩近似(7.3)→ 伪逆与数值秩(7.4)→ 三个应用(7.5)。

本模块的现实问题

  1. 12 万张 1024×1024 的老照片,怎么从 126 GB 压到 25 GB 还不糊?(7.1)
  2. 3000 个细胞 × 2000 个基因,保留几个主成分才不算噪声?(7.2)
  3. 2 万篇历史工单,怎么自动路由到 100 个主题队列?(7.3)
  4. 7B 模型的全参微调要 112 GB,怎么在 24 GB 的卡上做?(7.5)

概念地图

flowchart LR A[7.1 几何
旋转-拉伸-旋转] --> B[7.2 计算与性质
AᵀA 特征分解] B --> C[7.3 低秩近似
Eckart–Young] B --> D[7.4 伪逆与数值秩
截断与条件数] C --> E[7.5 应用
PCA / 推荐 / LoRA] D --> E F[6.4 谱定理] -.-> A G[2.6 秩] -.-> B H[4.5 伪逆] -.-> D I[4.6 条件数] -.-> D

学习顺序

顺序文档时间读完你应该能……
17.1 SVD 的几何:旋转-拉伸-旋转35 min说清 各自的几何角色,手算 的 SVD
27.2 SVD 的计算与性质40 min由 求 SVD,用 算秩/范数/条件数,解释与特征值的区别
37.3 低秩近似与 Eckart–Young40 min证明并应用 ,算压缩比与误差
47.4 伪逆、数值秩与条件数35 min用 统一超定/欠定,判断何时截断
57.5 SVD 应用:PCA、推荐与 LoRA40 min写清 PCA 的流水线,区分 SVD 与梯度训练的矩阵分解

配套材料:习题(先做,再看答案)、实验 lab07(约 30 分钟,验证本模块全部公式)。

本模块的大模型钩子

  • 权重谱: 是这一层的 Lipschitz 常数;谱衰减快意味着可压缩(7.1、7.2)
  • LoRA:,参数量 、秩至多 ; 时占全参数 (7.3、7.5)
  • 模型与 KV 压缩:截断 SVD 的误差被 精确控制;KV Cache 可低秩近似(7.3)
  • 数值稳定性: 决定误差放大倍数;bf16 下秩有精度天花板(7.2、7.4)
  • 闭式编辑: 是「改动最小」的权重编辑,秩 (7.4)
  • 表征分析:中心化后对激活做 SVD,前几个主成分解释表示的主要方差(7.5)

自测(读完再做)

  1. 的奇异值是多少? 分别是什么?
  2. 为什么 等于非零奇异值的个数,而不是非零特征值的个数?
  3. 是 矩阵,奇异值 、。保留秩 9 的 Frobenius 误差至少是多少?谱误差呢?
  4. 什么情况下 ?给出一个反例说明一般不成立。
  5. 为什么要先中心化再做 PCA?不中心化会得到什么?
  6. LoRA 的 为什么不能直接当作 的奇异向量?
自测答案
  1. ; 把 翻成 ,所以 、、。检验:。
  2. 奇异值非零当且仅当 ,即 不被压进零空间;非零奇异值的个数恰是列空间维数。特征值可能为 0 但秩不为 0(如 特征值全 0、秩 1),故不能用特征值判断。
  3. Frobenius 误差 ,仅知道 时下界是 ;谱误差恰为 。
  4. 满列秩()时 ;若 秩 1,则 。
  5. 不中心化时第一主成分指向数据均值方向,解释的是「位置」而非「变化」;中心化把问题变成围绕均值的形状。
  6. 只是秩 的一种参数化, 通常既不正交、也不按奇异值排序;要读出谱,得对训练后的 再做一次 SVD。

前置与后续


下一篇 → 7.1 SVD 的几何:旋转-拉伸-旋转

本模块概念

做本模块练习 →
输入关键词开始搜索