5.3 牛顿法
当梯度下降"慢慢悠悠"地接近最优解时,牛顿法利用二阶导数信息实现"一步到位"式的超快收敛。代价是每步需要计算 Hessian 矩阵,在大规模问题上计算开销较大。
一、牛顿法的基本思想
1.1 公式推导
对于无约束优化 ,牛顿法利用二阶导数(Hessian)信息,在迭代点附近做二次近似(泰勒展开到二阶):
对上述近似取极小值(令导数为零):
解得迭代公式:
推广到多维:
其中 是 Hessian 矩阵。
1.2 与梯度下降的对比
| 特性 | 梯度下降 | 牛顿法 |
|---|---|---|
| 导数阶数 | 一阶(只使用梯度) | 二阶(梯度 + Hessian) |
| 收敛速度 | 线性收敛 | 二次收敛 |
| 每步计算量 | (求 Hessian 逆) | |
| 步长选择 | 需要手动调 | 自动确定步长 |
| 对二次函数 | 线性逼近 | 一步精确收敛 |
| 适用场景 | 大规模问题(深度学习) | 小规模高精度问题 |
二次收敛的含义:误差以 的速度衰减——即误差每步平方,收敛极快。
二、手算实例
2.1 问题
用牛顿法求 的最小值。
解析解:, 确认是极小值。
2.2 牛顿法迭代
从 开始,,:
| 迭代 | 步长 | ||||
|---|---|---|---|---|---|
| 0 | 0 | ||||
| 1 | |||||
| 2 |
牛顿法一步收敛到精确解 ,因为二次函数的二次近似就是它自身。
2.3 对比梯度下降()
| 迭代 | 梯度下降 | 牛顿法 |
|---|---|---|
| 0 | 0.000 | 0.000 |
| 1 | -0.200 | -1.000 |
| 2 | -0.360 | -1.000 |
| 3 | -0.488 | -1.000 |
| 10 | -0.893 | -1.000 |
对于二次函数,牛顿法一步到位;梯度下降经过 10 步还在缓慢逼近。
三、多维牛顿法
3.1 通用迭代公式
对于 ,牛顿法为:
- — 梯度向量
- — Hessian 矩阵
3.2 优缺点
| 优点 | 缺点 |
|---|---|
| 收敛速度快(二次收敛) | Hessian 计算昂贵( 内存, 求逆) |
| 无需手动调学习率 | 对非凸函数可能收敛到鞍点 |
| 对精确度要求高的问题效果好 | Hessian 需正定保证下降方向 |
3.3 拟牛顿法(Quasi-Newton)
为解决 Hessian 计算问题,拟牛顿法(如 BFGS、L-BFGS)用梯度差近似 Hessian,在收敛速度和计算开销之间取得平衡:
- BFGS:维护完整的 Hessian 近似矩阵()
- L-BFGS:只存最近几步的梯度差,适合大规模问题()
scipy.optimize.minimize 的默认方法就是 BFGS/L-BFGS-B。
Quant Link:在风险管理中,风险预算优化(Risk Budgeting)常用牛顿法求解。给定各资产的目标风险贡献比例 ,需要求解非线性方程组:
这是一个非线性方程组,牛顿法利用其 二阶收敛性 在几步内精确求解权重。对于包含数百只资产的大规模组合,L-BFGS 等拟牛顿法可以在秒级完成计算——这是梯度下降无法比拟的优势。
其他牛顿法的量化应用还包括:
- IRR 计算:内部收益率是方程 的根,牛顿法快速求解
- 隐含波动率:用期权价格反推波动率,牛顿法比二分法快得多
- 久期-凸度校正:债券定价中二阶项类似牛顿法的思想