LOADING

加载过慢请开启缓存 浏览器默认开启

Matrix theory in machine learning

奇异值分解SVD在机器学习中的作用。

第三讲:为什么 SVD 这么重要?从矩阵分解理解 PCA、伪逆、低秩和稳定性

前两讲我们已经讲了两件事:

第一讲讲的是:

Xθ

从列空间角度看,线性回归是在用 X 的列向量组合出预测向量。

第二讲讲的是:

xTAx

从二次型角度看,正定/半正定矩阵保证方差、曲率、距离、内积这些东西是合理的。

第三讲进入最重要的矩阵分解:

SVD:Singular Value Decomposition

也就是奇异值分解。

1. SVD 的公式

任意矩阵 A∈Rm×n 都可以分解为:

A=UΣVT

其中 U∈Rm×m 是输出空间的一组正交方向;V∈Rn×n 是输入空间的一组正交方向;Σ∈Rm×n 是一个对角矩阵,主对角线上是非负数:

σ1≥σ2≥⋯≥0

这些 σi 叫奇异值。


2. SVD 最直观的理解:旋转、缩放、再旋转

A=UΣVT

可以理解成三步:

x⟶VTVTx⟶ΣΣVTx⟶UUΣVTx

也就是:

V^T:先旋转输入空间
Σ:沿坐标轴缩放
U:再旋转到输出空间

所以一个矩阵 A 的作用可以被拆成:

先换一个最合适的坐标系,再按不同方向拉伸/压缩,最后再换到输出坐标系。

一般矩阵 A 的作用看起来很乱,但 SVD 告诉你:它本质上只是在一些特殊方向上做缩放。


3. 奇异值 σi 是什么?

奇异值表示矩阵 A 在某个方向上的缩放强度。

  • σi 很大 → A 在对应方向上放大很多
  • σi 很小 → A 在对应方向上压缩很多
  • σi=0 → 这个方向被 A 完全压没了

这就和第一讲的 null space 接上了。如果某个非零方向 v 被映射成 0:

Av=0

说明这个方向的信息被矩阵丢掉了。对应到 SVD 中,就是某些奇异值为 0。

所以:

rank(A)=#{i:σi>0}

矩阵的 rank 等于非零奇异值的个数。


4. 一个二维图像直觉

想象你有一个单位圆 ∥x∥2=1。经过矩阵 A 变换后,单位圆通常会变成一个椭圆。

SVD 告诉你这个椭圆的两个主轴方向:

输入方向 v1 → 输出方向 u1,长度变成 σ1
输入方向 v2 → 输出方向 u2,长度变成 σ2

如果 σ1=5, σ2=1,说明一个方向被拉伸 5 倍,另一个方向只被拉伸 1 倍。

如果 σ2=0,单位圆会被压成一条线——这就是 rank 下降。

SVD 的几何图像是:

矩阵把单位球变成椭球,奇异值就是椭球各个主轴的长度。


5. 为什么 SVD 比特征值分解更通用?

特征值分解通常写成 A=QΛQ−1,或对于对称矩阵 A=QΛQT。但它有很多限制:

A 必须是方阵;
普通矩阵不一定能很好地特征分解;
特征值可能是复数;
特征向量不一定正交。

但 SVD 对任意矩阵都成立:A∈Rm×n,不管它是不是方阵、是不是满秩,都可以做 SVD。

机器学习里的数据矩阵 X∈Rm×n 经常不是方阵,所以 SVD 特别适合机器学习。


6. SVD 和 ATA、AAT 的关系

如果 A=UΣVT,那么:

ATA=VΣTUTUΣVT

因为 UTU=I,所以:

ATA=VΣTΣVT

这说明 V 是 ATA 的特征向量矩阵。而 ΣTΣ 的对角线是 σi2,所以:

ATAvi=σi2vi

即 σi2 是 ATA 的特征值。

类似地:

AAT=UΣΣTUT

