Jacobian矩阵和Hessian矩阵的作用是什么?

Jacobian矩阵和Hessian矩阵的作用是什么?

Jacobian 和 Hessian 可以放在同一条线上理解:Jacobian 描述“一阶变化”,Hessian 描述“二阶变化”。

如果函数是

那么 Jacobian 矩阵是

它告诉我们输入 有一个小扰动 时,输出一阶近似怎样变化:

如果函数是标量函数

梯度是

Hessian 矩阵是梯度的 Jacobian,也就是二阶偏导数组成的矩阵:

若函数足够光滑,Hessian 是对称矩阵:

它描述的是梯度如何变化,也就是函数的局部曲率。

对二元函数,Hessian 可以直接看成曲面的“弯曲矩阵”。在某个点附近,函数可以用二阶 Taylor 展开:

其中一阶项

给出局部斜率,二阶项

给出不同方向上的弯曲程度。

如果 做特征值分解:

那么特征向量给出主曲率方向,特征值给出这些方向上的曲率大小。特征值大,表示这个方向弯得急;特征值小,表示这个方向比较平。

这也是为什么 Hessian 在优化中很重要。梯度告诉你“往哪里下降”,Hessian 告诉你“这个下降方向附近的地形是什么形状”。只有梯度的一阶近似像拿一张切平面看地形;加入 Hessian 后,局部模型变成二次曲面,能看到谷底弯曲、鞍点和尺度差异。

在无约束优化里,牛顿法正是利用二阶近似。令

对 求极小,得到

所以牛顿方向是

这比普通梯度下降

多用了曲率信息。对接近二次型、Hessian 条件良好的问题,牛顿法可以非常快;但如果 Hessian 不正定、病态或计算太贵,就要阻尼、信赖域、拟牛顿或正则化。

图中的狭长谷底说明了一个工程上常见的问题:不同方向曲率差很多时,同一个学习率很难兼顾所有方向。若 Hessian 的特征值为

则局部条件数为

曲率大的方向要求小步长,曲率小的方向又希望大步长,普通梯度下降就容易来回绕。预条件、变量归一化、二阶方法、本质上都是在修正这个尺度问题。

Hessian 还能判断驻点类型。若

则:

用二元函数举例:

有

正定,所以原点是局部极小点。

而

有

一个方向向上弯,一个方向向下弯,所以原点是鞍点。

在工程建模里,Jacobian 和 Hessian 也有不同角色。若观测模型是

最小二乘目标为

Jacobian

描述残差对参数的敏感性。Gauss-Newton 方法会用

近似 Hessian。这个近似在残差较小、模型局部近似线性时很常见,广泛用于参数标定、SLAM、束调整、系统辨识和曲线拟合。

这里的量纲也很重要。若参数 单位是 mm, 单位是 MPa,那么 Hessian 元素

的单位取决于目标函数单位和两个参数单位。不同参数尺度差几个数量级时,Hessian 的条件数可能很大,并不一定说明物理系统真的病态,也可能只是变量没有无量纲化。工程优化里常先做尺度归一:

让各变量的典型变化量接近 1,再看曲率和条件数。

Hessian 不是万能工具。它有几个现实边界:

因此,Jacobian 的核心作用是把非线性映射局部线性化,Hessian 的核心作用是把标量目标局部二次化。前者告诉你敏感性和一阶方向,后者告诉你曲率、稳定性、驻点类型和优化难度。把这两者连起来看,多元微积分里的矩阵就不只是符号表,而是“局部模型”的工程语言。