资讯

海森矩阵是什么?描述函数弯曲程度的二阶导数矩阵

2026-11-053 分钟阅读百科
TL;DR海森矩阵(Hessian Matrix)是多元函数所有二阶偏导数构成的方阵,以德国数学家黑塞命名,描述函数在各方向上的曲率;在临界点处,其特征值全正为局部最小、全负为局部最大、有正有负为鞍点;它用于牛顿法等二阶优化、分析损失曲面的平坦度与条件数,但在大模型中规模过大,常用拟牛顿法或海森向量积近似。

海森矩阵(Hessian Matrix),也叫黑塞矩阵,是由一个多元函数的所有二阶偏导数组成的方阵。它以 19 世纪德国数学家路德维希·奥托·黑塞的名字命名。如果说梯度告诉我们函数在某一点往哪个方向上升最快,那么海森矩阵则告诉我们函数在这一点附近是怎样“弯曲”的。

它是什么样的

对于一个有 n 个变量的函数,海森矩阵是一个 n 行 n 列的矩阵:第 i 行第 j 列的元素,是函数先对第 i 个变量求偏导、再对第 j 个变量求偏导的结果。对角线上的元素表示函数沿每个坐标轴方向的弯曲程度;非对角线上的元素表示两个变量之间的相互影响。当函数足够光滑时,求偏导的顺序不影响结果,海森矩阵是一个对称矩阵。

用它判断极值点

在单变量的微积分中,我们知道:一阶导数为零的点可能是极值点,再看二阶导数:大于零是极小值,像一个碗的底部;小于零是极大值,像一个山顶。对于多变量的函数,梯度为零的点叫作临界点,判断它是什么类型,就要看海森矩阵。如果海森矩阵的所有特征值都是正的,说明函数在各个方向上都向上弯,这个点是局部最小值;如果所有特征值都是负的,各个方向都向下弯,是局部最大值;如果特征值有正有负,说明在有的方向上向上弯、有的方向上向下弯,这个点是鞍点,形状像马鞍的中心。特征值越大,说明在对应方向上弯曲得越厉害。

在优化中的应用

牛顿法:梯度下降只用一阶导数的信息,每一步沿着最陡的方向走一小步,步长需要人为设定。牛顿法则同时利用梯度和海森矩阵:用二次函数在当前点附近近似原函数,然后直接跳到这个二次函数的最低点。具体来说,更新的方向是海森矩阵的逆乘以梯度。它能根据函数的弯曲程度自动地调整每个方向上的步长:在弯曲剧烈的方向上走小步,在平缓的方向上走大步。在接近最优解时,牛顿法收敛得非常快。逻辑回归等模型的一些求解方法就使用了牛顿法。条件数:海森矩阵最大特征值与最小特征值之比,叫作条件数。条件数很大,说明函数在某些方向上非常陡、另一些方向上非常平,形状像一个狭长的山谷,梯度下降会在陡峭的方向上来回震荡、在平缓的方向上进展缓慢,收敛很慢。这也解释了为什么对特征进行标准化、在神经网络中使用归一化层能加快训练:它们让损失函数的形状更“圆”,条件数更小。

在深度学习中

对于有数十亿个参数的神经网络,海森矩阵的元素数量是参数数量的平方,根本无法存储和计算,更不用说求逆。因此,在深度学习中通常不直接使用牛顿法,而是使用各种近似的方法:拟牛顿法,比如 BFGS 和节省内存的 L-BFGS,通过梯度的变化逐步地近似海森矩阵;只计算海森矩阵与某个向量的乘积,这可以通过两次反向传播高效地完成,而不需要构造整个矩阵;Adam 等自适应优化器,可以看作对海森矩阵对角线信息的一种粗略近似;K-FAC、Shampoo 等方法则用更结构化的方式近似二阶信息。研究者还通过分析海森矩阵的特征值来研究神经网络的训练:比如损失曲面在最优解附近是平坦还是尖锐,平坦的极小值往往泛化得更好;海森矩阵的最大特征值与学习率之间的关系,也被用来理解训练的稳定性。此外,在一些模型压缩方法中,比如“最优脑损伤”和 GPTQ 量化,也利用海森矩阵的信息来判断哪些参数更重要。