拟牛顿法的提出以及拟牛顿条件
虽然牛顿法具有最速下降法所无法匹敌的下降的速度,但是有着几个非常明显的缺陷:
1. 若Hessian矩阵不是正定矩阵,则会出现搜索方向可能不是函数的下降方向,使得函数不降反升。
2. 若函数不存在二阶连续导数,则无法使用牛顿法求解
3. 计算Hessian矩阵较为繁琐
在此基础上,人们提出了拟牛顿法,核心思想是构造矩阵
A
(
k
)
A^{(k)}
A(k),在每一步的迭代过程中都不断修改
A
(
k
)
A^{(k)}
A(k),最终使之逼近海森矩阵的逆矩阵。在此基础上,每次迭代的方向为
d
⃗
k
=
−
A
(
k
)
∇
f
(
x
k
)
\vec{d}_{k}=-A^{(k)}\nabla f(x_k)
dk=−A(k)∇f(xk)
当
A
(
k
)
=
E
A^{(k)}=E
A(k)=E时,迭代搜索的方向就是梯度下降法的方向;当
A
(
k
)
=
H
−
1
A^{(k)}=H^{-1}
A(k)=H−1时,迭代搜索方向就是牛顿法的方向
构造
A
(
k
)
A^{(k)}
A(k)时,应该具有如下性质:
- 正定性:函数下降方向为 − ∇ f ( x ) -\nabla f(x) −∇f(x),为使搜索方向也为下降方向,应有 − d ⃗ T ∇ f ( x ) = ∇ f ( x ) T A ( k ) ∇ f ( x ) > 0 -\vec{d}^T\nabla f(x)=\nabla f(x)^TA^{(k)}\nabla f(x)>0 −dT∇f(x)=∇f(x)TA(k)∇f(x)>0即 A ( k ) A^{(k)} A(k)具有正定性。
- 收敛于 H − 1 H^{-1} H−1或 H H H:为使得该方法具有牛顿法的下降速度,需使得 A ( k ) A^{(k)} A(k)收敛于 H H H或其逆矩阵
- 计算方便。
接下来分析如何构造
A
(
k
)
A^{(k)}
A(k):
将
f
(
x
)
f(x)
f(x)展开,有:
f
(
x
k
+
x
)
=
f
(
x
k
)
+
x
T
∇
f
(
x
k
)
+
1
2
x
T
H
x
f(x_k+x)=f(x_k)+x^T\nabla f(x_k)+\frac{1}{2}x^THx
f(xk+x)=f(xk)+xT∇f(xk)+21xTHx
那么在
x
k
+
1
x_{k+1}
xk+1处,其梯度满足:
∇
f
(
x
k
+
1
)
=
∇
f
(
x
k
)
+
H
k
(
Δ
x
k
)
\nabla f(x_{k+1})=\nabla f(x_{k})+H_{k}(\Delta x_k)
∇f(xk+1)=∇f(xk)+Hk(Δxk)
令
∇
f
(
x
k
+
1
)
=
g
(
x
k
+
1
)
,
∇
f
(
x
k
)
=
g
(
x
k
)
\nabla f(x_{k+1})=g(x_{k+1}), \nabla f(x_{k})=g(x_{k})
∇f(xk+1)=g(xk+1),∇f(xk)=g(xk),有:
Δ
g
k
=
H
k
Δ
x
k
Δ
x
k
=
H
k
−
1
Δ
g
k
\Delta g_k=H_k \Delta x_k \\ \Delta x_k=H_k^{-1} \Delta g_k
Δgk=HkΔxkΔxk=Hk−1Δgk
选用下面的式子做为逼近条件,即用
A
(
k
+
1
)
A^{(k+1)}
A(k+1)逼近
H
k
−
1
H^{-1}_k
Hk−1,得到
A
(
k
+
1
)
A^{(k+1)}
A(k+1)满足的条件:
Δ
x
k
=
A
(
k
+
1
)
Δ
g
k
\Delta x_k=A^{(k+1)} \Delta g_k
Δxk=A(k+1)Δgk
上式称为拟牛顿条件。
DFP法
令
A
(
k
+
1
)
=
A
(
k
)
+
E
(
k
)
A^{(k+1)}=A^{(k)}+E^{(k)}
A(k+1)=A(k)+E(k),即认为
A
(
k
+
1
)
A^{(k+1)}
A(k+1)是由上一个
E
(
k
)
E^{(k)}
E(k)加上修正矩阵
Δ
(
k
)
\Delta^{(k)}
Δ(k)得来,那么所求改为修正矩阵。带入拟牛顿条件有:
E
(
k
)
Δ
g
k
=
Δ
x
k
−
A
(
k
)
Δ
g
k
E^{(k)} \Delta g_k=\Delta x_k-A^{(k)} \Delta g_k
E(k)Δgk=Δxk−A(k)Δgk
由于需要
E
(
k
)
E^{(k)}
E(k)对称,故设
E
(
k
)
=
α
u
u
T
+
β
v
v
T
,
u
=
Δ
x
,
v
=
A
(
k
)
Δ
g
k
.
E^{(k)}=\alpha uu^T+\beta vv^T,u=\Delta x,v=A^{(k)} \Delta g_k.
E(k)=αuuT+βvvT,u=Δx,v=A(k)Δgk.
右乘
Δ
g
k
\Delta g_k
Δgk,有:
E
(
k
)
Δ
g
k
=
α
u
(
u
T
Δ
g
k
)
+
β
v
(
v
T
Δ
g
k
)
E^{(k)} \Delta g_k=\alpha u(u^T\Delta g_k)+\beta v(v^T\Delta g_k)
E(k)Δgk=αu(uTΔgk)+βv(vTΔgk)
结合拟牛顿条件,不难得到:
α
=
1
(
u
T
Δ
g
k
)
,
β
=
−
1
(
v
T
Δ
g
k
)
\alpha=\frac{1}{(u^T\Delta g_k)},\beta=-\frac{1}{(v^T\Delta g_k)}
α=(uTΔgk)1,β=−(vTΔgk)1
带入即得
E
(
k
)
E^{(k)}
E(k),进一步得
A
(
k
+
1
)
A^{(k+1)}
A(k+1):
A
(
k
+
1
)
=
A
(
k
)
+
Δ
x
Δ
x
T
(
Δ
x
T
Δ
g
k
)
−
A
(
k
)
Δ
g
k
Δ
g
k
T
A
(
k
)
T
(
Δ
g
k
T
A
(
k
)
Δ
g
k
)
A^{(k+1)}=A^{(k)}+\frac{\Delta x \Delta x^T}{(\Delta x^T\Delta g_k)}-\frac{A^{(k)} \Delta g_k \Delta g_k^TA^{(k)T} } {(\Delta g_k^TA^{(k)} \Delta g_k)}
A(k+1)=A(k)+(ΔxTΔgk)ΔxΔxT−(ΔgkTA(k)Δgk)A(k)ΔgkΔgkTA(k)T
若我们初始
A
0
A^0
A0取单位矩阵,其也满足对称以及正定性,而且迭代时第一步就是最速下降法。
BFGS法
若用
A
(
k
+
1
)
A^{(k+1)}
A(k+1)逼近
H
k
H_k
Hk,得到
A
(
k
+
1
)
A^{(k+1)}
A(k+1)满足的条件:
Δ
x
k
=
A
(
k
+
1
)
Δ
g
k
\Delta x_k=A^{(k+1)} \Delta g_k
Δxk=A(k+1)Δgk
仿照上面推导过程可以的到:
A
(
k
+
1
)
=
A
(
k
)
+
Δ
g
Δ
g
T
(
Δ
x
T
Δ
g
k
)
−
A
(
k
)
Δ
x
k
Δ
x
k
T
A
(
k
)
T
(
Δ
x
k
T
A
(
k
)
Δ
x
k
)
A^{(k+1)}=A^{(k)}+\frac{\Delta g \Delta g^T}{(\Delta x^T\Delta g_k)}-\frac{A^{(k)} \Delta x_k \Delta x_k^TA^{(k)T} } {(\Delta x_k^TA^{(k)} \Delta x_k)}
A(k+1)=A(k)+(ΔxTΔgk)ΔgΔgT−(ΔxkTA(k)Δxk)A(k)ΔxkΔxkTA(k)T
同理取
A
0
A^0
A0为单位矩阵,第一步为最速下降法。