所以 ui 是 AAT 的特征向量。

总结:

右奇异向量 V:输入空间里的重要方向
左奇异向量 U:输出空间里的重要方向
奇异值平方:A^TA 或 AA^T 的特征值

7. SVD 和线性回归:为什么伪逆能处理不可逆?

线性回归最小二乘:

minθ∥Xθ−y∥2

如果 XTX 可逆,可以写 θ=(XTX)−1XTy。但如果 XTX 不可逆,就不能这么写。

这时候可以用伪逆:

θ=X+y

如果 X=UΣVT,那么:

X+=VΣ+UT

其中 Σ+ 的做法是:非零奇异值 σi 变成 1/σi,零奇异值仍然保持 0。

即 σi↦1σi(σi=0 时保持 0)。


8. 为什么伪逆合理?

普通逆的意思是 A−1A=I,矩阵 A 做完变换后还可以完全反过来。

但如果某个方向被 A 压成 0(Av=0),这个方向的信息已经丢了,不可能再恢复。所以奇异矩阵没有真正的逆。

伪逆的想法是:

能恢复的方向尽量恢复,完全丢失的方向就不恢复。

用 SVD 说就是:

σ_i > 0 的方向:可以除以 σ_i,把缩放反过来
σ_i = 0 的方向:信息彻底丢失,不做恢复

伪逆不是魔法。它只是承认:有些方向不可逆,那就只在可逆的方向上做反变换。


9. 伪逆为什么给出最小范数解?

如果有无穷多个解满足 Xθ=y,那么这些解之间通常相差一个 null space 方向:

θ=θ0+v,v∈Null(X)

因为 X(θ0+v)=Xθ0+Xv=y,null space 方向不会影响训练集预测。

伪逆给出的 θ∗=X+y 会选择其中范数最小的那个。直觉是:

既然 null space 方向对预测没有贡献,那就不要在这些方向上浪费参数长度。

所以伪逆会把 null space 部分设为 0。这和机器学习中的一个重要思想有关:

在所有能拟合训练集的解里,偏向更小范数的解。


10. SVD 和 PCA:为什么 PCA 可以用 SVD 做?

PCA 的目标是找数据中方差最大的方向。

假设数据矩阵 X 已经中心化(每一列均值为 0),经验协方差矩阵是:

C=1mXTX

PCA 做的是对协方差矩阵做特征值分解:

Cvi=λivi

其中 vi 是主成分方向,λi 是该方向上的方差。

现在对 X 做 SVD:X=UΣVT,那么:

XTX=VΣTΣVTC=1mVΣTΣVT

这说明:

V 的列向量就是 PCA 主方向;
σ_i² / m 就是对应方向上的方差。

即 λi=σi2m。所以 PCA 可以直接通过 SVD 得到。


11. PCA 的直觉:保留大奇异值方向

  • σi 很大 → 数据在这个方向上变化很明显(方差大)
  • σi 很小 → 数据在这个方向上变化很弱,可能主要是噪声

PCA 的做法就是保留最大的 k 个奇异值对应的方向,丢掉较小奇异值对应的方向——这就是降维。

例如原始数据是 1000 维,但大部分变化集中在前 20 个方向上,那么可以只保留前 20 个主成分。

PCA 的本质:用少数几个最重要的方向近似原始数据。


12. SVD 和低秩近似

SVD 可以写成求和形式:

A=∑i=1rσiuiviT

其中 r=rank(A)。每一项 σiuiviT 都是一个 rank-1 矩阵——SVD 把一个矩阵拆成了很多个 rank-1 的"基础模式"。

如果只保留前 k 项:

Ak=∑i=1kσiuiviT

那么 Ak 就是 A 的 rank-k 近似。

一个非常重要的定理(Eckart–Young):

在所有 rank 不超过 k 的矩阵中,Ak 是最接近 A 的矩阵。

Ak=arg⁡minrank(B)≤k∥A−B∥F

