雾气弥漫的山谷里,小齐是一位蒙眼下山的登山者。他看不到整座山的形状,只能靠手杖敲击地面,感受脚下的坡度。如果只顺着坡度最陡的方向迈出一小步,那就是“梯度下降”——每次只前进一点点,走得慢却稳妥。可小齐后来得到了一根更神奇的探杖:它能同时告诉他脚下的地面是向上隆起还是向下凹陷,也就是“曲率”。有了曲率,小齐不再盲目挪步,而是能猜出附近山体的形状,仿佛看见一座碗形的地图,直接从山顶附近“跳”到碗底。这根探杖,就是牛顿法里的 Hessian 矩阵。接下来的故事,就围绕小齐如何利用坡度与曲率,完成一场又快又稳的下山之旅。

岗位关联

对 AI 从业者而言,掌握牛顿法与二阶优化收敛,等于理解为什么有的优化器几轮就收敛、有的却步履蹒跚;这是设计高效训练算法、评估损失曲面性质的核心底气。

目录
  1. 可视化演示
  2. 几何直觉
  3. 数学原理
  4. 牛顿迭代式
  5. 收敛性质
  6. 阻尼策略
  7. 信赖域方法
  8. 适用条件
  9. 工程实践
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

\u901a\u8fc7\u4e09\u9636\u6bb5\u4ea4\u4e92\u5c55\u793a\u725b\u987f\u6cd5\u5728\u635f\u5931\u66f2\u9762\u4e0a\u7684\u6536\u655b\u8f68\u8ff9\u3001\u4e0e\u68af\u5ea6\u4e0b\u964d\u7684\u6536\u655b\u901f\u5ea6\u5bf9\u6bd4\uff0c\u4ee5\u53ca\u963b\u5c3c\u725b\u987f\u6cd5\u7684\u4fe1\u8d56\u57df\u7b56\u7565\u3002

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

\u725b\u987f\u6cd5\u6536\u655b\u8f68\u8ff9 \u725b\u987f\u6b65 \u6700\u4f18\u89e3 x\u208a\u2081=x-H\u207b\u00b9\u2207f \u4e8c\u6b21\u8fd1\u4f3c\u76f4\u63a5\u8df3\u5230\u6700\u4f4e\u70b9

几何直觉

小齐的第一次下山经历,和他拿到新探杖的经历形成了鲜明对比。起初,他只能感受到脚下某一点的坡度:脚底向前倾斜,说明前面更低;向后倾斜,说明后面更低。沿着最陡下坡的方向走一小步,这就是最朴素的梯度下降。可小齐发现,单纯看坡度会走很多冤枉路:明明快到谷底了,坡度变小,步子也跟着变小,最后还要磨蹭很久。

新的探杖给了小齐第二种感觉:曲率。如果脚下是一块向上翘的凹地,那是碗形;如果是一块凸起的山脊,那是反碗形。知道了“坡度”和“曲率”这两个信息,小齐就能在脑海里给附近的地形画一张简单草图,判断谷底大约在哪里。这个“曲率”在数学上就是 Hessian 矩阵。

对一元函数而言,坡度是导数,曲率是二阶导数,两者合成了一张局部地图的完整描述:

有了这张地图,小齐不必再一小步一小步地试探。他从坡度判断山谷方向,从曲率判断山谷距离,一步就能跨到地图上的“最低点”。几何直觉就此成形:梯度是朝向,Hessian 是尺子。

gk=f′(xk),Hk=f′′(xk)g_k = f'(x_k), \qquad H_k = f''(x_k)
坡度 $g_k$ 告诉小齐往哪走,曲率 $H_k$ 告诉小齐走多远能到谷底;两者合起来,就是牛顿法最原始的直觉。
  1. 坡度符号$g_k$ 是第 $k$ 次迭代位置的导数,代表函数在该点上升或下降的速率。小齐用手杖感知的“倾斜角”就是它。
    gk=f′(xk)g_k = f'(x_k)
  2. 曲率符号$H_k$ 是同一位置的二阶导数,描述地形弯曲的方向与程度。正的二阶导数是碗,负的是倒扣的碗。
    Hk=f′′(xk)H_k = f''(x_k)

