假设你是一名地形勘察队员,站在起伏的山地里,任务是找到最低的谷底。脚下的坡度计告诉你在朝哪个方向走——这是梯度;但要想预判前方是陡坡、缓坡还是一脚踩空的悬崖,你还需要知道“坡度本身如何变化”——这是二阶导数。当山路从一条变成一整片地形,二阶导数的全体就拼成一块仪表盘:海森矩阵。它测量每个方向的弯曲程度,帮你判断脚下是碗形谷底、倒扣碗的山顶,还是尴尬的鞍点;拿它做优化,甚至能一步跨到谷底,而不是像梯度下降那样歪歪扭扭地挪。当然,这块高精度仪表盘也有代价——维度越高,读数和搬运成本越惊人。这篇文章,我们把这块仪表盘的构造、特性和用法彻底拆开看。

岗位关联

掌握海森矩阵,你就能看穿损失函数的“地形”:判断极值、识别鞍点、理解二阶优化器的核心动机。对 AI 从业者来说,这是一把让训练从玄学调参走向有章可循的钥匙。

目录
  1. 可视化演示
  2. 二阶导数的回顾
  3. 海森矩阵的定义
  4. 对称性的本质
  5. 曲率刻画形状
  6. 正定与负定
  7. 极值的判定
  8. 牛顿法优化
  9. 计算代价
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

二阶导数的回顾

回忆我们开车翻越一座山。仪表盘上的坡度计只告诉你当前是上坡还是下坡,这对应函数的一阶导数;但真正决定山路是否惊险的,是坡度的变化——如果坡度正在不断增大,说明前方爬升会更剧烈。这个“坡度的变化率”就是二阶导数,它是整个故事的起点。

在一元函数中,二阶导数被定义为导数的导数,衡量切线斜率本身的瞬间变化率:

当 \\(f''(x)>0\\) 时,曲线像一只碗,谷底能存住水;当 \\(f''(x)<0\\) 时,曲线像倒扣的碗,水会流走。可一旦走进多元函数的山地,脚下的路不再是单一方向,而是东南西北无数条路。每个方向的坡度不同,坡度变化的快慢也各不相同——一个数字已经不够了,我们需要一整块仪表盘来记录所有方向的弯曲情况。这块仪表盘,就是海森矩阵。

f′′(x)=lim⁡h→0f′(x+h)−f′(x)h\displaystyle f''(x)=\lim_{h\to 0}\frac{f'(x+h)-f'(x)}{h}
这个公式读作:相邻两个点的斜率之差,除以它们之间的距离,再让距离趋近于零——得到的正是“斜率的斜率”。
  1. 分子是斜率差\\(f'(x+h)\\) 和 \\(f'(x)\\) 分别是两个相邻点的切线斜率,相减得到斜率在一小段区间上的变化量。
    f′(x+h)−f′(x)f'(x+h)-f'(x)
  2. 分母是步长\\(h\\) 是两个测量点的间距,把变化量除以间距,得到单位长度上的平均变化率。
    f′(x+h)−f′(x)h\frac{f'(x+h)-f'(x)}{h}
  3. 极限取瞬时令 \\(h\to 0\\),让两个测量点无限靠近,平均变化率就收敛为 \\(x\\) 点处瞬间的曲率读数。
    lim⁡h→0f′(x+h)−f′(x)h\lim_{h\to 0}\frac{f'(x+h)-f'(x)}{h}

海森矩阵的定义

勘察队展开一张 2×2 的仪器面板:左上角记录“沿 \\(x\\) 方向的弯曲”,右下角记录“沿 \\(y\\) 方向的弯曲”,右上角和左下角则记录两个方向之间的“交叉弯曲”。有了这四个读数,就能完整描述一小块地形的局部形态。

对多元函数 \\(f(x_1,x_2)\\),把所有二阶偏导按行列排好,就得到海森矩阵。它的一般形式是:

举个例子:\\(f(x,y)=x^2+2xy+3y^2\\)。先对 \\(x\\) 求偏导得 \\(2x+2y\\),再对 \\(x\\) 求导得 2;交叉项 \\(\partial^2 f/\partial x\partial y=2\\)、\\(\partial^2 f/\partial y\partial x=2\\),最后 \\(\partial^2 f/\partial y^2=6\\)。于是:

这块仪表盘把“哪个方向弯、弯得多快”一次记录完整。勘察队只要读一眼,就能在脑海里重建脚下地形的局部模样。

Hf=[∂2f∂x12∂2f∂x1∂x2∂2f∂x2∂x1∂2f∂x22]\displaystyle \mathbf{H}_f = \begin{bmatrix} \dfrac{\partial^2 f}{\partial x_1^2} & \dfrac{\partial^2 f}{\partial x_1 \partial x_2} \\[6pt] \dfrac{\partial^2 f}{\partial x_2 \partial x_1} & \dfrac{\partial^2 f}{\partial x_2^2} \end{bmatrix}
矩阵第 \\(i\\) 行第 \\(j\\) 列放着“先对第 \\(i\\) 个变量求偏导、再对第 \\(j\\) 个变量求偏导”的结果。
  1. 第一行第一列对同一个变量 \\(x_1\\) 求两次偏导,得到该方向的纯曲率。
    ∂2f∂x12\dfrac{\partial^2 f}{\partial x_1^2}
  2. 第一行第二列先对 \\(x_1\\) 求、再对 \\(x_2\\) 求,记录两个方向的相互影响。
    ∂2f∂x1∂x2\dfrac{\partial^2 f}{\partial x_1 \partial x_2}
  3. 第二行第一列先对 \\(x_2\\) 求、再对 \\(x_1\\) 求,含义与上一项成对出现。
    ∂2f∂x2∂x1\dfrac{\partial^2 f}{\partial x_2 \partial x_1}
  4. 第二行第二列对 \\(x_2\\) 求两次偏导,构成另一条主对角线上的曲率读数。
    Hf=[2226]\mathbf{H}_f=\begin{bmatrix}2&2\\2&6\end{bmatrix}

对称性的本质

山地里有条令人安心的规律:无论你从东往西还是从西往东测量同一个山坡,读出的坡度变化率完全相同。这种事看起来理所当然,但在数学上需要条件保证——它就是克莱罗定理。

对于二阶偏导连续的函数,混合偏导与求导顺序无关:

对称性最直接的好处是省事:一个 \\(n\times n\\) 的海森矩阵,真正需要独立计算的只有 \\(\frac{n(n+1)}{2}\\) 个元素。勘察队只需要检查仪表盘的上三角,报告撰写量直接减半。

∂2f∂x∂y=∂2f∂y∂x\displaystyle \frac{\partial^2 f}{\partial x \partial y} = \frac{\partial^2 f}{\partial y \partial x}
交叉导数竟然相等,这意味着海森矩阵关于主对角线对称,山上和山下看同一处坡地,读数一致。
  1. 左边先对 \\(x\\) 求偏导,再对 \\(y\\) 求偏导,相当于先测东西方向的斜率,再看它沿南北方向怎么变。
    ∂∂y(∂f∂x)\frac{\partial}{\partial y}\left(\frac{\partial f}{\partial x}\right)
  2. 右边求导顺序反过来,先对 \\(y\\) 再对 \\(x\\),相当于先测南北方向,再看它沿东西方向怎么变。
    ∂∂x(∂f∂y)\frac{\partial}{\partial x}\left(\frac{\partial f}{\partial y}\right)
  3. 条件当二阶偏导在区域内连续时,左右两边相等,矩阵因此对称。
    continuous second partials⇒∂2f∂x∂y=∂2f∂y∂x\text{continuous second partials} \Rightarrow \frac{\partial^2 f}{\partial x\partial y}=\frac{\partial^2 f}{\partial y\partial x}

曲率刻画形状

地形图上的等高线越密,说明坡越陡。海森矩阵做的正是这件事:给每个方向都标出“弯曲密度”,从而决定局部地形的整体轮廓——是碗、是倒碗,还是马鞍。

想要看清轮廓,最有力的工具是二阶泰勒展开。它把任意复杂函数在某个点附近近似成一个平滑的二次曲面:

这张快照告诉我们:往哪个方向走一步,高度大概会升还是降、升多快。它就是后面牛顿法的地基。

