拟牛顿法

拟牛顿法

1、牛顿法

又称割线法,对 f(x+Δx)

f(x+Δx)=f(x)+f(x)Δx+12f(x)Δx2
Δx 求导,得:
f(x+Δx)=f(x)+f(x)Δx
f(x+Δx)=0
Δx=f(x)f(x)
将其转换成向量的形式,得:
x¯x¯0=f(x)B(x)
其中 f(x) 为雅克比向量 (Jacobian) B(x) 为黑塞矩阵 (Hessian)
f(x)=f(x)x1f(x)x2f(x)xn
B(x)=2f(x)2x12f(x)x2x12f(x)xnx12f(x)x1x22f(x)2x22f(x)xnx22f(x)x1xn2f(x)x2xn2f(x)2xn
而梯度下降的方向为
Δx=f(x)
牛顿法在梯度下降的基础上对二阶偏导数也加以利用,所以迭代的次数远小于梯度下降。 此时, f(x) 代表了下降的方向,还需确定步长 α ,步长 α 的确定使用 Wolfe conditions 来选择, Wolfe conditions 如下:
f(x+αkpk)f(xk)+c1αkpTkf(xk)
pTkαf(xk+αkpk)c2pTkf(xk)

其中 pk 表示梯度的方向,在牛顿法中就是 f(x)H(x) c1 的取值一般为 104 c2 的取值一般为 0.9

2、拟牛顿法

这里只介绍BFGS。
拟牛顿法的核心就是使用一个正定矩阵去拟合黑塞矩阵。BFGS直接使用正定矩阵去拟合黑塞矩阵的逆。
使用 Hk 表示第 k 次迭代的黑塞矩阵的逆, yk=f(xk+1)f(xk) H 的更新公式为:

Hk+1=(IΔxkyTkyTkΔxk)Hk(IykΔxTkyTkΔxk)+ΔxkΔxTkyTkΔxk

关于上式的推导:

Bk+1=Hk+Pk+Qk

Bk+1Δxk=BkΔxk+PkΔxk+QkΔxk

使 Pk Qk 满足 PkΔxk=yk QkΔxk=BkΔxk ,可以得到适合条件的 Pk Qk
Bk+1=Bk+ykyTkyTkΔxBkΔxkΔxTkBkΔxTkBkΔxk

同时,也可以证明如果初始矩阵 B0 是正定的,则之后的迭代都为正定的。再通过 Sherman–Morrison formula,可得上式。

你可能感兴趣的:(拟牛顿法-机器学习,机器学习算法)