数学原理

小齐在出发前想把地图画得更精确。他学过一个技巧:任何光滑的地形,在一个小范围内都能被一条抛物线近似替代。真实山谷可能歪歪扭扭,但在小齐脚下几米内,抛物线和真实地面几乎重合。这条抛物线由三个信息决定:当前高度、当前坡度、当前曲率。这就是二阶泰勒展开。

数学上,若当前位置是 $x_k$,移动方向是 $d$,局部二次模型写成:

当真实地形足够光滑,二次模型与真实的高差接近“高阶小量”。小齐于是信任这条抛物线:只要不迈出太远,误差就小。这就是为什么牛顿法本质上是一个“局部二次近似”的迭代过程。

f(xk+d)≈fk+gk⊤d+12d⊤Hkdf(x_k + d) \approx f_k + g_k^{\top} d + \frac{1}{2} d^{\top} H_k d
这相当于小齐用“当前高度、坡度、曲率”三件套画了一条抛物线,用它预测前方任何小步子的海拔。
  1. 当前高度$f_k$ 是小齐脚下的海拔,对应泰勒展开的常数项。
    fk=f(xk)f_k = f(x_k)
  2. 线性项$g_k^{\top} d$ 是坡度带来的高度变化,沿着与坡度同向的 $d$ 走,高度变化最快。
    gk⊤d=∑i∂f∂xidig_k^{\top} d = \sum_{i} \frac{\partial f}{\partial x_i} d_i
  3. 二次项$\frac{1}{2} d^{\top} H_k d$ 是曲率带来的修正,它让抛物线有能力弯曲,从而贴合真实山谷。
    d⊤Hkd=∑i∑jdiHijdjd^{\top} H_k d = \sum_{i}\sum_{j} d_i H_{ij} d_j

牛顿迭代式

小齐有了二次模型,下一步是求解“这条抛物线的最低点在哪里”。抛物线最低点的条件是:斜率等于零。对上面的模型关于 $d$ 求导并令其为零,得到线性方程组:

解出 $d_k$ 后,小齐从当前位置出发,直接移动到:

注意,这里不是直接计算 $d_k = -H_k^{-1} g_k$ 作为最终步长,而是把它当作候选方向。如果地形真是理想碗形,这一步就会精确落到碗底;如果地形更复杂,小齐还要像后文那样给步子加上阻尼或边界。

Hkdk=−gkH_k d_k = -g_k
xk+1=xk+dkx_{k+1} = x_k + d_k
小齐的“一步到位”:解一个线性方程组,得到最优移动向量 $d_k$,然后跳到抛物线最低点。这个 $d_k$ 就是牛顿方向。
  1. 求导置零让二次模型的梯度等于零,相当于找抛物线最低点,也就是“谷底候选位置”。
    ∇d(fk+gk⊤d+12d⊤Hkd)=0\nabla_d\left(f_k + g_k^{\top}d + \tfrac12 d^{\top}H_k d\right)=0
  2. 线性方程组化简后得到 $H_k d_k = -g_k$。这意味着把曲率作用到移动方向上,恰好抵消坡度的拉力。
    Hkdk=−gkH_k d_k = -g_k
  3. 迭代更新将牛顿方向加到当前点上,得到下一步位置。
    xk+1=xk+dkx_{k+1} = x_k + d_k

收敛性质

小齐最惊喜的发现,出现在一片被大雪覆盖、形状几乎完美的碗形山谷中。他闭上眼睛,直接按牛顿方向跳了一步,睁开眼睛时,已经站在谷底。数学上说,如果目标函数本身就是二次函数,牛顿法具有“二次终止性”:无论从哪里出发,一步到达最优解。

在更真实、非二次的山谷里,小齐依然感到震撼。每一步之后,他与谷底的距离不是按比例缩小,而是被不断“平方”。如果上一步误差是 $0.1$,下一步大约是 $0.001$,再下一步是 $10^{-7}$。这种收敛叫二次收敛:

而更一般的描述是“超线性收敛”:相邻两步误差之比趋于零:

这就是牛顿法“又快又猛”的收敛魅力,也是它被称为二阶优化方法的原因:它不只利用坡度,还利用了地形弯曲带来的高阶信息。

∥xk+1−x∗∥≤c ∥xk−x∗∥2\|x_{k+1} - x^*\| \le c\,\|x_k - x^*\|^2
lim⁡k→∞∥xk+1−x∗∥∥xk−x∗∥=0\lim_{k\to\infty}\frac{\|x_{k+1} - x^*\|}{\|x_k - x^*\|} = 0
如果说梯度下降每次把误差砍掉一半,牛顿法则是把误差从 0.1 变成 0.001,再变成 0.0000001。这是一种“越接近谷底越快”的神奇体验。
  1. 二次收敛不等式$c$ 是一个与函数光滑程度有关的常数;右侧是当前误差的平方,左侧是下一步误差。平方意味着误差被指数级压缩。
    ∥xk+1−x∗∥≤c ∥xk−x∗∥2\|x_{k+1} - x^*\| \le c\,\|x_k - x^*\|^2
  2. 超线性收敛定义比值趋于零,说明每一步改进的速度远快于线性比例。梯度下降的比值一般只趋于某个小于 1 的常数,所以远慢于牛顿法。
    lim⁡k→∞∥xk+1−x∗∥∥xk−x∗∥=0\lim_{k\to\infty}\frac{\|x_{k+1} - x^*\|}{\|x_k - x^*\|} = 0
  3. 局部性提醒二次收敛通常只在初始点足够接近最优点的局部邻域内成立。小齐如果在很远的地方就用牛顿方向猛跳,可能跳出地图的可信范围。

阻尼策略

小齐在山谷里用牛顿法跳了几次,发现一个危险:如果脚下的地形不是标准碗形,他按抛物线预测的“谷底”可能跑到了很远的地方,甚至比原地还高。为了避免这种情况,小齐不再盲目地完全跳过去,而是先朝牛顿方向伸出一只脚,试探着走一小段路。如果地形开始好转,就继续走;如果发现不妙,就立即缩回半步。这个“考虑步长”的做法,就是阻尼牛顿法。

阻尼牛顿法的迭代式改成:

其中 $d_k = -H_k^{-1} g_k$ 是牛顿方向,$\alpha_k$ 是线搜索得到的步长。为了判断步长是否合适,小齐使用 Armijo 条件:

有了阻尼,牛顿法不再只在一个小邻域内有效,而是能应对更崎岖的地形,从而获得全局收敛性。

xk+1=xk+αkdkx_{k+1} = x_k + \alpha_k d_k
f(xk+αkdk)≤f(xk)+c1αkgk⊤dkf(x_k + \alpha_k d_k) \le f(x_k) + c_1 \alpha_k g_k^{\top} d_k
小齐的“试脚”策略:先按牛顿方向走,但只走一段;如果海拔没有按预期下降,就立刻缩短步子。这能保证每步都让目标函数下降。
  1. 阻尼系数$\alpha_k$ 是一个介于 0 到 1 之间的倍率。它为牛顿方向“踩刹车”,防止步子跨过谷底甚至冲上山坡。
    xk+1=xk+αkdkx_{k+1} = x_k + \alpha_k d_k
  2. Armijo 条件右边是期望的最低下降量,左边是实际下降量。只有当实际下降量不低于期望值,这一步才被接受。
    f(xk+αkdk)≤f(xk)+c1αkgk⊤dkf(x_k + \alpha_k d_k) \le f(x_k) + c_1 \alpha_k g_k^{\top} d_k
  3. 回溯循环常见做法是从 $\alpha=1$ 开始,每次把 $\alpha$ 乘以 $0.5$,直到满足 Armijo 条件。小齐就这样把“一步到位”降级为“稳步推进”。

信赖域方法

除了给步长踩刹车,小齐还有另一种策略:给自己画一个圆圈,只在这个圆圈内相信抛物线地图,圆圈之外的地形一律不信。这个圆圈就是信赖域。每次迭代,小齐在圆内寻找抛物线的极小点,并真正走过去。

