Newton 法快,却要计算和分解 Hessian。拟 Newton 法只用相邻点的梯度变化,逐步学习一个曲率矩阵。
割线方程
记
sk=xk+1−xk,yk=gk+1−gk.
若 Hessian 在这一步附近近似不变,Taylor 展开给
yk≈∇2f(xk+1)sk.
若 Bk+1 近似 Hessian,应满足
Bk+1sk=yk.
若 Hk+1 近似逆 Hessian,则割线条件为
Hk+1yk=sk.
一个向量方程不足以唯一确定矩阵,所以还要要求对称、尽量接近旧矩阵,并保持正定。
DFP 更新
DFP 直接更新逆 Hessian 近似:
Hk+1=Hk+skTykskskT−ykTHkykHkykykTHk.
把 yk 乘进去:第二项给 sk,第三项抵消 Hkyk,所以确实满足 Hk+1yk=sk。
搜索方向为
dk=−Hkgk,
再配合一维搜索计算 xk+1。
正定性
若 Hk≻0 且
skTyk>0,
则 DFP 更新保持正定,因而 dk 是下降方向:
gkTdk=−gkTHkgk<0.
对强凸函数,满足 Wolfe 曲率条件的线搜索可保证 skTyk>0。若这个内积过小或为负,直接更新会数值不稳,应跳过或阻尼修正。
与 BFGS 的关系
课程重点是 DFP,但应知道 BFGS 是更常用的兄弟方法。DFP 更新逆 Hessian;BFGS 可视为在对偶意义下更新 Hessian,其数值鲁棒性通常更好。两者在正定二次函数配合精确搜索时会产生共轭方向。
一个一维直觉
一维时 H 只是一个数,割线条件直接给
Hk+1=yksk,
即用“位置变化 / 梯度变化”估计逆曲率。多维 DFP 正是在保持对称正定的前提下推广这个想法。
算法步骤
- 给定 x0 和 H0=I;
- dk=−Hkgk;
- 一维搜索得 αk,更新 xk+1;
- 计算 sk,yk,检查 skTyk;
- 用 DFP 公式更新,直到梯度足够小。
考试要点
- sk 是点差,yk 是梯度差,别写反。
- 会验证 DFP 满足割线条件。
- 正定保持的关键是 skTyk>0。
- 拟 Newton 避免显式 Hessian,但仍需要梯度;它不是“无导数直接法”。