最优化方法与理论系统学习笔记
本系列所有文章来自东北大学张京老师的最优化方法与理论课程学习笔记,系列如下:
线性规划 (一) 线性规划的基本形式及各种概念
线性规划 (二) 单纯形法
无约束最优化(一) 最速下降法、Newton法、修正Newton法
无约束最优化(二) 共轭方向法与共轭梯度法
无约束最优化(三) 拟Newton法
无约束最优化(四) 步长加速法
无约束最优化(五) 最小二乘法问题的解法
约束最优化方法 (一) 最优性条件
约束最优化方法 (二) Zoutendijk容许方向法
约束最优化方法 (三) 外部罚函数法
约束最优化方法 (四) 乘子法
Newton法的优缺点都很突出。优点:高收敛速度(二阶收敛);缺点:对初始点、目标函数要求高,计算量、存储量大(需要计算、存储Hesse矩阵及其逆)。拟Newton法是模拟Newton法给出的一个保优去劣的算法。
拟Newton法是效果很好的一大类方法。它当中的DFP算法和BFGS算法是直到目前为止在不用Hesse矩阵的方法中的最好方法。
基本思想
考虑Newton迭代公式
x
k
+
1
=
x
k
−
G
k
−
1
g
k
,
k
=
0
,
1
,
⋅
⋅
⋅
x_{k+1}=x_{k}-G_{k}^{-1} g_{k} , \ \ k=0,1, ···
xk+1=xk−Gk−1gk, k=0,1,⋅⋅⋅
这里搜索方向为
p
k
=
−
G
k
−
1
g
k
p_{k}=-G_{k}^{-1}g_{k}
pk=−Gk−1gk,步长因子为1。
我们从以下两点考虑对Newton迭代公式的改进:
(1) 为避免求逆矩阵,设想用某种近似矩阵
H
k
=
H
(
x
k
)
H_{k}=H(x_{k})
Hk=H(xk)替换
−
G
k
−
1
-G_{k}^{-1}
−Gk−1,上式则变为
x
k
+
1
=
x
k
−
H
k
g
k
,
k
=
0
,
1
,
⋅
⋅
⋅
x_{k+1}=x_{k}-H_{k} g_{k} , \ \ k=0,1, ···
xk+1=xk−Hkgk, k=0,1,⋅⋅⋅
这时搜索方向为
p
k
=
−
H
k
g
k
p_{k}=-H_{k}g_{k}
pk=−Hkgk,步长因子仍为1。
(2) 为了取得更大的灵活性,考虑更一般的公式
x
k
+
1
=
x
k
−
t
k
H
k
g
k
,
k
=
0
,
1
,
⋅
⋅
⋅
x_{k+1}=x_{k}-t_{k}H_{k} g_{k} , \ \ k=0,1, ···
xk+1=xk−tkHkgk, k=0,1,⋅⋅⋅
这时搜索方向仍为
p
k
=
−
H
k
g
k
p_{k}=-H_{k}g_{k}
pk=−Hkgk,但步长因子取为最优步长因子。上式是代表面很广的一类迭代公式。例如,当
H
k
=
E
H_{k}=E
Hk=E时,它是最速下降法公式。当
H
k
=
G
k
−
1
H_{k}=G_{k}^{-1}
Hk=Gk−1时,它是阻尼Newton法公式。
这样的 H k H_{k} Hk存在吗?又如何来求呢?假如存在,那么为使 H k H_{k} Hk确实近似 G k − 1 G_{k}^{-1} Gk−1并易于计算,我们要对 H k H_{k} Hk人为地附加某些条件。主要是三点:
第一,为保证搜索方向
p
k
=
−
H
k
g
k
p_{k}=-H_{k}g_{k}
pk=−Hkgk是下降方向,如果
∇
f
(
x
0
)
T
p
<
0
\nabla f(x_{0})^{T}p < 0
∇f(x0)Tp<0,则
p
p
p方向是函数
f
(
x
)
f(x)
f(x)在点
x
0
x_{0}
x0处的下降方向得到:
p
k
T
g
k
<
0
⇒
−
g
k
T
H
k
g
k
<
0
⇒
g
k
T
H
k
g
k
>
0
p_{k}^{T} g_{k}<0 \Rightarrow-g_{k}^{T} H_{k} g_{k}<0 \Rightarrow g_{k}^{T} H_{k} g_{k}>0
pkTgk<0⇒−gkTHkgk<0⇒gkTHkgk>0
要求每一个
H
k
H_{k}
Hk都是对称正定矩阵,可以保证该式成立。
第二,为易于计算,要求
H
k
H_{k}
Hk到
H
k
+
1
H_{k+1}
Hk+1之间具有简单的迭代形式。最简单的迭代关系为
H
k
+
1
=
H
k
+
E
k
H_{k+1}=H_{k}+E_{k}
Hk+1=Hk+Ek
E
k
E_{k}
Ek称为校正矩阵,上式称为校正公式。
第三,为使 H k H_{k} Hk确实近似 G k − 1 G_{k}^{-1} Gk−1要求每一个 H k H_{k} Hk必须满足拟Newton条件。那所谓的拟Newton条件是啥呢?
我们假设目标函数
f
(
x
)
f(x)
f(x)具有连续的二阶偏导数,将
f
(
x
)
f(x)
f(x)在点
x
k
+
1
x_{k+1}
xk+1处作Taylor级数展开:
f
(
x
)
≈
f
(
x
k
+
1
)
+
∇
f
(
x
k
+
1
)
T
(
x
−
x
k
+
1
)
+
1
2
(
x
−
x
k
+
1
)
T
G
k
+
1
(
x
−
x
k
+
1
)
f(x) \approx f\left(x_{k+1}\right)+\nabla f\left(x_{k+1}\right)^{T}\left(x-x_{k+1}\right)+\frac{1}{2}\left(x-x_{k+1}\right)^{T} G_{k+1}\left(x-x_{k+1}\right)
f(x)≈f(xk+1)+∇f(xk+1)T(x−xk+1)+21(x−xk+1)TGk+1(x−xk+1)
对上式两端求梯度有:
∇
f
(
x
)
≈
g
k
+
1
+
G
k
+
1
(
x
−
x
k
+
1
)
\nabla f(x) \approx g_{k+1}+G_{k+1}\left(x-x_{k+1}\right)
∇f(x)≈gk+1+Gk+1(x−xk+1)
令
x
=
x
k
x=x_{k}
x=xk,则有:
g
k
≈
g
k
+
1
+
G
k
+
1
(
x
k
−
x
k
+
1
)
g_{k} \approx g_{k+1}+G_{k+1}\left(x_{k}-x_{k+1}\right)
gk≈gk+1+Gk+1(xk−xk+1)
所以,当
G
k
+
1
G_{k+1}
Gk+1正定时,有
x
k
+
1
−
x
k
≈
G
k
+
1
−
1
(
g
k
+
1
−
g
k
)
x_{k+1}-x_{k} \approx G_{k+1}^{-1}\left(g_{k+1}-g_{k}\right)
xk+1−xk≈Gk+1−1(gk+1−gk)
对于正定二次函数,上式近似将变为等式。
因此,如果迫使
H
k
+
1
H_{k+1}
Hk+1满足类似于上式的等式
x
k
+
1
−
x
k
=
H
k
+
1
(
g
k
+
1
−
g
k
)
x_{k+1}-x_{k} = H_{k+1} \left(g_{k+1}-g_{k}\right)
xk+1−xk=Hk+1(gk+1−gk)
那么
H
k
+
1
H_{k+1}
Hk+1就有可能很好地近似于
G
k
+
1
−
1
G_{k+1}^{-1}
Gk+1−1上式称为拟Newton条件或拟Newton方程。
记:
s
k
=
x
k
+
1
−
x
k
y
k
=
g
k
+
1
−
g
k
s_{k}=x_{k+1}-x_{k} \\ y_{k} = g_{k+1}-g_{k}
sk=xk+1−xkyk=gk+1−gk
那么拟Newton条件可简记为:
H
k
+
1
y
k
=
S
k
H_{k+1}y_{k}=S_{k}
Hk+1yk=Sk
带入迭代关系式
H
k
+
1
=
H
k
+
E
k
H_{k+1}=H_{k}+E_{k}
Hk+1=Hk+Ek有:
E
k
y
k
=
S
k
−
H
k
y
k
E_{k}y_{k} = S_{k} - H_{k}y_{k}
Ekyk=Sk−Hkyk
算法中的校正矩阵
E
k
E_{k}
Ek可由确定的公式来计算,不同的公式对应不同的拟Newton算法。满足条件的
E
k
E_{k}
Ek有无穷多个,因此上述的拟Newton算法是一簇算法。
DFP算法
DFP法是首先由Davidon(1959年)提出,后由Fletcher和Powell(1963年)改进的算法。它是无约束优化方法中最有效的方法之一。DFP法虽说比共轭梯度法有效,但它对直线搜索有很高的精度要求。
考虑如下校正公式
H
k
+
1
=
H
k
+
α
k
u
k
u
k
T
+
β
k
v
k
v
k
T
H_{k+1}=H_{k}+\alpha_{k}u_{k}u_{k}^{T}+\beta_{k}v_{k}v_{k}^{T}
Hk+1=Hk+αkukukT+βkvkvkT
其中
u
k
u_{k}
uk,
v
k
v_{k}
vk是待定列向量,
α
k
\alpha_{k}
αk,
β
k
\beta_{k}
βk是待定常数。校正矩阵
E
k
=
α
k
u
k
u
k
T
+
β
k
v
k
v
k
T
E_{k}=\alpha_{k}u_{k}u_{k}^{T}+\beta_{k}v_{k}v_{k}^{T}
Ek=αkukukT+βkvkvkT
根据拟Newton条件,有
α
k
u
k
u
k
T
y
k
+
β
k
v
k
v
k
T
y
k
=
s
k
−
H
k
y
k
\alpha_{k}u_{k}u_{k}^{T}y_{k}+\beta_{k}v_{k}v_{k}^{T}y_{k} = s_{k}-H_{k}y_{k}
αkukukTyk+βkvkvkTyk=sk−Hkyk
上式
u
k
u_{k}
uk和
v
k
v_{k}
vk有很多种取法
α k u k u k T y k = s k β k v k v k T y k = − H k y k \alpha_{k}u_{k}u_{k}^{T}y_{k} = s_{k} \\ \beta_{k}v_{k}v_{k}^{T}y_{k} = -H_{k}y_{k} αkukukTyk=skβkvkvkTyk=−Hkyk
如果取
u
k
=
s
k
u_{k}=s_{k}
uk=sk,
v
k
=
H
k
y
k
v_{k}=H_{k}y_{k}
vk=Hkyk那么有
α
k
=
1
s
k
T
y
k
,
β
k
=
−
1
y
k
T
H
k
y
k
\alpha_{k}=\frac{1}{s_{k}^{T}y_{k}}, \ \beta_{k}=-\frac{1}{y_{k}^{T}H_{k}y_{k}}
αk=skTyk1, βk=−ykTHkyk1
H k + 1 = H k + s k s k T s k T y k − H k y k y k T H k y k T H k y k H_{k+1}=H_{k}+\frac{s_{k}s_{k}^{T}}{s_{k}^{T}y_{k}}-\frac{H_{k}y_{k}y_{k}^{T}H_{k}}{y_{k}^{T}H_{k}y_{k}} Hk+1=Hk+skTykskskT−ykTHkykHkykykTHk
DFP算法的性质
定理1:在DFP算法中,若初始矩阵 H 0 H_{0} H0对称正定,则 H k H_{k} Hk中每一个都对称正定。
定理2:设将DFP算法施用于具有对称正定矩阵 Q Q Q的二次函数 f ( x ) = 1 2 x T Q x + b T x + c f(x)=\frac{1}{2} x^{T} Q x+b^{T} x+c f(x)=21xTQx+bTx+c,如果:
(i) 初始矩阵 H 0 H_{0} H0对称正定;
(ii) 迭代点互异,产生的搜索方向向量依次为
p
0
,
p
1
,
⋅
⋅
⋅
,
P
k
(
k
≤
n
−
1
)
p_{0},p_{1},···,P_{k} \ (k \leq n-1)
p0,p1,⋅⋅⋅,Pk (k≤n−1),则有
p
i
T
Q
p
j
=
0
,
i
,
j
=
0
,
1
,
⋅
⋅
⋅
,
k
(
i
≠
j
)
H
k
+
1
Q
p
j
=
p
j
,
j
=
0
,
1
,
⋅
⋅
⋅
,
k
.
p_{i}^{T}Q p_{j} = 0, \ i,j = 0,1,···,k(i \neq j) \\ H_{k+1}Qp_{j} = p_{j}, \ j=0,1,···,k.
piTQpj=0, i,j=0,1,⋅⋅⋅,k(i=j)Hk+1Qpj=pj, j=0,1,⋅⋅⋅,k.
定理3:若定理2的条件都满足,并且经过
n
n
n次迭代才求到极小点,则
H
n
=
Q
−
1
H_{n}=Q^{-1}
Hn=Q−1。
我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!