信赖域子问题写成:

信赖域方法与阻尼牛顿是两种互补的“安全阀”。阻尼通过缩短步长保护迭代,信赖域通过限制搜索范围保护模型的正确性。许多二次收敛算法都会结合两者,从而兼顾速度与稳健。

min⁡∥d∥≤Δk(fk+gk⊤d+12d⊤Hkd)\min_{\|d\| \le \Delta_k} \left(f_k + g_k^{\top} d + \frac{1}{2} d^{\top} H_k d\right)
小齐的“安全圈”:地图只在半径 $\Delta_k$ 内可信,所以宁可在圈内找一个好点,也不盲目跳到圈外。
  1. 目标函数在括号内仍然是二阶泰勒模型,代表小齐对前方地形的预测。
    fk+gk⊤d+12d⊤Hkdf_k + g_k^{\top} d + \frac12 d^{\top} H_k d
  2. 半径约束$\|d\| \le \Delta_k$ 限制移动距离不能超过信赖域半径;小齐不允许自己走出地图可信区。
    ∥d∥≤Δk\|d\| \le \Delta_k
  3. 半径更新如果实际下降量与模型预测的下降量很接近,说明模型很准,下一轮可以扩大半径;反之则缩小半径。这种动态调整让算法既自信又谨慎。

适用条件

小齐发现,不是所有地形都适合用牛顿法。首先,抛物线地图必须开口朝上,也就是碗形而不是倒扣的碗。数学上,这要求 Hessian 矩阵正定:

如果 Hessian 不正定,牛顿方向可能把小齐引向高处,而不是谷底。

此外,牛顿法每次迭代都要求解 $n$ 元线性方程组,存储 $n\times n$ 的 Hessian 矩阵,成本约 $O(n^3)$。因此它最适合小规模、光滑、可微两次的优化问题。

v⊤Hv>0,∀v≠0v^{\top} H v > 0, \quad \forall v \neq 0
倒扣的碗会让小齐朝着山脊走,越走越高。正定的 Hessian 保证“抛物线开口朝上”。
  1. 正定条件对任意非零方向 $v$,$v^{\top}Hv$ 都必须大于零,说明地形在任意方向上都呈凹形。
    v⊤Hv>0(∀v≠0)v^{\top} H v > 0 \quad (\forall v \neq 0)
  2. 正则化修正如果 Hessian 半正定或不定,常见做法是加上一个位移项让它变正定:
    Hreg=H+λIH_{\mathrm{reg}} = H + \lambda I
  3. 光滑性要求目标函数至少要连续可微两次,否则二阶泰勒模型没有意义。小齐在布满尖石的地形上无法使用探杖。

工程实践

在实际工作中,小齐学会了三条经验。第一,初始点要选得离谷底别太远。牛顿法的二次收敛是局部性质,好的初始化能让它直接进入“误差平方收缩”的快车道;第二,直接求 Hessian 的逆矩阵并不明智,应该通过求解线性方程组得到牛顿方向,并用 Cholesky 分解等数值稳定算法处理;第三,要结合阻尼或信赖域,防止非凸区域中的意外跳跃。

这里用条件数描述求解难度:Hessian 的条件数 $\kappa(H)$ 越大,线性方程组越难解,牛顿步的数值误差也越大:

回到小齐的故事:他带着坡度手杖和曲率探杖,学会了在光滑的碗形山谷里一步到底,在陌生崎岖地形上则用阻尼和信赖域稳住脚步。这就是牛顿法与二阶优化收敛的全貌。

κ(H)=∥H∥ ∥H−1∥\kappa(H) = \|H\|\,\|H^{-1}\|
小齐的经验之谈:初始化选得准、方程解得稳、步长控得住,牛顿法才能成为真正的“精确制导导弹”。
  1. 条件数定义$\kappa(H)$ 是 Hessian 最大特征值与最小特征值之比,它刻画了二次模型“有多难解”。条件数太大,地图会变得像一道狭长峡谷,牛顿步容易在谷壁间震荡。
    κ(H)=∥H∥ ∥H−1∥\kappa(H) = \|H\|\,\|H^{-1}\|
  2. 求解方式实践中用 $H_k d_k = -g_k$ 求解,而不是先算逆矩阵;Cholesky 分解比显式求逆更快更稳。
    Hkdk=−gkH_k d_k = -g_k
  3. 与梯度法对比梯度下降每步只需计算一阶导数、成本低但收敛慢;牛顿法每步需要二阶信息、成本高但收敛极快。小规模问题上,牛顿法常以更少的总运算量胜出。