f(x+p)≈f(x)+∇f(x)⊤p+12p⊤Hp\displaystyle f(\mathbf{x}+\mathbf{p}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^{\top}\mathbf{p} + \frac{1}{2}\mathbf{p}^{\top}\mathbf{H}\mathbf{p}
三项分别代表:当前高度、沿 \\(\mathbf{p}\\) 方向的坡度贡献、以及由海森矩阵决定的曲率贡献。合在一起,就是一张“局部地形快照”。
  1. 当前高度\\(f(\mathbf{x})\\) 是展开中心点的函数值,相当于快照的基准海拔。
    f(x)f(\mathbf{x})
  2. 坡度项\\(\nabla f(\mathbf{x})^{\top}\mathbf{p}\\) 用梯度点乘位移,预估坡度带来的线性变化。
    ∇f(x)⊤p\nabla f(\mathbf{x})^{\top}\mathbf{p}
  3. 曲率向量\\(\mathbf{H}\mathbf{p}\\) 把移动方向 \\(\mathbf{p}\\) 映射成一个新向量,记录该方向上的弯曲响应。
    Hp\mathbf{H}\mathbf{p}
  4. 二次项\\(\frac{1}{2}\mathbf{p}^{\top}\mathbf{H}\mathbf{p}\\) 把曲率响应折算成高度修正,决定近似曲面是上凸还是下凹。
    12p⊤Hp\frac{1}{2}\mathbf{p}^{\top}\mathbf{H}\mathbf{p}

正定与负定

把一颗玻璃珠放在地形上。如果四周都向中心倾斜,珠子会滚回中心——这是碗形谷底;如果四周向外倾斜,珠子会滚走——这是倒扣碗的山顶;如果一边向内、一边向外,珠子会沿马鞍滑走——这就是鞍点。判断属于哪种,靠的是海森矩阵的特征值。

特征值衡量“沿某个特征方向看过去的曲率大小和正负”。设 \\(\lambda\\) 是 \\(\mathbf{H}\\) 的特征值,\\(\mathbf{v}\\) 是对应特征向量:

来看前面的例子:\\(\mathbf{H}=\begin{bmatrix}2&2\\2&6\end{bmatrix}\\)。解特征方程 \\((2-\lambda)(6-\lambda)-4=0\\),得 \\(\lambda^2-8\lambda+8=0\\),即 \\(\lambda=4\pm2\sqrt{2}\approx 6.83,1.17\\)。两个特征值全为正,所以矩阵正定,这个点附近确实是碗形谷底。特征值读数,就是勘察队判断“这地方能不能扎营”的黄金标准。

Hv=λv\displaystyle \mathbf{H}\mathbf{v}=\lambda\mathbf{v}
矩阵把一个方向 \\(\mathbf{v}\\) 只做伸缩、不改变方向,伸缩倍率 \\(\lambda\\) 就是该方向的曲率符号和强度。
  1. 特征方程\\(\mathbf{H}\mathbf{v}\\) 的结果恰好是 \\(\lambda\mathbf{v}\\),说明这个方向上矩阵的作用只是缩放。
    Hv=λv\mathbf{H}\mathbf{v}=\lambda\mathbf{v}
  2. 正定判据所有特征值都大于零,意味着每个方向都向上弯曲,地形是一只碗。
    λi>0∀i  ⟺  H≻0\lambda_i>0 \quad \forall i \;\Longleftrightarrow\; \mathbf{H}\succ 0
  3. 负定与不定全部为负是倒扣的碗;有正有负则是马鞍。
    λi<0∀i  ⟺  H≺0\lambda_i<0 \quad \forall i \;\Longleftrightarrow\; \mathbf{H}\prec 0

极值的判定

勘察队终于找到一个坡度为零的平地,但还不能急着扎营——平地可能是谷底,可能是山顶,也可能只是山口。坡度为零只是“驻点”,是必要不充分条件;最终裁决要交给海森仪表盘。

一阶条件加上二阶条件,构成完整的极值判定法则:

回到例子 \\(f(x,y)=x^2+2xy+3y^2\\):解 \\(2x+2y=0\\) 和 \\(2x+6y=0\\) 得唯一驻点 \\((0,0)\\),该处海森矩阵正定,因此 \\((0,0)\\) 是全局极小值点,\\(f(0,0)=0\\)。有了这套法则,勘察队不用爬遍每个山包,也能在地图上标出真正的扎营点位。

∇f(x∗)=0,H(x∗)≻0  ⟹  x∗ is a strict local minimum\displaystyle \nabla f(\mathbf{x}^{*})=\mathbf{0}, \quad \mathbf{H}(\mathbf{x}^{*})\succ 0 \;\Longrightarrow\; \mathbf{x}^{*} \text{ is a strict local minimum}
先把梯度归零找到驻点,再看海森矩阵是否正定:正定是严格局部极小值,负定是严格局部极大值,不确定则是鞍点或退化情形。
  1. 驻点条件梯度向量为零,排除所有带坡度的位置。
    ∇f(x∗)=0\nabla f(\mathbf{x}^{*})=\mathbf{0}
  2. 正定条件海森矩阵正定,说明所有方向的曲率都向上,地形是碗。
    H(x∗)≻0\mathbf{H}(\mathbf{x}^{*})\succ 0
  3. 结论两个条件同时满足时,该点是严格局部极小值;负定则换成严格局部极大值。
    x∗ is a strict local min\mathbf{x}^{*} \text{ is a strict local min}

牛顿法优化

梯度下降像蒙眼爬山的人:只能凭脚下坡度迈小步,路线总是歪歪扭扭、来回试探。牛顿法则像拿着地形快照的向导:既知道坡度,又知道曲率,能直接算出谷底的大致方位,一步跨过去。

牛顿法的思路很直接:在当前点 \\(\mathbf{x}_k\\) 处用二阶泰勒展开近似目标函数,然后求这个近似函数的驻点。对近似式求梯度并令其为零,得到 \\(\nabla f(\mathbf{x}_k)+\mathbf{H}(\mathbf{x}_k)\mathbf{p}=\mathbf{0}\\),解出 \\(\mathbf{p}=-\mathbf{H}^{-1}\nabla f(\mathbf{x}_k)\\),于是迭代公式为:

对二次凸函数,牛顿法一步到达最优点;对一般函数通常需要多步,且非凸时可能被带向鞍点,所以实际中常配合线搜索或正则化。对比可视化演示里的两条路径:红色梯度路径蜿蜒数十步,绿色牛顿路径一条直线直插谷底——这就是二阶信息带来的代差。

xk+1=xk−H−1∇f(xk)\displaystyle \mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{H}^{-1}\nabla f(\mathbf{x}_k)
每一步都减去“被曲率修正过的梯度”:梯度决定大致方向,海森矩阵的逆把方向掰向谷底。
  1. 下降方向\\(-\nabla f(\mathbf{x}_k)\\) 指向最陡下降方向。
    −∇f(xk)-\nabla f(\mathbf{x}_k)
  2. 曲率修正\\(\mathbf{H}^{-1}\\) 像把椭圆等高线“压”成圆形的变换,抵消了曲率对方向的扭曲。
    H−1\mathbf{H}^{-1}
  3. 更新用修正后的方向推进,二次函数的近似驻点就是真实驻点,因此一步到位。
    xk+1=xk−H−1∇f(xk)\mathbf{x}_{k+1}=\mathbf{x}_k-\mathbf{H}^{-1}\nabla f(\mathbf{x}_k)

计算代价

全套地形测量仪虽好,搬运它却需要一支车队:每个传感器都要专人维护,维度越高越沉重。海森矩阵是 \\(n\times n\\) 的矩阵,当参数从 100 涨到 10000,读数和运算量会暴涨到难以承受。

存储要 \\(n^2\\) 个元素,求逆更要 \\(n^3\\) 量级的乘法:

现实中的勘察队只会带轻便的“袖珍曲率计”,用历史梯度读数近似曲率,既省人力又不失方向感。理解海森矩阵,不只是会算一个方阵,更是理解为什么优化算法要在精度和代价之间做出精妙权衡。

---

O(n2),O(n3)\displaystyle \mathcal{O}(n^2), \quad \mathcal{O}(n^3)
前者是搬运行李的重量,后者是组装仪器的时间。两个代价随维度飞速膨胀,这正是标准牛顿法在大规模深度学习里罕见的原因。
  1. 存储代价矩阵的每一项都是一个二阶偏导读数,全部存下需要 \\(n^2\\) 个元素。
    O(n2)\mathcal{O}(n^2)
  2. 求逆代价高斯消元等算法求逆约需 \\(n^3\\) 次乘法运算。
    O(n3)\mathcal{O}(n^3)
  3. 实践取舍因此大规模场景常用 BFGS、L-BFGS 等近似海森方法,或用 Adam 这类一阶方法。
    approx: O(n)\text{approx: } \mathcal{O}(n)

AI 应用场景

用二阶曲率诊断损失的“鞍点陷阱”

阶段:模型分析与调试

解决的问题:训练损失卡在平台期时,工程师常误以为到了局部最优。传统做法是盲目调学习率或随机重启,浪费大量算力。利用海森矩阵的特征值谱,可以判断当前驻点是局部极小还是鞍点:只要存在负特征值,说明该方向曲率向下,只需沿此方向加一个小扰动就能继续下降。

具体案例:某图像分类模型训练到第 50 轮时 loss 停在 0.42 不再下降。工程师计算损失函数在驻点处的海森矩阵,发现特征值有正有负,确认是鞍点而非谷底。沿负特征值方向加入扰动后重启训练,两轮内 loss 就降到 0.31。

用牛顿类方法加速中小模型的收敛

阶段:模型训练与优化

解决的问题:逻辑回归、CRF 等中小模型采用纯 SGD 时,学习率需要反复调节,收敛路径蜿蜒。改用 L-BFGS(一种不显式存储海森矩阵的拟牛顿法),可以利用二阶曲率信息自动修正步长,减少迭代轮数。

具体案例:在点击率预估的逻辑回归模型上,特征维度约 5 万,SGD 需要 200 轮收敛到目标精度,而 L-BFGS 只用 30 轮。虽然每轮计算更重,但总训练时间下降约 60%,且完全不需要手工调学习率。

优化算法的选型依据

阶段:基础设施与框架选型

解决的问题:面对一个新任务,工程师要决定用 Adam 还是一阶 SGD。通过估算参数维度对应的海森矩阵存储代价(\\(n^2\\)),可以快速判断:参数上亿的深度网络显然无法承受,但参数几千的传统模型完全可以用二阶方法获得更快的收敛。

具体案例:一个在线排序模型的参数约 3000,\\(n^2=9\times10^6\\) 的存储完全可行,团队因此直接选用 BFGS 优化器,相比 Adam 减少了 40% 的验证损失并缩短了上线时间。

Python 演示

python45 行
import numpy as np def f(x):    return x[0]**2 + 2 * x[0] * x[1] + 3 * x[1]**2 def grad(x):    return np.array([2 * x[0] + 2 * x[1],                     2 * x[0] + 6 * x[1]]) def hessian(x):    return np.array([[2.0, 2.0],                     [2.0, 6.0]]) def newton_minimize(x0, max_iter=10, tol=1e-8):    x = x0.copy()    k = 0    for k in range(max_iter):        g = grad(x)        H = hessian(x)        step = np.linalg.solve(H, -g)        x_new = x + step        if np.linalg.norm(x_new - x) < tol:            x = x_new            break        x = x_new    return x, f(x), k + 1 def gd_minimize(x0, alpha=0.1, max_iter=200):    x = x0.copy()    k = 0    for k in range(max_iter):        g = grad(x)        x_new = x - alpha * g        if np.linalg.norm(x_new - x) < 1e-6:            x = x_new            break        x = x_new    return x, f(x), k + 1 if __name__ == "__main__":    x0 = np.array([2.0, -1.5])    x_nt, val_nt, it_nt = newton_minimize(x0)    print("newton: x =", x_nt, "f =", val_nt, "iters =", it_nt)    x_gd, val_gd, it_gd = gd_minimize(x0)    print("gd:     x =", x_gd, "f =", val_gd, "iters =", it_gd)
目的:用解析形式给出一个二元二次函数的梯度与海森矩阵,对比牛顿法与梯度下降在同一初始点上的收敛速度。
  1. def hessian(x):返回海森矩阵;对二次函数它是常数矩阵,不随位置改变。
  2. step = np.linalg.solve(H, -g)直接解线性方程组 \\(\mathbf{H}\mathbf{p}=-\mathbf{g}\\),避免显式计算逆矩阵,数值更稳定。
  3. x_new = x + step计算牛顿步的新位置,二次函数一步就能到达极小点。
  4. if np.linalg.norm(x_new - x) < tol:用位移长度判断是否收敛,避免多余迭代。
  5. x_new = x - alpha * g梯度下降只沿梯度反方向走固定步长,没有曲率修正,因此要迭代很多次。
  6. x0 = np.array([2.0, -1.5])起点故意选在椭圆长轴附近,让梯度下降的蜿蜒效果更明显。

常见误区

误区我只要解出 \\(\nabla f=0\\) 的驻点,那就肯定是函数的极大值或极小值,直接收工。

正解一维里 \\(f'(x)=0\\) 时常对应极值,但多元函数中有一种特殊地形叫鞍点——沿一个方向看是谷,沿另一个方向看是山,梯度同样为零。必须用海森矩阵判断:正定是极小、负定是极大、有正有负是鞍点。就像站在马鞍上,脚下是平的,但四周却是一边高一边低。

为何常见:人脑习惯把一元函数的经验直接推广到多元,忽略了“方向”这个新变量带来的复杂性。

误区我发现书里所有海森矩阵都是对称的,所以任何函数的海森矩阵都自动满足 \\(H_{ij}=H_{ji}\\),不用验证。

正解对称性依赖克莱罗定理,前提是二阶偏导在区域内连续。大多数光滑函数满足,但并非所有函数都满足——一旦二阶偏导不连续,混合偏导可能随求导顺序改变,海森矩阵就不再对称。

为何常见:教材例题几乎都选光滑函数,学生在大量对称矩阵的重复训练下,把“常被满足的性质”误当成了“必然成立的定义”。

误区既然海森记为 \\(\nabla^2 f\\),那它就是把梯度每个分量平方一下得到的矩阵,省事又直观。

正解\\(\nabla^2 f\\) 的符号容易误导人,但海森矩阵其实是梯度向量的雅可比矩阵:第 \\(i\\) 行第 \\(j\\) 列是 \\(\partial^2 f/\partial x_i\partial x_j\\),包括大量交叉偏导。逐元素平方会丢掉这些交叉项,而交叉项恰恰记录了不同维度之间的相互影响,是判断鞍点的关键。

为何常见:符号 \\(\nabla^2\\) 看起来像平方,加上一维时二阶导确实就是“导数的导数”,让人误以为高维只是简单逐元素操作。

误区牛顿法的迭代公式里没有学习率 \\(\alpha\\),说明它每一步都是最优步长,无论什么函数都能稳定收敛到极小值。

正解公式中没有显式学习率,是因为海森逆矩阵隐含了自适应步长,但这只对二次凸函数严格成立。对一般非凸函数,牛顿步可能迈得太大、越过谷底甚至发散,也可能被引向鞍点。实际应用中常要加线搜索、阻尼项或正则化来保证收敛。

为何常见:看到优美推导就以为完美无缺,忽略了公式成立的前提条件,这是理论走向工程时最常见的认知落差。

误区既然牛顿法收敛这么快,那所有神经网络的训练都应该用海森矩阵优化,取代 Adam 和 SGD。

正解现代大模型的参数量动辄数十亿,海森矩阵需要 \\(n^2\\) 的存储和 \\(n^3\\) 的求逆运算,天文数字般的成本让标准牛顿法完全不可行。实际做法是使用 L-BFGS 等拟牛顿法近似海森矩阵,或者用 Adam 这种带一阶动量估计的方法,在计算代价和收敛速度之间找平衡。

为何常见:只看到理论上的收敛优势,忽略了工程中的存储和计算瓶颈,就像只看跑车最高时速却忘了油箱容量。

面试题

Q1. 海森矩阵第 i 行第 j 列的元素是什么?

单选题 · easy

  • A.对第 i 个变量求一阶偏导数
  • B.对第 i 与第 j 个变量求二阶偏导← 正确答案
  • C.对第 j 个变量求一阶偏导数
  • D.对第 j 个变量求一阶导再平方

答案:B。海森矩阵的第 \\((i,j)\\) 个元素是先对第 \\(i\\) 个变量求偏导、再对第 \\(j\\) 个变量求偏导的二阶混合导数。想象仪表盘的每一格都对应一对方向的弯曲读数,而不是单个方向的一阶坡度。

Q2. 一元函数在一点处 f''(x)>0,该点附近的曲线形状最像?

单选题 · easy

  • A.向下凸起的山包
  • B.向上凹陷的碗底← 正确答案
  • C.水平的缓坡地带
  • D.向两侧翘起的鞍

答案:B。二阶导大于零意味着斜率在增大,曲线向上凹,像一只碗。碗底的特征是四周都向中心汇聚,这与倒扣碗的山包完全相反。

Q3. 克莱罗定理说明,混合偏导相等的关键前提条件是?

单选题 · easy

  • A.一阶偏导连续
  • B.二阶偏导连续← 正确答案
  • C.函数值恒不为零
  • D.自变量个数为偶数

答案:B。只有二阶偏导在区域内连续时,“先对 x 再对 y”与“先对 y 再对 x”两种求导顺序才给出相同结果。这个条件保证了海森矩阵的对称性。

Q4. 对称正定矩阵的全部特征值具有什么特征?

单选题 · mid

  • A.都小于零
  • B.都等于零
  • C.都大于零← 正确答案
  • D.正负各一半

答案:C。正定矩阵的所有特征值都大于零,意味着从任何方向看,二次曲面都向上弯曲,整体是碗形谷底。这是判断局部极小值的核心依据。

Q5. 牛顿法迭代公式 x_{k+1}=x_k−H^{−1}∇f(x_k) 中,H^{−1} 的作用是?

单选题 · mid

  • A.提供曲率修正的方向← 正确答案
  • B.放大学习率避免停滞
  • C.计算数值积分
  • D.消除所有非凸性

答案:A。海森矩阵的逆把梯度方向按曲率进行修正,相当于把椭圆等高线“压”成圆形,让更新方向直接指向谷底。它不放大学习率,也无法消除非凸性。

Q6. 二元函数在驻点处海森矩阵拥有正负特征值各一个,该点是?

单选题 · mid

  • A.局部极大点
  • B.局部极小点
  • C.马鞍形驻点← 正确答案
  • D.无法直接判断

答案:C。有正有负的特征值说明一个方向向上弯、另一个方向向下弯,地形如马鞍。站在马鞍上,沿一个方向看是谷,沿另一个方向看是山,所以是鞍点而非极值。

Q7. 关于光滑函数的海森矩阵,以下说法正确的有?

多选题 · mid

  • A.海森矩阵是对称矩阵← 正确答案
  • B.半正定驻点必为极小点
  • C.特征值刻画各方向曲率← 正确答案
  • D.对角元是混合偏导数

答案:AC。光滑函数二阶偏导连续,克莱罗定理保证对称,A 对;特征值正负决定每个方向的弯曲方向,C 对。半正定不足以排除退化情形,B 错;对角元是同一变量的二阶导,不是混合偏导,D 错。

Q8. 已知 f(x,y)=x²+2xy+3y² 的驻点为 (0,0),且该处海森矩阵正定,因此该点是?

单选题 · hard

  • A.局部极小值点← 正确答案
  • B.局部极大值点
  • C.马鞍形驻点
  • D.需要更多信息

答案:A。驻点处海森矩阵 \\(\begin{bmatrix}2&2\\2&6\end{bmatrix}\\) 的特征值 \\(4\pm2\sqrt{2}\\) 均大于零,正定说明所有方向都向上弯曲,所以 \\((0,0)\\) 是严格局部极小值。

Q9. 深度学习训练中为什么常用拟牛顿法而非标准牛顿法?

多选题 · hard

  • A.海森矩阵存储开销为平方级← 正确答案
  • B.求逆计算量达到立方级← 正确答案
  • C.非凸问题可能收敛失败← 正确答案
  • D.海森矩阵恒为奇异矩阵

答案:ABC。标准牛顿法需要 \\(O(n^2)\\) 存储和 \\(O(n^3)\\) 求逆,大模型无法承受;同时非凸问题中牛顿步可能发散或引向鞍点。海森矩阵并不恒奇异,D 错误。拟牛顿法用梯度历史近似海森,兼顾效率与稳定。

Q10. 若函数二阶偏导不连续,克莱罗定理还能保证海森矩阵对称吗?

单选题 · extreme

  • A.总能保持对称性
  • B.无法保证对称性← 正确答案
  • C.取决于是极大还是极小
  • D.一维情形才能保证

答案:B。对称性的保证来自克莱罗定理,其前提正是二阶偏导连续。失去连续性,混合偏导可能随求导顺序改变,矩阵对称性也随之失去。这与极值性质、维度多少无关。