大家的AI
机器学习AI论文
加载中…

学习

🏅我的成就

Ch.10

海森矩阵:二阶微分与曲面的曲率

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览中级数学的脉络。

一阶导告诉你「哪边是下坡」,二阶(黑塞)告诉你「接下来会凹下去,还是一边升一边降(鞍点)」。请跟着下方动画理解。
黑塞是 二阶导数 构成的矩阵,所以下图中的「弯曲程度」就是黑塞所描述的内容。

碗形:只向下弯→极小点

↓ 弯曲(x, f(x))

鞍点:这边值↑上升,那边值↓下降

值↑值↓S

橙方向值上升 · 绿方向值下降

鞍点:既非极小也非极大

碗形只向下弯→此处为极小

倒扣的碗只向上弯→此处为极大

鞍点一方上升一方下降→既非极小也非极大

左:碗形(只向下弯)→极小。倒扣的碗(只向上弯)→极大。鞍点:一方上升一方下降→既非极小也非极大。
黑塞矩阵是由标量函数的二阶偏导数构成的方阵,表示某点处曲面的曲率,用于判断极小、极大与鞍点,也是牛顿法、置信域方法的基础。

黑塞矩阵:读曲面的弯曲程度

黑塞矩阵是什么? — 可以理解为:在你所站的点上,用数字写出「各个方向曲面弯了多少」的一张表。由函数二阶微分得到的值排成的方阵,且沿对角线左右对称,即对称矩阵。
想象闭着眼下山。脚底感觉到的「这边更陡」是一阶微分(梯度)。而「再迈一步,地面会凹下去还是平坦?」这种预感就是二阶微分,也就是黑塞。有了它就能避开悬崖,找到像碗底那样的真正最低点。
更准确地说,把函数 fff 在 xix_ixi​、xjx_jxj​ 两个方向各微分两次得到的 ∂2f∂xi∂xj\frac{\partial^2 f}{\partial x_i \partial x_j}∂xi​∂xj​∂2f​ 填进表里,就是黑塞 H\mathbf{H}H。这张表的特征值是关键:全正→该点是碗底一样的极小点,全负→像山顶的极大点,有正有负→一边升一边降的鞍点。
机器学习里,训练就是在找「误差最小的谷」。只靠梯度一点点往下走很慢。用黑塞知道曲率后,可以用牛顿法朝谷底大步跳,学习会快很多。
黑塞矩阵是由标量函数二阶偏导构成的对称矩阵,承载某点的曲率与极值性质。在梯度为零的点,特征值全正则为极小,全负则为极大,有正有负则为鞍点。在机器学习中,它是损失最小点搜索与验证、牛顿法、置信域、拟牛顿等二阶优化的基础。
往下走时会遇到梯度为 0 的平坦处。那不一定就是真正的谷底,可能是鞍点——暂时平坦,但一边升一边降。这时看黑塞的特征值就能区分:是真最小点还是鞍点。变量很多(如 AI)时,不踩进这种「假谷底」非常重要。
窄路小步、平地大步才又快又稳。黑塞告诉你「各方向有多陡」,所以能自动调好步长(学习率),少走冤枉路、高效下降。
牛顿法用下面公式一步走很多:xk+1=xk−H−1∇f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{H}^{-1} \nabla f(\mathbf{x}_k)xk+1​=xk​−H−1∇f(xk​)。其中 xk\mathbf{x}_kxk​ 是当前位置,∇f(xk)\nabla f(\mathbf{x}_k)∇f(xk​) 是该点梯度,H\mathbf{H}H 是该点黑塞矩阵,H−1\mathbf{H}^{-1}H−1 是其逆矩阵。也就是「同时看梯度和曲率(黑塞),朝谷底大步跳到 xk+1\mathbf{x}_{k+1}xk+1​」。比只靠梯度小步走能更快接近答案。
变量一多,精确算黑塞成本太大。实务中更多用拟牛顿法(如 BFGS):不完整算黑塞,只用至今的梯度信息去「猜个大概形状」来用。
下表只整理解题所需的 公式与符号含义。表下方的 解题示例 中有完整解题过程,请对照参考。
  • 公式Hij=∂2f∂xi∂xjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}Hij​=∂xi​∂xj​∂2f​
  • 符号含义HijH_{ij}Hij​=表中 (i,j)(i,j)(i,j) 格中的数,可理解为「先对 xix_ixi​ 再对 xjx_jxj​ 各求一次导」。fff 为函数,xix_ixi​、xjx_jxj​ 为变量(轴)编号。求导顺序可交换,故 Hij=HjiH_{ij}=H_{ji}Hij​=Hji​,表对称。
  • 公式n2n^2n2(元素总数)
  • 符号含义nnn=变量个数。nnn 个变量时黑塞为 n×nn \times nn×n,故共有 n2n^2n2 个元素。例:2 变量→4 个,3 变量→9 个。
  • 公式n(n+1)2\frac{n(n+1)}{2}2n(n+1)​(独立元素)
  • 符号含义nnn=变量个数。对称故只数上三角,个数为 1+2+⋯+n=n(n+1)/21+2+\cdots+n = n(n+1)/21+2+⋯+n=n(n+1)/2。例:2 变量→3 个,3 变量→6 个。
  • 公式nnn(行/列数)
  • 符号含义nnn=变量个数。黑塞为 n×nn \times nn×n,故「几行?几列?」均为 nnn。
  • 公式特征值判定
  • 符号含义λ\lambdaλ=黑塞的特征值(该点各方向曲率)。全正→像碗一样只向下弯,极小;全负→只向上弯,极大;有正有负→一方升一方降,鞍点。
  • 公式xk+1=xk−H−1∇f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{H}^{-1} \nabla f(\mathbf{x}_k)xk+1​=xk​−H−1∇f(xk​)
  • 符号含义xk\mathbf{x}_kxk​=当前点,xk+1\mathbf{x}_{k+1}xk+1​=下一步点。H\mathbf{H}H=该点黑塞(曲率表),H−1\mathbf{H}^{-1}H−1=其逆。∇f(xk)\nabla f(\mathbf{x}_k)∇f(xk​)=该点梯度。即「看梯度与曲率,一步跳向谷底」的公式。
  • 公式x1=x0−f′(x0)f′′(x0)x_1 = x_0 - \frac{f^{\prime}(x_0)}{f^{\prime\prime}(x_0)}x1​=x0​−f′′(x0​)f′(x0​)​
  • 符号含义x0x_0x0​=当前位置,x1x_1x1​=下一位置。f′(x0)f^{\prime}(x_0)f′(x0​)=该点斜率(一阶导),f′′(x0)f^{\prime\prime}(x_0)f′′(x0​)=二阶导(一维时相当于黑塞)。f(x)=ax2+bx+cf(x)=ax^2+bx+cf(x)=ax2+bx+c 时 f′′=2af^{\prime\prime}=2af′′=2a 为常数。
  • 公式f′′(x)=2af^{\prime\prime}(x)=2af′′(x)=2a(f(x)=ax2+bx+cf(x)=ax^2+bx+cf(x)=ax2+bx+c)
  • 符号含义f′′f^{\prime\prime}f′′=二阶导数。aaa 为 x2x^2x2 的系数。二次式求两次导后 xxx 消失,只剩常数 2a2a2a。
  • 公式∇f=0\nabla f = \mathbf{0}∇f=0(驻点)
  • 符号含义∇f\nabla f∇f=梯度(各变量方向一阶导组成的向量)。0\mathbf{0}0=零向量(「无梯度」)。梯度为 0 的点是极小·极大·鞍点的候选,再用黑塞特征值判断是哪一种。
