Skip to content

第 12 章:回到 Hessian:用泰勒余项严格完成二阶判别 ​

返回目录

我们从数学上严格证明两个结论:

  1. 为什么可微曲面的内部最高点和最低点,梯度必然为零?
  2. 为什么 Hessian 矩阵正定对应局部极小值,负定对应局部极大值,不定对应鞍点?

第二个结论尤其重要,它实际上是把一元函数的二阶导数判别法推广到了多元函数。

一、证明极值点的梯度为零 ​

假设有一个二元函数:

z=f(x,y)

在点 (x_0,y_0) 取得局部极小值。

根据局部极小值的定义,存在一个足够小的邻域,使得:

f(x,y)\geq f(x_0,y_0)

现在,我们固定 y=y_0,只允许 x 变化。

这相当于在三维曲面上沿着 x 方向切出一条曲线:

g(x)=f(x,y_0)

因为 (x_0,y_0) 是原曲面的局部最低点,所以 x_0 也是 g(x) 的局部最低点。

根据一元函数的费马定理(Fermat's theorem):

g'(x_0)=0

而根据偏导数的定义:

g'(x_0)=\frac{\partial f}{\partial x}(x_0,y_0)

因此:

\boxed{\frac{\partial f}{\partial x}(x_0,y_0)=0}

同理,固定 x=x_0,只允许 y 变化:

\boxed{\frac{\partial f}{\partial y}(x_0,y_0)=0}

所以:

\boxed{
\nabla f(x_0,y_0)=
\begin{bmatrix}
0\\
0
\end{bmatrix}
}

局部极大值可以用完全相同的方法证明。

这就证明了:只要函数在内部极值点可微,那么梯度必然为零。

注意,这只是必要条件,不是充分条件。


二、为什么需要 Hessian 矩阵? ​

先回顾一元函数。

假设:

f'(x_0)=0

此时:

  • 如果 f''(x_0)>0,函数在附近向上弯曲,x_0 是局部极小值。
  • 如果 f''(x_0)<0,函数在附近向下弯曲,x_0 是局部极大值。

对于二元函数,仅计算 f_{xx} 和 f_{yy} 还不够,因为我们不但可以沿 x、y 方向移动,还可以沿任意斜方向移动。

因此,我们需要描述函数沿任意方向的二阶变化率。

假设沿着向量:

\mathbf v=\begin{bmatrix}a\\b\end{bmatrix}

移动,定义一个一元函数:

g(t)=f(x_0+at,y_0+bt)

这里的 t 表示沿这个方向移动多少。

对 t 求第一次导数:

g'(t)=af_x+bf_y

再求一次导数,使用链式法则:

g''(t)
=a^2f_{xx}+abf_{xy}+abf_{yx}+b^2f_{yy}

假设 f 的二阶偏导连续,那么:

f_{xy}=f_{yx}

因此:

\boxed{
g''(t)=a^2f_{xx}+2abf_{xy}+b^2f_{yy}
}

现在定义 Hessian 矩阵:

H=
\begin{bmatrix}
f_{xx}&f_{xy}\\
f_{yx}&f_{yy}
\end{bmatrix}

那么上面的表达式就可以写为:

\boxed{
g''(0)=\mathbf v^TH\mathbf v
}

这个公式是整个证明的关键。

\underbrace{\mathbf v^TH\mathbf v}_{\text{矩阵二次型}}
=
\underbrace{g''(0)}_{\text{沿方向 }\mathbf v\text{ 的二阶变化率}}

对单位向量而言,它就是沿该方向的二阶方向导数。

三、证明 Hessian 正定意味着局部极小值 ​

先理解正定(Positive Definite)的定义。

如果对任意非零向量 \mathbf v,都有:

\boxed{\mathbf v^TH\mathbf v>0}

我们就称矩阵 H 为正定矩阵。

根据刚才证明的公式:

g''(0)=\mathbf v^TH\mathbf v

意味着:

g''(0)>0

无论沿哪个非零方向,二阶变化率都为正。

但是,要严格证明它是局部极小值,还需要利用二阶泰勒展开。

假设在 \mathbf p=(x_0,y_0) 有:

\nabla f(\mathbf p)=0

设小位移为 \mathbf h=(\Delta x,\Delta y)^T。

二阶泰勒展开为:

f(\mathbf p+\mathbf h)
=
f(\mathbf p)
+\nabla f(\mathbf p)^T\mathbf h
+\frac12\mathbf h^TH(\mathbf p)\mathbf h
+o(\|\mathbf h\|^2)

因为梯度为零:

\boxed{
f(\mathbf p+\mathbf h)-f(\mathbf p)
=
\frac12\mathbf h^TH\mathbf h
+o(\|\mathbf h\|^2)
}

假设 H 正定。由于它是实对称矩阵,存在最小特征值 \lambda_{\min}>0,满足:

\mathbf h^TH\mathbf h
\geq\lambda_{\min}\|\mathbf h\|^2

而余项 o(\|\mathbf h\|^2) 相对于 \|\mathbf h\|^2 趋于零,因此当 \mathbf h 足够小时:

\left|o(\|\mathbf h\|^2)\right|
<\frac{\lambda_{\min}}4\|\mathbf h\|^2

于是:

f(\mathbf p+\mathbf h)-f(\mathbf p)
\geq
\frac{\lambda_{\min}}4\|\mathbf h\|^2>0

只要 \mathbf h\ne0,函数值就严格增大。

因此:

\boxed{H\text{ 正定 }\Longrightarrow\text{ 严格局部极小值}}

这里默认该点是驻点,即 \nabla f=0,且函数二阶连续可微。

四、负定和不定的证明 ​

负定的证明完全类似。

如果:

\mathbf v^TH\mathbf v<0
\quad(\forall\mathbf v\ne0)

那么泰勒展开的二次项在各个非零方向都严格为负,并且在足够小的邻域中压过高阶余项,因此:

\boxed{H\text{ 负定 }\Longrightarrow\text{ 严格局部极大值}}

那么不定矩阵(Indefinite)呢?

不定意味着存在两个方向 \mathbf v_1,\mathbf v_2,满足:

\mathbf v_1^TH\mathbf v_1>0
\mathbf v_2^TH\mathbf v_2<0

对于小的非零 t,沿第一方向:

f(\mathbf p+t\mathbf v_1)-f(\mathbf p)>0

而沿第二方向:

f(\mathbf p+t\mathbf v_2)-f(\mathbf p)<0

所以,在任意足够小的邻域中,都有函数值高于该点和低于该点的位置。

因此它既不是局部最大值,也不是局部最小值。

\boxed{H\text{ 不定 }\Longrightarrow\text{ 鞍点}}

五、用三个具体函数验证 ​

极小值 z=x^2+y^2

极大值 z=-x^2-y^2

鞍点 z=x^2-y^2

在原点,这三个函数的梯度都是零,但 Hessian 分别为:

H_{\min}=
\begin{bmatrix}2&0\\0&2\end{bmatrix}
\qquad
H_{\max}=
\begin{bmatrix}-2&0\\0&-2\end{bmatrix}
H_{\text{saddle}}=
\begin{bmatrix}2&0\\0&-2\end{bmatrix}

它们的特征值分别是:

函数Hessian 特征值结果
x^2+y^22,2正定,极小值
-x^2-y^2-2,-2负定,极大值
x^2-y^22,-2不定,鞍点

这里其实还能得到一个更深层的结论:Hessian 的特征向量给出了曲面二阶变化的主方向,特征值则描述相应方向上的二阶变化率。

但必须强调,Hessian 正定、负定是充分条件,不是必要条件。例如 z=x^4+y^4 在原点有严格极小值,但 Hessian 是零矩阵。


六、最终把整个逻辑串起来 ​

对于二阶连续可微函数 f(x,y),在定义域内部一点 \mathbf p:

第一步:求梯度

\nabla f(\mathbf p)=0

第二步:计算 Hessian

H(\mathbf p)=\begin{bmatrix}f_{xx}&f_{xy}\\f_{yx}&f_{yy}\end{bmatrix}

第三步:判断 Hessian 的正负定性

正定

严格局部极小值

负定

严格局部极大值

不定

鞍点

如果 Hessian 只是半正定或半负定,则通常无法仅凭二阶判别法得出结论。

所以最核心的数学关系其实只有两个:

\boxed{
\nabla f=0\quad\text{(内部可微极值点的必要条件)}
}
\boxed{
f(\mathbf p+\mathbf h)-f(\mathbf p)
\approx \frac12\mathbf h^TH\mathbf h
}

第一个公式告诉你极值点的一阶变化率为零;第二个公式告诉你,在一阶变化率为零后,曲面究竟是向上弯、向下弯,还是不同方向弯曲的符号不同。

这就是为什么梯度用于寻找驻点,而 Hessian 可以进一步判断驻点的局部性质。

补充:混合偏导相等的依据 ​

对 C^2 函数,在点 (a,b) 附近考虑矩形差分

\Delta=f(a+s,b+t)-f(a+s,b)-f(a,b+t)+f(a,b).

先对横向再纵向应用微积分基本定理,可得 \Delta=\int_0^s\int_0^t f_{xy}(a+u,b+v)\,dv\,du;反向处理得相应 f_{yx} 的迭代积分表达式。除以 st 并令非零 s,t\to0,连续性分别使两式趋向 f_{xy}(a,b) 与 f_{yx}(a,b),故相等。其他坐标对同理。这里 C^2 是足够条件。

补充:二阶泰勒公式和统一余项从何而来 ​

固定小位移 h,使线段 p+th(0\leq t\leq1)留在 U 内。对 g(t)=f(p+th) 两次应用一元微积分基本定理,得

f(p+h)=f(p)+\nabla f(p)^Th
+\int_0^1(1-t)h^TH(p+th)h\,dt.

把 H(p) 提出,剩下

r(h)=\int_0^1(1-t)h^T[H(p+th)-H(p)]h\,dt.

定义算子范数 \|M\|_{op}=\sup_{\|u\|=1}\|Mu\|。由 Cauchy–Schwarz 不等式,

|r(h)|\leq\frac12\sup_{0\leq t\leq1}
\|H(p+th)-H(p)\|_{op}\,\|h\|^2=o(\|h\|^2).

最后一步由 H 在 p 连续得到:只要 \|h\|<\delta,整条线段都在 \delta 邻域内。这个 \delta 对全部方向共同有效。因此第 3 节余项的控制不是每个方向分别选不同邻域,而是真正控制一个完整小球。

补充:二阶必要条件与半正定的不确定性 ​

若 p 为 C^2 内部局部极小点,对任意固定 v,g(t)=f(p+tv) 有一元局部极小值,所以 g''(0)=v^TH(p)v\geq0。例如也可用 (g(t)+g(-t)-2g(0))/t^2\geq0 取极限证明。于是 Hessian 必须半正定;极大必须半负定。

正定是严格极小的充分条件,半正定只是极小的必要条件。x^4+y^4、-(x^4+y^4)、x^4-y^4 在原点 Hessian 全为零,却依次为严格极小、严格极大、鞍点。因此零特征值时,二阶判别法可能无结论。

补充:Hessian 与曲面几何曲率的边界 ​

v^THv 始终是输入直线 p+tv 上的二阶导。把它称为“曲率”是一种局部优化语言。在图形的驻点处,且采用输入空间的欧氏正交单位方向时,它与主方向的曲面曲率相联系;一般非驻点处的几何主曲率还包含一阶导数和曲面度量,不能不加条件地与 Hessian 特征值等同。

保留每一次追问,认真走完每一步证明。