它是 PCA、矩阵压缩、推荐系统、低秩建模的理论基础。


13. 低秩在机器学习里为什么重要?

低秩意味着:一个看起来很高维、很复杂的矩阵,其实主要由少数几个模式决定。这在机器学习里非常常见。

PCA:高维数据可能主要分布在低维子空间附近。例如图像虽然有很多像素,但自然图像不是任意像素组合,里面有很强结构,所以可以低维表示。

推荐系统:用户-物品评分矩阵 R∈Rusers×items 通常很大,但用户偏好可能由少数隐因子决定(喜欢科幻、喜欢喜剧、价格敏感、品牌偏好等),所以评分矩阵可以低秩近似。

LoRA:大模型微调里的 LoRA 也是低秩思想。权重更新 ΔW 被假设为可低秩分解 ΔW=BA,其中 B 和 A 的秩很小。意思是微调不需要改动整个高维权重空间,只需要在少数重要方向上调整。

Factor Analysis:协方差结构 Cov(x)=ΛΛT+Ψ 中,ΛΛT 是低秩部分(少数潜在因子造成的相关性),Ψ 是对角噪声。本质上在说:高维变量之间的相关性可以由少数 latent factors 解释。


14. SVD 和条件数:为什么小奇异值会导致不稳定?

矩阵 A 的条件数通常定义为:

κ(A)=σmaxσmin

其中 σmax 是最大奇异值,σmin 是最小非零奇异值。

条件数大说明:有些方向被放大很多,有些方向被压缩很多。这会导致求解非常不稳定。


15. 一个直观例子:小奇异值为什么危险?

假设矩阵在某个方向上只保留了非常小的量 σi=0.001。这说明输入方向 vi 经过矩阵后,被压缩成原来的千分之一。

如果你要反过来求解,就需要除以 0.001(即乘以 1000)。这意味着输出中的一点点噪声,反求参数时会被放大 1000 倍。

小奇异值对应的是"几乎不可观测的方向",在这些方向上求逆会极其不稳定。

这就是为什么病态矩阵会导致参数爆炸。


16. 为什么不推荐直接用 (XTX)−1?

XTX 的特征值是 σi2(σi 是 X 的奇异值)。如果 X 的条件数是 κ(X)=σmaxσmin,那么:

κ(XTX)=σmax2σmin2=κ(X)2

直接构造 XTX 会把原来的病态程度平方放大。

所以数值计算里经常不推荐直接求 (XTX)−1XTy,而更推荐 QR 分解、SVD、迭代优化或正则化。


17. SVD 和 Ridge:正则化如何处理小奇异值?

Ridge regression 的解是:

θridge=(XTX+λI)−1XTy

用 SVD 分析可以看得很清楚。设 X=UΣVT,那么普通最小二乘的伪逆解相当于:

θOLS=∑iuiTyσivi

注意这里有 1σi,如果 σi 很小就会爆炸。

Ridge 解可以写成:

θridge=∑iσiσi2+λ(uiTy)vi

这里的系数不是 1σi,而是 σiσi2+λ。如果 σi 很小,σiσi2+λ 也会很小,不会爆炸。

Ridge 的 SVD 解释:对大奇异值方向基本保留,对小奇异值方向强烈抑制。

这就是正则化为什么能提高稳定性。


18. SVD 和噪声:为什么小奇异值方向容易过拟合?

假设标签中有噪声 y=ytrue+ϵ。最小二乘解里有一项 uiTyσi,展开:

uiTytrueσi+uiTϵσi

如果 σi 很小,噪声项 uiTϵσi 会被放大。

小奇异值方向的问题是:

真实信号可能不强
但噪声会被除以很小的 σ_i 放大
导致参数大幅波动
泛化变差

这就是为什么 Ridge、截断 SVD、PCA 降维等方法都倾向于抑制小奇异值方向。