AI 应用场景

相机自动对焦与镜头标定

阶段:系统标定与参数优化

解决的问题:传统自动对焦需要逐级扫描镜头位置,速度慢且容易在峰值附近来回震荡。AI 算法将镜头位移、焦距与被摄物距离建模成非线性函数,用阻尼牛顿法快速搜索最优镜头位置,同时用线搜索避免越过清晰度峰值。

具体案例:工业视觉检测系统中,镜头需要根据工件高度实时调整对焦位置。工程师把图像清晰的对比度作为目标函数,用牛顿法计算下一步镜头位移,通常两三步内就锁定焦点。

激光雷达点云配准

阶段:感知数据预处理与配准

解决的问题:两帧点云需要对齐,传统 ICP 算法只利用一阶信息,容易陷入局部最优。工程中常把配准问题展开成非线性最小二乘,用信赖域牛顿法(如 Levenberg-Marquardt)利用 Hessian 近似信息,在模型中加入半径约束,大幅提高收敛速度与鲁棒性。

具体案例:自动驾驶汽车在隧道中失去 GPS 信号,系统使用激光雷达点云与高精地图配准定位。信赖域牛顿法通过限制搜索半径,在坡道和弯道上仍能稳定估计车辆位姿。

小样本非线性模型校准

阶段:模型后校准与超参数微调

解决的问题:训练好的模型在部署时受到温度、湿度等环境因素影响,输出发生漂移。传统网格搜索校准参数耗时巨大。用阻尼牛顿法在少量校准样本上快速优化参数,能利用局部曲率信息把误差压到极小。

具体案例:工业传感器在出厂前需要标定零点和增益。工程师把标定误差建模为光滑非线性函数,用带回溯线搜索的牛顿法做最后微调,比梯度下降少用一半迭代次数。

Python 演示

python64 行
import math  def func(x):    # 目标函数:最小值在 x=1 附近    d = x - 1.0    return d * d + 0.08 * math.pow(d, 4)  def grad(x):    # 一阶导数:坡度    d = x - 1.0    return 2.0 * d + 0.32 * math.pow(d, 3)  def hess(x):    # 二阶导数:曲率    d = x - 1.0    return 2.0 + 0.96 * d * d  def armijo_line_search(x, d, c=1e-4, rho=0.5):    alpha = 1.0    fx = func(x)    gx = grad(x)    while func(x + alpha * d) > fx + c * alpha * gx * d:        alpha *= rho    return alpha  def damped_newton(x0, max_iter=20, tol=1e-9):    xs = [x0]    x = x0    for _ in range(max_iter):        g = grad(x)        h = hess(x)        direction = -g / h        alpha = armijo_line_search(x, direction)        x = x + alpha * direction        xs.append(x)        if abs(grad(x)) < tol:            break    return xs  def gradient_descent(x0, lr=0.16, max_iter=500, tol=1e-9):    xs = [x0]    x = x0    for _ in range(max_iter):        x = x - lr * grad(x)        xs.append(x)        if abs(grad(x)) < tol:            break    return xs  if __name__ == "__main__":    start = 4.0    newton_path = damped_newton(start)    gd_path = gradient_descent(start)    print("阻尼牛顿法迭代次数:", len(newton_path) - 1)    print("梯度下降迭代次数:", len(gd_path) - 1)    print("阻尼牛顿法解:", newton_path[-1])    print("梯度下降法解:", gd_path[-1])
目的:用同一目标函数对比阻尼牛顿法与梯度下降的收敛速度,展示二阶曲率信息带来的加速效果。
  1. def damped_newton(x0, max_iter=20, tol=1e-9):定义阻尼牛顿法主体,每次迭代先算牛顿方向,再做线搜索。
  2. direction = -g / h一元函数情形下,牛顿方向就是负梯度除以曲率;在多维问题中这里会变成求解线性方程组。
  3. alpha = armijo_line_search(x, direction)用 Armijo 回溯找到安全步长,防止牛顿步跨过谷底。
  4. while func(x + alpha * d) > fx + c * alpha * gx * d:Armijo 条件:实际下降量必须达到线性模型预测下降量的一定比例。
  5. gradient_descent(start, lr=0.16, ...)固定步长梯度下降作为对照,可以看到它需要更多步才能收敛。

