Appearance
对应
note_8_quasinewton.pdf。这一章回答一个实际问题:Newton 法快,但 Hessian 太贵;能不能只用梯度差来“学”一个 Hessian 或逆 Hessian?答案就是 quasi-Newton,核心是 secant equation、Wolfe line search、DFP/BFGS/L-BFGS。
0. 一句话理解这一章
拟牛顿法 = 用最近两次迭代的位移
和梯度变化 拟合曲率,逐步构造 或 ,从而用接近 Newton 的方向但避免显式 Hessian。
1. 知识地图
Newton 法瓶颈
Hessian 计算/存储/分解太贵
│
▼
Quasi-Newton
d_k = -B_k^{-1}∇f(x_k) 或 d_k=-H_k∇f(x_k)
│
▼
Secant equation
s_k=x_{k+1}-x_k
y_k=∇f(x_{k+1})-∇f(x_k)
B_{k+1}s_k=y_k 或 H_{k+1}y_k=s_k
│
▼
Curvature condition
s_k^T y_k>0
Wolfe line search 保证它成立
│
▼
更新公式
DFP / BFGS / L-BFGS
│
▼
相关方法
BB 步长 / Gauss-Newton / Levenberg-Marquardt2. Secant equation:拟牛顿的核心
定义
若
因此希望新的 Hessian 近似满足
如果直接近似逆 Hessian,则写成
这两条就是 secant equation。
曲率条件
为了让
对强凸函数,这个量天然倾向于为正;对一般目标函数,要靠 Wolfe line search 保证。
3. 为什么用 Wolfe 而不是只用 Armijo
拟牛顿方向
第一条是 Armijo sufficient decrease;第二条是 curvature condition。
由第二条可得
因为
4. DFP 与 BFGS 更新
4.1 DFP
DFP 从 Hessian 近似
其逆 Hessian 形式常写为
4.2 BFGS
BFGS 更常用。逆 Hessian 近似的更新为
对应的 Hessian 近似更新:
要记住的性质:
- 若
且 ,则 ; - 方向
是下降方向; - 配 Wolfe 条件有全局收敛结果;
- 在适当条件下 BFGS 可超线性收敛。
5. BFGS 实现建议
讲义给出的实际设置:
| 项 | 常用选择 |
|---|---|
| 初始步长 | 先试 |
| Wolfe 参数 | |
| 初始逆 Hessian 近似 | 可用 |
| 终止 |
注意:BFGS 每步要存一个 dense
6. 收敛性结论
6.1 Zoutendijk 定理
若方向满足 Wolfe 条件、
其中
直观解释:
- 若方向没有越来越接近“正交于负梯度”,则梯度必须趋于 0;
- BFGS 的证明核心之一就是排除方向长期变坏。
6.2 BFGS 全局收敛
在强凸、Hessian 有上下界等标准假设下,BFGS 生成的序列收敛到唯一最优解。
讲义的证明用到了矩阵函数
通过控制
6.3 超线性收敛
若
这就是 BFGS 在实践中很快的理论来源。
7. L-BFGS
BFGS 存 dense
这样每步计算
其中
Two-loop recursion
核心思想:不用显式形成
记忆版流程:
。 - 从新到旧扫一遍,计算
,并令 。 - 乘初始矩阵
。 - 从旧到新扫一遍,计算
,并令 。 - 方向
。
考试/作业重点通常不是手写完整代码,而是知道为什么 L-BFGS 不存
8. Barzilai-Borwein (BB) 梯度法
BB 方法仍是梯度法:
但步长
两种常见 BB 步长:
直观:用
注意:
- BB 常常比固定步长 GD 快很多;
- 它通常不是单调下降;
- 实践中常把步长截断到
,再配 nonmonotone line search。
9. Gauss-Newton 与 Levenberg-Marquardt
考虑非线性最小二乘:
Gauss-Newton 每步解线性化后的最小二乘:
对应方向:
前提是
与 Newton 的关系:
Gauss-Newton 丢掉第二项。若残差
若
10. 作业题型对照
| 作业 | 题面 | 考点 |
|---|---|---|
| A8.2 | 预条件梯度法 | |
| hw9.5 | logistic regression 编程 | 可以把 damped Newton / Newton-CG 与 BFGS/L-BFGS 思路对比:精确二阶 vs 近似二阶 |
| hw10.1 | BFGS 的 | 证明对称、secant equation |
| hw10.2 | 证明下降方向;由 Wolfe 推 | |
| hw10.3 | 手算 L-BFGS two-loop recursion | 按“先从新到旧,再从旧到新”的两轮递推算 |
| hw10.4 | Barzilai-Borwein 两个步长 | 从 |
| hw10.5 | logistic regression 上实现 BFGS + strong Wolfe | 写 |
11. 解题招式
招式 1:先写
任何拟牛顿题先写:
再写 secant equation:
招式 2:正定性只看曲率条件
若题目问 BFGS 更新是否保持正定,回答结构:
- 假设
; - Wolfe 保证
; - BFGS 更新由两个 PSD 项组成并满足 secant equation;
- 因此
。
招式 3:比较复杂度
| 方法 | 每步主要代价 | 存储 | 典型使用 |
|---|---|---|---|
| Newton | Hessian + 解线性系统,dense 可到 | 中小规模、高精度 | |
| BFGS | 矩阵向量乘/更新 | 中等规模 | |
| L-BFGS | 大规模 smooth 问题 | ||
| BB | 轻量加速 GD | ||
| Gauss-Newton | 解 | 取决于 | 非线性最小二乘 |
12. 自检清单
- [ ]
的定义能马上写出来吗? - [ ] Secant equation 是
还是 ?能区分 和 吗? - [ ] 为什么需要
? - [ ] Wolfe 条件第二条如何推出
? - [ ] BFGS 的
-更新公式能认出来吗? - [ ] L-BFGS 为什么只需要
?若存 对 ,总共是多少个实数? - [ ] BB 两个步长公式能写出一个吗?
- [ ] BB 步长在强凸二次上为什么落在
? - [ ] Gauss-Newton 与 Newton 的 Hessian 差在哪一项?
13. 常见陷阱
- 把
和 搞反: , 。 - 只用 Armijo 不够:Armijo 保证下降,但不保证
,拟牛顿更需要 Wolfe。 - BFGS 不是“无条件正定”:必须有
和 。 - L-BFGS 不是低秩 Hessian:它是不显式形成
,只保存有限历史对。 - BB 不是线搜索得到的最优步长:它是 secant equation 的标量近似,可能非单调。
- Gauss-Newton 不是通用 Newton 替代品:它专门利用最小二乘结构,残差小的时候尤其有效。
14. 接下来怎么学
本章学完后,你应该能从“精确二阶”过渡到“近似二阶”。下一章 9_次梯度与次梯度法 会切换到不可微凸优化:没有梯度、没有 Hessian 时,如何仍然写最优性条件并设计算法。