Hessian矩阵就像是一个多维度的“曲率仪”,通过特征分解,告诉我们函数在某个点沿着各个主方向(特征向量)的弯曲程度(特征值)。
1. 概述
Hessian矩阵是一个由多元函数的所有二阶偏导数构成的方阵,它描述了函数在某一点的局部曲率,是梯度(一阶导数)概念的自然延伸,提供了函数行为更丰富、更精确的信息。
对于一个 n 元函数 f(x1,x2,...,xn),其在点 x 的Hessian矩阵 H 定义为:
如果函数的所有二阶偏导数都连续,那么混合偏导与求导顺序无关,Hessian矩阵就是一个实对称矩阵,这个性质非常重要,因为它意味着可以对其进行特征值分解。
2. 应用
Hessian矩阵的核心目的可以概括为以下三点:
- 精确描述局部曲率:梯度(一阶导)告诉我们函数在某个点“向上”或“向下”的方向,但它无法告诉我们这个坡度是越来越陡还是越来越缓;Hessian矩阵(二阶导)则告诉我们坡度是如何变化的,即曲率,回答了沿着某个特定方向移动,梯度会如何变化的问题。
- 判别临界点性质:在梯度为零的点(称为临界点,可能是极小值、极大值或鞍点),一阶导数无法提供任何信息,Hessian矩阵成为了决定性工具:
Hessian 性质特征值符号几何形状临界点类型正定全部 > 0碗状局部极小值负定全部 < 0倒碗状局部极大值不定有正有负马鞍形鞍点半正定≥ 0 (且至少一个=0)槽状弱极小值或平坦区半负定≤ 0 (且至少一个=0)反槽状弱极大值或平坦区
- Hessian正定(所有特征值 > 0):局部碗状,局部极小值点,所有方向上的曲率都是向上的,从该点出发,无论往哪个方向走,函数值都会增加,典型函数:f(x, y) = x² + y²,其对应的Hessian矩阵 H为[[2, 0], [0, 2]] (特征值:2, 2)
- Hessian负定(所有特征值 < 0):局部倒碗状, 局部极大值点,所有方向上的曲率都是向下的,从该点出发,无论往哪个方向走,函数值都会减少,典型函数:f(x, y) = -x² - y²,其对应的Hessian矩阵 H:[[-2, 0], [0, -2]] (特征值:-2, -2)
- Hessian不定(特征值有正有负):马鞍点,沿一个特征向量方向曲率向上(是极小值),沿另一个正交的方向曲率向下(是极大值),该点既不是局部最小值也不是最大值,典型函数:f(x, y) = x² - y²,其对应的Hessian矩阵 H:[[2, 0], [0, -2]] (特征值:2, -2)
- Hessian半定(特征值 ≥ 0 或 ≤ 0): 局部槽状或平坦,无法确定,需要更高阶信息,对于半正定(≥0)的情况,至少有一个方向的曲率为零(平坦),其他方向曲率向上或为零。这是一个退化情况,可能是弱极小值或平坦区域,典型函数:f(x, y) = x² (在y方向上完全平坦),其对应的Hessian矩阵 H:[[2, 0], [0, 0]] (特征值:2, 0)
- 实现二阶优化方法:在优化算法中,梯度下降法只使用一阶信息,像是一个盲人仅凭手杖的坡度摸索下山,而牛顿法等二阶优化算法利用了Hessian矩阵,它不仅知道当前的坡度,还知道坡度的变化趋势(曲率),从而能预测更优的下山路径,实现更快的收敛速度。
3. 应用理解
角度1:从一元函数类比理解
理解Hessian的最好方式是从一元函数 f(x) 开始,一阶导数 f′(x)表示斜率或变化率,二阶导数 f′′(x)表示斜率的变化率,即曲率。
- f′′(x)>0:函数是“下凸”的(像碗状),局部形状像最小值。
- f′′(x)<0:函数是“上凸”的(像倒碗状),局部形状像最大值。
- f′′(x)=0:无法判断(可能是拐点)。
Hessian矩阵就是多元函数的二阶导数,对于一个 n 维函数,它有 n 个方向的主曲率(由特征值表示),而Hessian矩阵则完整地描述了所有这些曲率及其相互之间的关系。
角度2:几何直观 - 局部二次近似
任何光滑函数在某一点 x0 附近的行为都可以用一个二次函数来近似,这是通过泰勒展开实现的:
在临界点(∇f=0),线性项消失,函数的局部形状完全由Hessian矩阵决定的二次项主导,因此,Hessian的性质直接决定了该点是“碗”、“倒碗”还是“马鞍”。
角度3:深入理解特征值与特征向量的意义
由于Hessian矩阵是对称的,它有一组完整的、相互正交的特征向量 v1,v2,...,vn 和对应的特征值 λ1,λ2,...,λn,特征值(主曲率)决定了函数在该点附近的局部形状,大的正特征值意味着沿着该方向,函数值急剧上升;大的负特征值意味着沿着该方向,函数值急剧下降;接近零的特征值意味着沿着该方向,函数几乎是平坦的。
- 特征向量 vi:代表了函数在该点的主曲率方向。
- 特征值 λi:代表了函数沿其对应特征向量方向的曲率大小。
为什么用特征值判断正定性?
矩阵正定的定义是:对于任何非零向量 z,都有 z^THz>0,如果我们将 z 分解为特征向量的线性组合,这个条件就等价于所有特征值都大于零。
4. 应用推导:以牛顿法为例
牛顿法的推导完美展示了Hessian矩阵的应用,牛顿法利用这个曲率信息,不仅知道下坡的方向(梯度),还知道下坡的“陡峭程度”,从而能够预测出一个能直接走到二次近似模型谷底的步长,因此收敛速度极快。
目标: 最小化函数 f(x)。
思路: 我们不是直接最小化复杂的原函数 f,而是在当前点 xk 处,最小化它的局部二次近似函数 f^(由泰勒展开得到):
推导: 为了找到使这个二次函数最小的 δ,我们对其求导并令导数为零:
Hessian的作用在这里至关重要:它不仅决定了步径的方向(通过求解方程),还自动确定了步长,与梯度下降法相比,牛顿法使用的步径 H−1∇f
是指向二次模型最小点的方向,因此通常能更快地收敛。
应用场景:
- 牛顿法:直接使用Hessian矩阵,收敛速度快。
- 拟牛顿法:通过一阶信息构造Hessian矩阵的近似,在计算成本和收敛速度间取得平衡,是机器学习中的主流。
- 自然梯度下降:涉及到Fisher信息矩阵,本质上是概率分布空间上的Hessian。
- 概率图模型与贝叶斯:对数后验概率的Hessian矩阵的逆,近似于参数估计的协方差矩阵,用于衡量估计的不确定性。
- 有限元分析:在结构力学中,Hessian矩阵表现为刚度矩阵,它将施加的力与产生的位移联系起来。
- 在运动规划和控制中,用于优化机器人的轨迹和力。
5. 优缺点
优点:
- 信息丰富:提供了函数的局部曲率信息,远超梯度信息。
- 收敛速度快:二阶收敛性,是优化算法的“黄金标准”。
缺点:
- 计算成本高昂:计算和存储一个 n×n的Hessian矩阵需要 O(n2) 的资源和时间,对其求逆更需要 O(n3) 的计算复杂度,对于高维问题(如深度学习,n 可达数百万),这完全不可行。
- 可能非正定:在非凸区域,Hessian矩阵可能不定,导致牛顿步径指向极大值或鞍点,反而使优化发散。
- 需要计算二阶导数:对于复杂的函数,解析地计算所有二阶导数可能非常繁琐,而数值差分计算成本又太高。