公式符号含义
Hij=∂2f∂xi∂xjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}Hij​=∂xi​∂xj​∂2f​HijH_{ij}Hij​=表中 (i,j)(i,j)(i,j) 格中的数,可理解为「先对 xix_ixi​ 再对 xjx_jxj​ 各求一次导」。fff 为函数,xix_ixi​、xjx_jxj​ 为变量(轴)编号。求导顺序可交换,故 Hij=HjiH_{ij}=H_{ji}Hij​=Hji​,表对称。
n2n^2n2(元素总数)nnn=变量个数。nnn 个变量时黑塞为 n×nn \times nn×n,故共有 n2n^2n2 个元素。例:2 变量→4 个,3 变量→9 个。
n(n+1)2\frac{n(n+1)}{2}2n(n+1)​(独立元素)nnn=变量个数。对称故只数上三角,个数为 1+2+⋯+n=n(n+1)/21+2+\cdots+n = n(n+1)/21+2+⋯+n=n(n+1)/2。例:2 变量→3 个,3 变量→6 个。
nnn(行/列数)nnn=变量个数。黑塞为 n×nn \times nn×n,故「几行?几列?」均为 nnn。
特征值判定λ\lambdaλ=黑塞的特征值(该点各方向曲率)。全正→像碗一样只向下弯,极小;全负→只向上弯,极大;有正有负→一方升一方降,鞍点。
xk+1=xk−H−1∇f(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{H}^{-1} \nabla f(\mathbf{x}_k)xk+1​=xk​−H−1∇f(xk​)xk\mathbf{x}_kxk​=当前点,xk+1\mathbf{x}_{k+1}xk+1​=下一步点。H\mathbf{H}H=该点黑塞(曲率表),H−1\mathbf{H}^{-1}H−1=其逆。∇f(xk)\nabla f(\mathbf{x}_k)∇f(xk​)=该点梯度。即「看梯度与曲率,一步跳向谷底」的公式。
x1=x0−f′(x0)f′′(x0)x_1 = x_0 - \frac{f^{\prime}(x_0)}{f^{\prime\prime}(x_0)}x1​=x0​−f′′(x0​)f′(x0​)​x0x_0x0​=当前位置,x1x_1x1​=下一位置。f′(x0)f^{\prime}(x_0)f′(x0​)=该点斜率(一阶导),f′′(x0)f^{\prime\prime}(x_0)f′′(x0​)=二阶导(一维时相当于黑塞)。f(x)=ax2+bx+cf(x)=ax^2+bx+cf(x)=ax2+bx+c 时 f′′=2af^{\prime\prime}=2af′′=2a 为常数。
f′′(x)=2af^{\prime\prime}(x)=2af′′(x)=2a(f(x)=ax2+bx+cf(x)=ax^2+bx+cf(x)=ax2+bx+c)f′′f^{\prime\prime}f′′=二阶导数。aaa 为 x2x^2x2 的系数。二次式求两次导后 xxx 消失,只剩常数 2a2a2a。
∇f=0\nabla f = \mathbf{0}∇f=0(驻点)∇f\nabla f∇f=梯度(各变量方向一阶导组成的向量)。0\mathbf{0}0=零向量(「无梯度」)。梯度为 0 的点是极小·极大·鞍点的候选,再用黑塞特征值判断是哪一种。

문제

下列(甲)(乙)(丙)中正确的一项是?请选择。
(甲)局部极小
(乙)局部极大
(丙)鞍点
(提示)特征值为 λ1=2\lambda_1=2λ1​=2,λ2=−1\lambda_2=-1λ2​=−1。
1 / 10