19. 截断 SVD:直接丢掉小奇异值方向

除了 Ridge,还有一种方法叫 truncated SVD:只保留前 k 个最大的奇异值,把后面的小奇异值方向丢掉。对应伪逆时,只对前 k 个取倒数。

这可以看成一种更硬的正则化:

Ridge:小奇异值方向被软抑制
Truncated SVD:小奇异值方向被直接丢弃

PCA 本质上也是一种截断 SVD。


20. 你现在应该如何理解 SVD?

不要把 SVD 记成 A=UΣVT 就结束了。你应该这样理解:

V:输入空间中最重要的一组方向
Σ:每个方向的重要程度/缩放强度
U:这些方向被映射到输出空间后的方向

如果用于数据矩阵 X:

V:特征空间中的主方向
Σ:每个主方向的强弱
U:样本空间中的对应模式

如果用于线性回归:

大 σ 方向:数据能清楚识别,参数稳定
小 σ 方向:数据几乎无法识别,参数不稳定
零 σ 方向:数据完全无法识别,属于 null space

如果用于 PCA:

大 σ 方向:高方差主成分
小 σ 方向:低方差方向,可能是噪声

如果用于低秩近似:

保留前 k 个 σ:保留主要结构
丢掉后面 σ:丢掉弱结构/噪声

21. 和前两讲串起来

第一讲讲 Xθ 是用 X 的列空间表达预测。如果 rank 不满,就有 null space,参数不唯一。

SVD 进一步告诉你:

rank 不满 = 某些奇异值为 0
null space = 零奇异值对应的输入方向

第二讲讲 XTX 是 PSD,正定性决定解是否唯一。

SVD 进一步告诉你:

X^TX 的特征值 = X 的奇异值平方
X^TX 是否正定 = X 是否所有奇异值都 > 0

第三讲补充:

奇异值不仅告诉你是否可逆,还告诉你可逆得稳不稳。
σ_i = 0:完全不可逆
σ_i 很小:理论上可逆,但数值极不稳定
σ_i 很大:方向信号强,比较稳定

22. 第三讲核心链条

你可以把这一讲压缩成下面几条链条。

链条一:SVD 的几何意义

A = UΣV^T
→ V^T 旋转输入空间
→ Σ 按方向缩放
→ U 旋转输出空间
→ 奇异值表示每个方向的缩放强度

链条二:SVD 和 rank

σ_i > 0 的个数 = rank(A)
σ_i = 0 表示某个方向被压成 0
→ 信息丢失 → 矩阵不可逆 → null space 非空

链条三:SVD 和伪逆

A = UΣV^T → A⁺ = VΣ⁺U^T
→ 非零 σ_i 取倒数,零 σ_i 不处理
→ 能恢复的方向恢复,丢失的方向放弃

链条四:SVD 和 PCA

X = UΣV^T → X^TX = VΣ²V^T
→ V 是 PCA 主方向
→ σ_i² / m 是该方向方差
→ 保留大 σ_i 方向就是降维

链条五:SVD 和稳定性

小 σ_i → 反求时需要除以小数 → 噪声被放大
→ 参数不稳定 → 条件数大 → 需要 Ridge / 截断 SVD / 正则化

23. 一句话总结第三讲

SVD 最重要的思想是:

任何矩阵都可以被理解为:先找到输入空间的一组关键方向,再按奇异值大小缩放这些方向,最后映射到输出空间。

在机器学习里,它的作用是:

解释 rank:非零奇异值个数
解释 null space:零奇异值方向
解释伪逆:只反转非零奇异值方向
解释 PCA:保留最大奇异值方向
解释低秩:少数大奇异值捕捉主要结构
解释不稳定:小奇异值会放大噪声
解释正则化:抑制小奇异值方向

你现在可以先记住一句最核心的话:

SVD 告诉我们,一个矩阵在哪些方向上有信息,哪些方向上没信息,哪些方向上信息很脆弱。