Math-06.矩阵微积分-05.Hessian与二阶信息

本页介绍 Hessian(海森矩阵)——标量损失对参数的二阶导数,刻画曲率与优化 landscape。

段末注释Hessian $H_{ij} = \partial^2 L / \partial \theta_i \partial \theta_j$ 对称($L$ 二阶连续可微时);正定 Hessian 表示局部严格凸。

系列入口00.系列规划 | 前置:02 标量对向量求导


1. 定义(D2–D3)

图 1 H 描述曲面曲率

$$
H = \nabla^2 L(\boldsymbol{\theta}) \in \mathbb{R}^{d \times d}, \quad H_{ij} = \frac{\partial^2 L}{\partial \theta_i \partial \theta_j}
$$

Taylor 二阶:

$$
L(\boldsymbol{\theta}+\Delta) \approx L(\boldsymbol{\theta}) + \nabla L^\top \Delta + \frac{1}{2}\Delta^\top H \Delta
$$

$H$ 特征 驻点类型
正定 局部极小
负定 局部极大
不定 鞍点

2. 与优化(D6)

图 2 Newton 用 H^{-1}g

牛顿步:$\Delta = -H^{-1}\nabla L$(Math-04/07)。

深网 $d$ 巨大 → 不显式存 $H$;对角近似、K-FAC 等研究用。

XGBoost:用 $\partial^2 \ell / \partial \hat{y}^2$ 作标量 Hessian 分裂树(非全参数 $H$)。


3. Gauss-Newton(D3)

最小二乘 $L = \frac{1}{2}|\mathbf{r}(\boldsymbol{\theta})|^2$,$J = \partial \mathbf{r}/\partial \boldsymbol{\theta}$:

$$
H \approx J^\top J
$$

忽略 $\partial^2 r_i / \partial \theta_j \partial \theta_k$ 项,恒半正定。


4. 局限(D8)

图 4 深网不用全 Hessian

问题 说明
$O(d^2)$ 存储 不可行
鞍点众多 负特征值方向
二阶导计算 torch.autograd.functional.hessian 仅小 $d$

图 3 应用场景


5. PyTorch 小例子(D12)

1
2
3
4
5
6
7
8
9
import torch
from torch.autograd.functional import hessian

def f(x):
return (x ** 3).sum()

x = torch.tensor([1.0, 2.0])
H = hessian(f, x)
print(H) # diag(6*x1, 6*x2) = diag(6, 12)

6. 小结

Hessian 理论重要、深网训练少用全矩阵;一阶 SGD/Adam 为主。下一篇:06 层梯度

系列导航04 反向传播 | Math-04/07 牛顿法

-------------本文结束感谢您的阅读-------------