常见误区

误区只要算出了 $-H^{-1}g$,这个方向就一定会让函数下降,所以可以直接放心使用。

正解只有当 Hessian 正定时,牛顿方向才保证是下降方向。如果地形是倒扣的碗,曲率为负,牛顿方向可能指向山脊甚至山顶。小齐发现山坡反向弯曲时,必须先用正则化或回退到梯度方向。

为何常见:大多数课本例子都假设函数为正定二次型,初学者因此误以为牛顿方向无条件下降。

误区牛顿法本身已经很快,线搜索和步长限制可有可无。

正解现实目标函数往往不是二次函数,未经阻尼的牛顿步可能大幅超出可信区域,导致迭代发散。Armijo 回溯和信赖域不是点缀,而是保证牛顿法在非局部场景下也能收敛的关键。

为何常见:二次终止性让人误以为“一步到底”是常态,忽略了这仅在二次函数上成立。

误区牛顿法收敛那么快,只要跑起来,找到的一定是最低山谷。

正解牛顿法本质上是一种局部优化方法。它从初始点出发,在附近找二次模型的极小点;非凸函数中有多个谷底时,牛顿法可能收敛到某个局部极小值,甚至不收敛。业界常配多起点或全局探索策略。

为何常见:小规模凸问题的教学案例太干净,掩盖了非凸与初值敏感性。

误区既然公式是 $x_{k+1}=x_k-H_k^{-1}g_k$,就需要显式计算 Hessian 的逆。

正解工程中几乎从不显式求逆。由于 Hessian 条件数大时逆矩阵数值误差巨大,实际应先求解线性方程组 $H_k d_k=-g_k$,再用 Cholesky 分解等数值稳定方法。

为何常见:公式里的 $H^{-1}$ 在数学上很美观,容易让人误以为求逆也是工程上的最优做法。

误区收敛阶更高就代表总时间更短,所以在任何问题上都应该用牛顿法。

正解牛顿法每步需要计算并存储 Hessian,求解线性方程组开销约 $O(n^3)$。高维大规模问题中,仅存储矩阵就不可行,梯度下降及其变体反而更实用。小规模光滑问题上,牛顿法才更有优势。

为何常见:对比实验往往只看迭代次数,忽略了单次迭代的计算成本。

面试题

Q1. 牛顿法相比梯度下降,额外使用了目标的什么信息?

单选题 · easy

  • A.一阶导数
  • B.二阶曲率← 正确答案
  • C.随机噪声
  • D.历史梯度

答案:B。牛顿法同时利用梯度 $g_k$ 和 Hessian 矩阵 $H_k$ 的二阶曲率信息构造步长。一阶导数只是坡度,不能告诉小齐弯道有多深;随机噪声与历史梯度都不是牛顿法的本质。

Q2. 对严格凸二次函数使用牛顿法,通常几步到达最优解?

单选题 · easy

  • A.无穷多步
  • B.线性逼近的若干步
  • C.恰好一步← 正确答案
  • D.完全无法保证

答案:C。二次函数的二阶泰勒展开就是它本身,所以牛顿法具有二次终止性,从任意初始点出发,一步到达最优解。这是小齐在完美碗形山谷中的“一步到底”体验。

Q3. 当 Hessian 矩阵不是正定时,牛顿方向可能出现什么情况?

单选题 · mid

  • A.方向一定是下降方向
  • B.方向可能指向上坡← 正确答案
  • C.步长自动变为正无穷
  • D.迭代直接终止于当前点

