
这张图讲的是多元微积分里一个非常核心的主题:局部极值(Local Extrema)。它要解决的问题可以用一句话概括:
对曲面 $z = f(x, y)$,怎样判断某个点附近到底是“山谷底”“山顶”,还是“山鞍口”?
图中把整个过程分成了三部分:先认识三种几何形状,再用梯度和 Hessian 矩阵判断,最后说明这些概念有什么实际用途。
一、先理解什么叫“局部”
这里最重要的词其实不是“最大”或“最小”,而是:
局部 Local。
假设你站在一片山区的某个点。
如果只看你周围很小的一圈:
- 周围都比你高,你就在“局部谷底”;
- 周围都比你低,你就在“局部山顶”;
- 有的方向上坡、有的方向下坡,你就在“鞍点”。
所以局部最小值并不一定是整个世界最低点。
例如一片山区可能有很多山谷:
它们都可能是局部最小值,但只有其中最低的那个才可能是全局最小值。
二、图上方:三种最重要的形状
1. Local Minimum:局部最小值
左边画的是一个碗:
绿色小球位于碗底。
从这个点向任何足够小的方向走,都会往上。
数学上,如果点 $(x_0, y_0)$ 附近都有:
$$f(x, y) \geq f(x_0, y_0)$$
那么 $(x_0, y_0)$ 是局部最小点。
可以把它想象成:
小球掉进碗底以后,会停在那里。
最典型的例子就是:
$$f(x, y) = x^2 + y^2$$
在 $(0, 0)$ 处:
$$f(0, 0) = 0$$
而其他附近点都有:
$$f(x, y) > 0$$
因此原点是局部最小点。
它的图形就是标准的“碗”。
2. Local Maximum:局部最大值
中间画的是一座山峰。
红球位于山顶。
从这个点向任何方向走,都会下降。
数学上就是附近满足:
$$f(x, y) \leq f(x_0, y_0)$$
例如:
$$f(x, y) = -x^2 - y^2$$
在原点:
$$f(0, 0) = 0$$
而附近其他点:
$$f(x, y) < 0$$
所以 $(0, 0)$ 是局部最大点。
可以把它想象成:
把球放在山顶上,稍微一碰就会滚下来。
3. Saddle Point:鞍点
右边这幅图最值得理解。
它长得像马鞍。
站在紫色点上:
沿一个方向看,它像山谷:
$$f(x, 0) = x^2$$
但沿另一个方向看,它却像山顶:
$$f(0, y) = -y^2$$
所以它既不是局部最大,也不是局部最小。
最经典的例子:
$$f(x, y) = x^2 - y^2$$
看看原点附近。
沿 $x$ 轴:
$$f(x, 0) = x^2$$
得到 $z = x^2$,这是一条开口向上的抛物线:
原点像最低点。
但沿 $y$ 轴:
$$f(0, y) = -y^2$$
得到 $z = -y^2$,这是开口向下:
原点又像最高点。
所以:
$$f(x, y) = x^2 - y^2$$
既像谷底,又像山顶。
因此称为:
鞍点(Saddle Point)。
这其实就是“不同方向的弯曲性质不同”。
三、怎样找到这些特殊点?
图片中间给出两个步骤:
一阶导数检验(梯度) 和 二阶导数检验(Hessian 矩阵)。
这里虽然图上像是两个独立测试,其实它们是一套连续流程。
可以概括成:
先找平地,再看弯曲方向。
四、第一步:梯度为什么要等于 0?
图片写:
$$\nabla f(x, y) = (f_x, f_y) = 0$$
也就是:
$$\nabla f = \vec{0}$$
梯度 $\nabla f$ 表示函数增长最快的方向。
如果梯度不为零,比如:
$$\nabla f(x_0, y_0) \neq \vec{0}$$
说明存在明显的上坡方向。
那你显然不可能已经站在光滑山顶或谷底。
用一维函数类比最容易理解
一维函数:
$$y = f(x)$$
在山顶或谷底通常有:
$$f'(x) = 0$$
例如:
$$f(x) = x^2$$
有:
$$f'(x) = 2x$$
在原点:
$$f'(0) = 0$$
二维函数只是把这个思想推广:
$$\nabla f(x, y) = (f_x, f_y) = (0, 0)$$
即:
$$f_x = 0, \quad f_y = 0$$
这种点称为:
临界点 / 驻点(critical point / stationary point)。
五、但为什么 $\nabla f = 0$ 还不够?
这是本图最重要的逻辑。
因为:
$$\nabla f = 0$$
只能告诉我们:
“地面在这里暂时是平的。”
却不能告诉我们它是:
看看三个经典函数:
$$f_1(x, y) = x^2 + y^2$$
$$f_2(x, y) = -x^2 - y^2$$
$$f_3(x, y) = x^2 - y^2$$
它们在原点全部满足:
$$\nabla f(0, 0) = \vec{0}$$
但三个原点分别是:
所以还必须研究:
曲面在这个点附近到底怎样弯曲?
这就是二阶导数的任务。
六、第二步:Hessian 矩阵
图片中间写的是:
$$H = \begin{bmatrix} f_{xx} & f_{xy} \\ f_{yx} & f_{yy} \end{bmatrix}$$
这个矩阵称为:
Hessian 矩阵(海森矩阵)。
如果梯度负责研究:
“哪里是平的?”
那么 Hessian 负责研究:
“平的地方是怎样弯的?”
因此可以记:
$$\nabla f = 0 \quad \Rightarrow \quad \text{找到候选点}$$
$$H \quad \Rightarrow \quad \text{判断候选点的类型}$$
七、Hessian 为什么能判断山峰、谷底、鞍点?
关键是 Hessian 的特征值。
图片右侧给出了最核心的分类法。
设 Hessian 的特征值是 $\lambda_1, \lambda_2$。
情况 1:所有特征值都大于 0
如果:
$$\lambda_1 > 0, \quad \lambda_2 > 0$$
说明所有主要方向都向上弯。
想象:
$$\text{碗底}$$
无论朝哪个方向切,都倾向于像碗底。
因此:
$$\text{局部最小值(Valley)}$$
情况 2:所有特征值都小于 0
如果:
$$\lambda_1 < 0, \quad \lambda_2 < 0$$
说明所有主要方向都向下弯。
类似:
$$\text{山顶}$$
因此是:
$$\text{局部最大值(Peak)}$$
情况 3:特征值一正一负
如果:
$$\lambda_1 > 0, \quad \lambda_2 < 0$$
说明一个方向:
$$\text{向上弯}$$
而另一个方向:
$$\text{向下弯}$$
这正是马鞍形。
所以:
$$\text{鞍点(Saddle Point)}$$
八、用三个最简单函数验证一下
这三个函数几乎可以作为整张图的“万能记忆模板”。
| 函数 |
Hessian |
特征值 |
类型 |
| $f(x,y) = x^2 + y^2$ |
$\begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix}$ |
$2, 2$ |
局部最小 |
| $f(x,y) = -x^2 - y^2$ |
$\begin{bmatrix} -2 & 0 \\ 0 & -2 \end{bmatrix}$ |
$-2, -2$ |
局部最大 |
| $f(x,y) = x^2 - y^2$ |
$\begin{bmatrix} 2 & 0 \\ 0 & -2 \end{bmatrix}$ |
$2, -2$ |
鞍点 |
因此最值得背下来的其实就是:
$$x^2 + y^2 \to \text{局部最小}$$
$$-x^2 - y^2 \to \text{局部最大}$$
$$x^2 - y^2 \to \text{鞍点}$$
非常直观。
九、Hessian 的特征值究竟代表什么?
可以把 Hessian 想象成一个:
“曲面弯曲探测器”。
它会找出一些最有代表性的方向。
特征向量告诉我们:
$$\text{弯曲的方向}$$
特征值告诉我们:
$$\text{该方向弯曲的程度和正负}$$
所以:
$$\lambda_i > 0$$
表示该方向大致:
$$\text{向上弯}$$
而:
$$\lambda_i < 0$$
表示:
$$\text{向下弯}$$
因此鞍点最本质的特征就是:
$$\text{一个方向向上弯,另一个方向向下弯}$$
十、其实二维时还有一个更常用的判别公式
对于:
$$z = f(x, y)$$
通常定义:
$$D = f_{xx} \cdot f_{yy} - (f_{xy})^2$$
也就是 Hessian 的行列式:
$$D = \det(H)$$
在临界点处:
当 $D > 0$ 且 $f_{xx} > 0$ 时,是局部最小值。
当 $D > 0$ 且 $f_{xx} < 0$ 时,是局部最大值。
当 $D < 0$ 时,是鞍点。
所以二维题里经常直接记:
$$D > 0, \, f_{xx} > 0 \Rightarrow \text{局部最小}$$
$$D > 0, \, f_{xx} < 0 \Rightarrow \text{局部最大}$$
$D > 0$ 说明两个方向“同类”。
再看 $f_{xx}$:
$$f_{xx} > 0 \Rightarrow \text{向上弯} \Rightarrow \text{最小}$$
$$f_{xx} < 0 \Rightarrow \text{向下弯} \Rightarrow \text{最大}$$
而 $D < 0$ 说明两个方向“异类”:
$$\text{一个向上弯,一个向下弯}$$
所以必然是鞍点。
十一、有一个重要情况,图片没有特别强调
如果出现:
$$D = 0$$
或者 Hessian 有零特征值,那么二阶判别法可能失效。
这时不能马上说它是最大、最小还是鞍点。
例如:
$$f(x, y) = x^4 + y^4$$
在原点:
$$\nabla f(0, 0) = \vec{0}$$
但 Hessian 在原点是零矩阵:
$$H(0, 0) = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}$$
特征值都是 0。
二阶判别法给不出答案。
但因为:
$$f(x, y) = x^4 + y^4 \geq 0 = f(0, 0)$$
所以原点实际上仍然是局部最小值。
因此要记住:
Hessian 判别法很强,但遇到零特征值时可能“信息不足”。
十二、整套判断流程应该怎样理解?
一道实际题通常按下面的逻辑走:
先求:
$$\nabla f = (f_x, f_y)$$
解:
$$f_x = 0, \quad f_y = 0$$
找到所有临界点:
$$(x_0, y_0)$$
然后计算 Hessian:
$$H = \begin{bmatrix} f_{xx} & f_{xy} \\ f_{yx} & f_{yy} \end{bmatrix}$$
最后根据 Hessian 的特征值或:
$$D = f_{xx} f_{yy} - f_{xy}^2$$
进行分类。
整个思想就是:
$$\text{先找平的地方,再看怎么弯}$$
十三、图片下半部分:这些东西有什么用?
图中给了三个非常典型的领域。
机器学习
训练神经网络,本质上经常是在最小化一个损失函数:
$$L(\theta)$$
参数数量可能达到:
$$\text{百万、十亿甚至更多}$$
梯度下降做的事情可以形象地理解成:
在高维山地里不断往下坡走。
数学上:
$$\theta_{t+1} = \theta_t - \eta \cdot \nabla L(\theta_t)$$
其中 $\eta$ 是学习率。
目标是找到损失较低的位置。
所以图中写:
Gradient Descent is like descending a mountain.
这个比喻非常准确。
物理学:能量稳定性
物理系统通常倾向于低能状态。
比如一个球放在碗里:
如果稍微推一下,它还会滚回来。
因此局部能量最小值往往对应:
$$\text{稳定状态(Stable)}$$
而球放在山顶:
哪怕轻微扰动也会滚走。
所以局部最大值通常对应:
$$\text{不稳定状态(Unstable)}$$
这就是为什么 Hessian 在物理里也特别重要。
经济学与商业优化
假设利润取决于多个因素:
$$P(x, y, z, \ldots)$$
比如:
企业可能希望:
$$\text{利润最大化}$$
于是就会寻找:
$$\nabla P = 0$$
再研究 Hessian,判断得到的是:
$$\text{局部最大利润}$$
还是其他类型的临界点。
成本问题则往往是:
$$\text{最小化 } C(x, y, z)$$
十四、这张图真正想让你建立的“地形直觉”
多元微积分里的函数:
$$z = f(x, y)$$
不要只把它看成一串公式。
最好把它想成:
一张三维地形图。
那么:
$$z \text{ 就是海拔}$$
$$\nabla f \text{ 就是:}$$
最陡的上坡方向。
$$\nabla f = 0 \text{ 表示:}$$
这里暂时没有明显坡度。
Hessian 则表示:
地面接下来怎样弯。
于是三个重要点就很好理解:
$$\text{谷底} = \text{所有方向都往上弯}$$
$$\text{山顶} = \text{所有方向都往下弯}$$
$$\text{鞍点} = \text{一个方向上弯,一个方向下弯}$$
十五、尤其要区分三个概念
这三个词很容易混淆:
$$\text{临界点(Critical Point)}$$
只是说明:
$$\nabla f = 0$$
它可能是极值,也可能不是。
而:
$$\text{局部极值(Local Extremum)}$$
包括:
$$\text{局部最小} \quad \text{和} \quad \text{局部最大}$$
但:
$$\text{鞍点(Saddle Point)}$$
虽然常常也是临界点,却不是局部极值。
所以逻辑关系是:
$$\text{临界点} = \text{局部最小} \cup \text{局部最大} \cup \text{鞍点}$$
可以进一步分成:
$$\text{极值点} \quad \text{和} \quad \text{非极值点}$$
十六、最适合背诵的一张“脑内地图”
把整张图片压缩成四句话:
第一步:找平地。
解 $\nabla f = 0$
第二步:看弯曲。
计算 Hessian 矩阵
第三步:看 Hessian 特征值符号。
全正 → 谷底;全负 → 山顶;一正一负 → 鞍点
第四步:如果出现 0,二阶判别可能不够,需要进一步分析。
所以整张图最核心的思想其实只有一句:
$$\text{梯度为零告诉你“哪里平”}$$
$$\text{Hessian 告诉你“怎么弯”}$$
而“怎么弯”,最终决定这个临界点究竟是谷底、山顶还是鞍点。
在这个过程中,优化的思想贯穿始终:不论是在高维损失函数里寻找最小值,还是在物理系统中判断稳定性,本质上都是对“弯曲方向”的识别与利用。理解了这一点,局部极值就不再只是抽象的公式,而是一套可以映射到真实世界的分析工具。