线性代数直觉(四):找到特征向量

想想刚才发生了什么。我们有一个优化问题:“当 v 旋转时,v^T H v 的最大值和最小值是多少?” 这似乎需要用到微积分,检查所有无穷多个方向……

但事实证明,答案直接通过这个代数方程编码在矩阵本身中!特征值就是那些极端曲率。

更深层次的原因在于:当 v 是一个特征向量,一个特殊的方向时,H·v 不再是把 v 拉向其他方向,而是指向与 v 相同的方向,只是乘以了特征值 λ。

所以:v^T H v = v^T (λv) = λ(v^T v) = λ

因为对于单位向量,v^T v = 1。

所以在特征向量方向上,“曲率”恰好等于特征值。而这些方向恰好是曲率最大和最小的地方!


这不仅仅是我们用来做曲面的 2×2 Hessian 矩阵。这是任意维度上二次优化的基本结构。

当你训练一个包含数百万个参数的神经网络时,Hessian 矩阵就是一个百万乘百万的矩阵。在这个难以理解的高维空间中,你可以问自己:“哪个方向的曲率最陡?哪个方向最平坦?”

特征值会告诉你答案:最大的特征值代表曲率最陡的方向,最小的特征值代表最平坦的谷底。

这就是我们理解优化景观的方式。这就是我们判断梯度下降法是否有效、是否停滞或是否震荡的方式。 Hessian 矩阵的特征值,它们是理解学习几何的诊断工具。

如果你想了解大模型是如何被训练的,这已经接近核心了。Hessian 矩阵、特征值、高维空间中的曲率,这些正是塑造大模型的数学领域。


考试的时候,每个人都机械地计算特征值和特征向量,却不知道为什么。但现我们先明白了为什么,先把曲率形象化了,发现了极值,然后我们再学习计算,这其实是更好的顺序。

对于之前的扁碗的Hessian矩阵:H = [[2,1] [1,4]]

我们找到了特征值:λ₁ = 3 + √2 ≈ 4.414 和 λ₂ = 3 - √2 ≈ 1.586

为了求 λ₁ = 3 + √2 的特征向量,我们求解:

(H - λ₁I)v = 0

[[2-(3+√2), 1 ][1, 4-(3+√2) ]]  [[v₁] [v₂]] = [[0] [0]]

[[-1-√2, 1 ] [1, 1-√2 ]] [[v₁] [v₂]] = [[0] [0]]

从第一行开始:(-1-√2)v₁ + v₂ = 0

所以:v₂ = (1+√2)v₁

我们可以取 v₁ = 1,因此特征向量近似为 (1, 2.414),指向曲率最大的方向。

而根据程序画的正弦曲线,最高点出现在 θ = (4.3230-3.1416)/3.1416 ≈ 0.375 π 的附近。而 tan(0.375 π) ≈ 2.42。

 

 

 

posted @ 2025-10-24 22:10  CathyBryant  阅读(4)  评论(0)    收藏  举报  来源