答案:B。只有 $H_k$ 正定时,$d=-H_k^{-1}g_k$ 才满足 $g_k^{\top}d<0$,即下降方向。若函数局部是倒扣的碗,曲率为负,牛顿方向可能引导小齐走向山脊,因此工程上常做正则化修正。

Q4. 阻尼牛顿法中,线搜索的主要作用是什么?

单选题 · mid

  • A.缩小步子保证下降← 正确答案
  • B.放大步子跳过山谷
  • C.完全忽略梯度信息
  • D.强制迭代指向无穷远

答案:A。阻尼牛顿法在牛顿方向上乘以步长 $\alpha_k$,通过 Armijo 条件保证目标函数充分下降。它相当于小齐先伸出探杖试脚下坡度,发现不妙就缩回半步,避免跨过谷底。

Q5. 信赖域方法中的半径 $\Delta_k$ 表示什么?

单选题 · mid

  • A.该半径内模型可信← 正确答案
  • B.该半径内必须拒绝
  • C.半径等于固定学习率
  • D.半径越大模型越精确

答案:A。信赖域半径代表二阶泰勒模型被认为可信的范围。算法只在该圆内寻找候选点,并根据实际下降量与预测下降量的比值动态调整半径,就像小齐只相信自己画出的安全圈。

Q6. 下列关于二次收敛的说法,哪些是正确的?

多选题 · mid

  • A.误差从 0.1 缩到 0.01 再缩到 0.0001← 正确答案
  • B.每步误差大约取平方← 正确答案
  • C.无需初始点即可全局收敛
  • D.收敛速度越来越快← 正确答案

答案:ABD。二次收敛意味着下一步误差不超过当前误差的常数倍平方,所以会出现 0.1 → 0.001 → 10⁻⁷ 的惊人加速,因此 A、B、D 正确。但这种性质通常只在局部邻域内成立,不能保证全局收敛。

Q7. Armijo 条件的主要作用包括哪些?

多选题 · hard

  • A.确保目标函数充分下降← 正确答案
  • B.避免步长过大跳过谷底← 正确答案
  • C.要求步长极大加速收敛
  • D.强制 Hessian 矩阵正定

答案:AB。Armijo 条件比较实际下降量与预测下降量,只有实际下降足够大才接受当前步长,因此它限制过大的步长,并保证目标函数充分下降。它与选大步长无关,也不修改 Hessian。

Q8. 在 Hessian 连续且最优点正定的条件下,牛顿法的收敛阶通常为多少?

单选题 · hard

  • A.线性收敛
  • B.二次收敛← 正确答案
  • C.不收敛
  • D.随机收敛

答案:B。在光滑函数的最优点附近,Hessian 正定且稳定,牛顿法满足 $\|x_{k+1}-x^*\|\le c\|x_k-x^*\|^2$,属于二次收敛。梯度下降通常只有线性收敛,因而牛顿法在大规模小问题上表现出明显加速。

Q9. 为什么大规模问题通常不使用纯牛顿法?

单选题 · mid

  • A.需要存储与求解 Hessian← 正确答案
  • B.只能用于一维函数
  • C.无法处理光滑函数
  • D.不需要初始点

答案:A。牛顿法需要构造 $n\times n$ 的 Hessian 矩阵并求解线性方程组,存储与计算开销约为 $O(n^2)$ 和 $O(n^3)$。当 $n$ 达到百万级别时,纯牛顿法几乎不可行,所以工程上常用拟牛顿或梯度类方法。

Q10. 为了使牛顿法在非凸问题上也能保持稳健,常用手段有哪些?

多选题 · extreme

  • A.信赖域限制步长模型可信← 正确答案
  • B.线搜索选择合适的步长← 正确答案
  • C.正则化修正非正定 Hessian← 正确答案
  • D.随机重启寻找全局最优点

答案:ABC。信赖域、线搜索和正则化都是从牛顿步本身入手,防止方向错误或步长过大。随机重启属于全局探索策略,不属于牛顿法框架内的常规稳健手段。