为什么牛顿法不需要学习率但计算Hessian代价高:二阶信息
优化算法是机器学习的核心引擎。在众多算法中,梯度下降法和牛顿法是两种最基础、最典型的方法。理解它们的区别,是理解现代优化技术的钥匙。
-
问题:为什么梯度下降法需要手动调整学习率,而牛顿法不需要?为什么牛顿法往往收敛更快,却很少有人用?
-
核心答案:这完全取决于它们各自使用了多少“信息”。梯度下降法使用一阶信息(梯度),而牛顿法使用二阶信息(Hessian矩阵)。这个差别决定了它们在步长确定和计算代价上的天壤之别。
1. 理解步长:学习率 vs 自动确定
梯度下降法的核心思想是沿着最陡的下坡方向前进。但走多远?这个“多远”就是学习率。
- 步骤:计算当前点的梯度方向。梯度指示了函数值上升最快的方向,所以负梯度方向就是下降最快的方向。
- 步骤:选择一个学习率,比如
0.01。这个数字乘以负梯度,就得到本次更新的步长。 - 步骤:更新参数:
新参数 = 旧参数 - 学习率 * 梯度。 - 问题:学习率是个超参数。如果设得太大,可能跨过山谷,来回震荡甚至发散。如果设得太小,则学得极慢,需要很久才能到达底部。找到合适的学习率需要反复尝试。
牛顿法则完全不同。它不满足于只问“哪个方向下降最快”,它还要问“这个山谷的形状是怎样的”。
- 步骤:计算当前点的梯度(同样为了找到方向)。
- 步骤:计算当前点的Hessian矩阵。Hessian是梯度的“导数”,它描述了梯度本身的变化率,即曲面的“曲率”。
- 步骤:求解线性方程组:
Hessian * 方向 = -梯度。解出的这个“方向”已经天然地包含了步长信息。 - 步骤:更新参数:
新参数 = 旧参数 + 解出的方向。 - 关键区别:牛顿法的更新公式中没有学习率这个乘数。步长由Hessian矩阵的逆(或解方程组得到的方向)自动确定。在函数是二次或近似二次的区域,牛顿法可以一步就精确地跳到极值点。
2. 为什么Hessian能自动确定步长?
考虑一个简单的函数 $f(x) = x^2$。在点 $x=3$ 处,梯度是 $6$,Hessian是常数 $2$。
- 梯度下降法:更新步长为
- 学习率 * 6。如果学习率是0.1,则步长是0.6,新位置是2.4。需要多次迭代才能接近0。 - 牛顿法:它求解
H * d = -g,即2 * d = -6,解得d = -3。新位置是3 + (-3) = 0。一步到位。
这个例子揭示的原理是:Hessian矩阵提供了关于“曲面弯曲程度”的局部信息。在梯度大的地方,如果Hessian也大(说明曲面很陡),它就会“拉住”步长,防止你冲过头。在梯度小、Hessian也小的平坦区域,它会给出较大的步长,加速逃离。本质上,牛顿法是在用曲率自适应地缩放梯度。
3. 追溯Hessian的计算代价
尽管牛顿法在收敛速度上优势巨大,但它的代价同样惊人。这个代价来自三个方面。
-
计算复杂度:对于有 $n$ 个参数的问题,Hessian矩阵是一个 $n \times n$ 的矩阵。仅仅是将它显式地构建出来,就需要 $O(n^2)$ 的存储空间和 $O(n^2)$ 的计算量。当模型有百万、亿级参数时,这完全不可能。
-
求解线性方程组:牛顿法的核心步骤是求解
H * d = -g。在计算机上求解线性方程组的标准方法是矩阵分解,其计算复杂度是 $O(n^3)$。这意味着,如果参数数量翻倍,计算时间会变成原来的8倍。 -
二阶导数的获取:对于许多非平滑的损失函数,甚至无法计算其二阶导数。即使可微分,计算二阶导数也比一阶导数复杂得多。
-
对比:
- 梯度下降法:只需梯度,复杂度 $O(n)$。
- 牛顿法:需要构造Hessian并求解方程组,复杂度 $O(n^3)$。
$$ \text{牛顿法步长求解成本} = O(n^3) $$
这是一个巨大的鸿沟。对于1000个参数的问题,梯度下降法的一次迭代计算量是1000量级,而牛顿法是10亿量级。
4. 总结核心矛盾:二阶信息的馈赠
二阶信息,即Hessian矩阵,是优化领域的“核武器”。它带来两大馈赠:
- 自动步长:无需手动调节学习率,在二次近似区域能一步收敛。
- 快速收敛:在极值点附近,牛顿法通常只需少量(如5-10次)迭代就能达到高精度,而梯度下降法可能需要成千上万次。
但它的代价就是难以置信的计算和存储需求。这就像一个超级导航仪,能直接告诉你最优路径和精确速度,但每次导航都需要调用一颗超级计算机来计算。
因此,在现代深度学习的实践中,很少有人使用纯粹的牛顿法。取而代之的是拟牛顿法(如L-BFGS)和自适应学习率优化器(如Adam、RMSProp)。拟牛顿法通过只计算梯度的差来近似Hessian矩阵,从而在性能和代价之间取得平衡。而Adam等算法则通过一阶矩和二阶矩的指数移动平均,来模拟Hessian的对角线信息,实现了比纯梯度下降法更鲁棒的步长。它们本质上是“用工程技巧,去品尝二阶信息的一点点甜头”。

暂无评论,快来抢沙发吧!