主
要
摘
自
《
非
线
性
优
化
》
\color{#F00}{主要摘自《非线性优化》}
主要摘自《非线性优化》
\qquad
最优化问题一般使用约束集
X
X
X和目标函数
f
f
f进行表示。集合
X
X
X中包含所有可用的决策
x
x
x,函数
f
(
x
)
f(x)
f(x)将
X
X
X的元素映射到实数集上,表示决策
x
x
x带来的成本损失。目标是寻找
x
∗
∈
X
x^{*}\in X
x∗∈X,并满足
f
(
x
∗
)
≥
f
(
x
)
,
∀
∈
X
f(x^{*})\ge f(x),\ \forall\in X
f(x∗)≥f(x), ∀∈X
\qquad
假定
x
x
x是一个
n
n
n维向量,即
x
x
x是一个由实数构成的
n
n
n元数组(
x
1
,
.
.
.
,
x
n
x_{1},...,x_{n}
x1,...,xn),因此约束集
X
X
X是
n
n
n维欧式空间
ℜ
n
\Re^{n}
ℜn的子集。
必要和充分条件
\qquad
最优性必要条件 令
x
∗
x^{*}
x∗为
f
:
ℜ
n
↦
ℜ
f:\Re^{n}\mapsto\Re
f:ℜn↦ℜ的无约束局部最小值点,并且假设
f
f
f在开集
S
S
S上连续可微,
x
∗
∈
S
x^{*}\in S
x∗∈S,那么有
∇
f
(
x
∗
)
=
0
(
一
阶
必
要
条
件
)
\nabla f(x^{*})=0\qquad(一阶必要条件)
∇f(x∗)=0(一阶必要条件)
如果
f
f
f在
S
S
S中是二阶连续可微的,那么有
∇
2
f
(
x
∗
)
:
半
正
定
.
(
二
阶
必
要
条
件
)
\nabla^{2}f(x^{*}):\ 半正定.\qquad(二阶必要条件)
∇2f(x∗): 半正定.(二阶必要条件)
\qquad
二阶最优性充分条件 令
f
:
X
↦
ℜ
f:X\mapsto\Re
f:X↦ℜ为开集
X
X
X上的一个二阶可微函数,假设向量
x
∗
∈
S
x^{*}\in S
x∗∈S满足条件
∇
f
(
x
∗
)
=
0
,
∇
2
f
(
x
∗
)
:
正
定
\nabla f(x^{*})=0,\ \nabla^{2}f(x^{*}):正定
∇f(x∗)=0, ∇2f(x∗):正定那么
x
∗
x^{*}
x∗是
f
f
f上的严格无约束局部极小值点。特别的,存在标量
γ
>
0
\gamma>0
γ>0和
ϵ
>
0
\epsilon>0
ϵ>0满足
f
(
x
)
≥
f
(
x
∗
)
+
γ
2
∣
∣
x
−
x
∗
∣
∣
2
,
∀
x
使
得
∣
∣
x
−
x
∗
∣
∣
<
ϵ
f(x)\ge f(x^{*})+\frac{\gamma}{2}||x-x^{*}||^{2},\qquad\forall\ x\ 使得||x-x^{*}||<\epsilon
f(x)≥f(x∗)+2γ∣∣x−x∗∣∣2,∀ x 使得∣∣x−x∗∣∣<ϵ
迭代下降
方向选择( d k d^{k} dk)
\qquad
针对连续可微函数
f
:
ℜ
n
↦
ℜ
f:\Re^{n}\mapsto\Re
f:ℜn↦ℜ的无约束最小化问题,大多数算法基于迭代下降的算法。该方法步骤为:从某点
x
0
x^{0}
x0(初始点)开始,接连不断生成向量
x
1
,
x
2
,
.
.
.
x^{1},x^{2},...
x1,x2,...,使得
f
f
f在每次迭代中都下降。即
f
(
x
k
+
1
)
≤
f
(
x
k
)
,
k
=
0
,
1
,
.
.
.
,
f(x^{k+1})\leq f(x^{k}),\qquad k=0,1,...,
f(xk+1)≤f(xk),k=0,1,...,不断降低
f
f
f的值直到达到最小值点。
\qquad
考虑向量构成的半直线
x
α
=
x
+
α
d
,
∀
α
≥
0
x_{\alpha}=x+\alpha d,\qquad\forall\alpha\ge0
xα=x+αd,∀α≥0其中方向向量
d
∈
ℜ
n
d\in\Re^{n}
d∈ℜn与
∇
f
(
x
)
\nabla f(x)
∇f(x)呈大于
9
0
∘
90^{\circ}
90∘的角,即
∇
f
(
x
)
′
d
<
0
\nabla f(x)^{'}d<0
∇f(x)′d<0
\qquad
再次利用泰勒展开,有
f
(
x
α
)
=
f
(
x
)
+
α
∇
f
(
x
)
′
d
+
O
(
α
)
f(x_{\alpha})=f(x)+\alpha\nabla f(x)^{'}d+O(\alpha)
f(xα)=f(x)+α∇f(x)′d+O(α)
\qquad
当
α
\alpha
α接近于零时,
α
∇
f
(
x
)
′
d
\alpha\nabla f(x)^{'}d
α∇f(x)′d的值远大于
o
(
α
)
o(\alpha)
o(α),对于充分小的正数
α
\alpha
α,
f
(
x
+
α
d
)
f(x+\alpha d)
f(x+αd)都比
f
(
x
)
f(x)
f(x)小,考虑迭代
x
k
+
1
=
x
k
+
α
k
d
k
,
k
=
0
,
1
,
.
.
.
x^{k+1}=x^{k}+\alpha^{k}d^{k},\qquad k=0,1,...
xk+1=xk+αkdk,k=0,1,...
\qquad
选择下降方向:梯度方法一般可以定义为
x
k
+
1
=
x
k
−
α
k
D
k
∇
f
(
x
k
)
x^{k+1}=x^{k}-\alpha^{k}D^{k}\nabla f(x^{k})
xk+1=xk−αkDk∇f(xk)其中,
D
k
D^{k}
Dk是正定对称矩阵,因为
d
k
=
−
D
k
∇
f
(
x
k
)
d^{k}=-D^{k}\nabla f(x^{k})
dk=−Dk∇f(xk),下降条件为
∇
f
(
x
)
′
d
k
<
0
\nabla f(x)^{'}d^{k}<0
∇f(x)′dk<0即为
∇
f
(
x
k
)
′
D
k
∇
f
(
x
k
)
>
0
\nabla f(x^{k})^{'}D^{k}\nabla f(x^{k})>0
∇f(xk)′Dk∇f(xk)>0,因而矩阵
D
k
D^{k}
Dk是正定的。
\qquad
最速下降法中
D
k
=
I
,
k
=
0
,
1
,
.
.
.
D^{k}=I,\ k=0,1,...
Dk=I, k=0,1,...。这时最简单的梯度下降法,但该方法的收敛速度较慢。
\qquad
牛顿法中
D
k
=
(
∇
2
f
(
x
k
)
)
−
1
D^{k}=(\nabla^{2}f(x^{k}))^{-1}
Dk=(∇2f(xk))−1,其中
∇
2
f
(
x
k
)
\nabla^{2}f(x^{k})
∇2f(xk)为正定对称矩阵。其思想为在每次迭代中,在当前解
x
k
x^{k}
xk附近最小化
f
f
f的二阶近似,即:
f
(
x
k
+
1
)
=
f
(
x
k
)
+
∇
f
(
x
k
)
′
(
x
k
+
1
−
x
k
)
+
1
2
(
x
k
+
1
−
x
k
)
′
∇
2
f
(
x
k
)
(
x
k
+
1
−
x
k
)
f(x^{k+1})=f(x^{k})+\nabla f(x^{k})^{'}(x^{k+1}-x^{k})+\frac{1}{2}(x^{k+1}-x^{k})^{'}\nabla^{2}f(x^{k})(x^{k+1}-x^{k})
f(xk+1)=f(xk)+∇f(xk)′(xk+1−xk)+21(xk+1−xk)′∇2f(xk)(xk+1−xk)令
f
(
x
k
+
1
)
f(x^{k+1})
f(xk+1)的导数(
∂
f
(
x
k
+
1
)
/
∂
x
k
+
1
\partial f(x^{k+1})/\partial x^{k+1}
∂f(xk+1)/∂xk+1)为0,因而有
∇
f
(
x
k
)
+
∇
2
f
(
x
k
)
(
x
k
+
1
−
x
k
)
=
0
\nabla f(x^{k})+\nabla^{2}f(x^{k})(x^{k+1}-x^{k})=0
∇f(xk)+∇2f(xk)(xk+1−xk)=0因而
x
k
+
1
=
x
k
−
(
∇
2
f
(
x
k
)
)
−
1
∇
f
(
x
k
)
x^{k+1}=x^{k}-(\nabla^{2}f(x^{k}))^{-1}\nabla f(x^{k})
xk+1=xk−(∇2f(xk))−1∇f(xk)
\qquad
牛顿法收敛速度快,但其计算量较大。
\qquad
修正的牛顿方法
D
k
=
(
∇
2
f
(
x
0
)
)
−
1
,
k
=
0
,
1
,
.
.
.
,
D^{k}=(\nabla^{2}f(x^{0}))^{-1},\qquad k=0,1,...,
Dk=(∇2f(x0))−1,k=0,1,...,其中
∇
2
f
(
x
0
)
\nabla^{2}f(x^{0})
∇2f(x0)是给定的,方法与牛顿法类似,但Hessian矩阵不需要在每次迭代中计算。
\qquad
离散牛顿法
D
k
=
(
H
(
x
k
)
)
−
1
,
k
=
0
,
1
,
.
.
.
,
D^{k}=(H(x^{k}))^{-1},\qquad k=0,1,...,
Dk=(H(xk))−1,k=0,1,...,其中
H
(
x
k
)
H(x^{k})
H(xk)是Hessian矩阵的正定对称近似矩阵,通过f的二阶导数的有限差分近似得到的。
\qquad
高斯-牛顿方法
该问题表示为:
m
i
n
i
m
i
z
e
f
(
x
)
=
1
2
∣
∣
g
(
x
)
∣
∣
2
=
1
2
∑
i
=
1
m
(
g
i
(
x
)
)
2
s
u
b
j
e
c
t
t
o
x
∈
ℜ
n
minimize\qquad f(x)=\frac{1}{2}||g(x)||^{2}=\frac{1}{2}\sum_{i=1}^{m}(g_{i}(x))^{2}\\ subject\ to\qquad x\in\Re^{n}
minimizef(x)=21∣∣g(x)∣∣2=21i=1∑m(gi(x))2subject tox∈ℜn
\qquad
使用泰勒展开
f
(
x
)
=
1
2
∣
∣
g
(
x
0
)
+
∇
g
(
x
0
)
(
x
−
x
0
)
T
∣
∣
2
f(x)=\frac{1}{2}||g(x_{0})+\nabla g(x_{0})(x-x_{0})^{T}||^{2}
f(x)=21∣∣g(x0)+∇g(x0)(x−x0)T∣∣2=
1
2
g
(
x
0
)
2
+
2
(
x
−
x
0
)
T
∇
g
(
x
0
)
g
(
x
0
)
+
(
x
−
x
0
)
∇
g
(
x
0
)
T
∇
g
(
x
0
)
(
x
−
x
0
)
T
\frac{1}{2}g(x_{0})^{2}+2(x-x_{0})^{T}\nabla g(x_{0})g(x_{0})+(x-x_{0})^{}\nabla g(x_{0})^{T}\nabla g(x_{0})(x-x_{0})^{T}
21g(x0)2+2(x−x0)T∇g(x0)g(x0)+(x−x0)∇g(x0)T∇g(x0)(x−x0)T
?
?
?
\color{#F00}{???}
???令
∂
f
(
x
)
∂
x
=
0
\frac{\partial f(x)}{\partial x}=0
∂x∂f(x)=0则
2
∇
g
(
x
0
)
g
(
x
0
)
+
2
(
x
−
x
0
)
∇
g
(
x
0
)
T
∇
g
(
x
0
)
=
0
2\nabla g(x_{0})g(x_{0})+2(x-x_{0})^{}\nabla g(x_{0})^{T}\nabla g(x_{0})=0
2∇g(x0)g(x0)+2(x−x0)∇g(x0)T∇g(x0)=0即
x
=
x
0
−
(
∇
g
(
x
0
)
T
∇
g
(
x
0
)
)
−
1
∇
g
(
x
0
)
g
(
x
0
)
x=x_{0}-(\nabla g(x_{0})^{T}\nabla g(x_{0}))^{-1}\nabla g(x_{0})g(x_{0})
x=x0−(∇g(x0)T∇g(x0))−1∇g(x0)g(x0)从而,
D
k
=
(
∇
g
(
x
0
)
T
∇
g
(
x
0
)
)
−
1
D^{k}=(\nabla g(x_{0})^{T}\nabla g(x_{0}))^{-1}
Dk=(∇g(x0)T∇g(x0))−1。
\qquad
坐标块下降法
\qquad
目标函数每次迭代沿着一个坐标分量最小化,不仅化简了搜索方向的计算,而且是步长选择变得更加容易,因为沿着分量方向的线性最小化相对容易求的。
x
i
k
+
1
∈
a
r
g
m
i
n
ξ
∈
ℜ
f
(
x
1
k
+
1
,
.
.
.
,
x
i
−
1
k
+
1
,
ξ
,
x
i
+
1
k
,
.
.
.
,
x
n
k
)
x_{i}^{k+1}\in arg\mathop{min}\limits_{\xi\in \Re}f(x_{1}^{k+1},...,x_{i-1}^{k+1},\xi,x_{i+1}^{k},...,x_{n}^{k})
xik+1∈argξ∈ℜminf(x1k+1,...,xi−1k+1,ξ,xi+1k,...,xnk)
\qquad
其一个重要优势是适合并行计算,假设存在分量
x
i
1
,
.
.
.
,
x
i
m
x_{i_{1}},...,x_{i_{m}}
xi1,...,xim的子集,分量子集与目标函数之间是非耦合的,即
f
(
x
)
f(x)
f(x)可以表示为
∑
r
=
1
m
f
i
r
(
x
)
\sum_{r=1}^{m}f_{i_{r}}(x)
∑r=1mfir(x),对于每一个r,
f
i
r
(
x
)
f_{i_{r}}(x)
fir(x)的取值与所有
s
≠
r
s\neq r
s̸=r的
x
i
s
x_{i_{s}}
xis无关,此时可以实现m个分量的下降迭代独立并行。对于能分割成p个独立分量子集的特殊问题,在p步内实现分量下降迭代的一个完整循环。
x
i
r
k
+
1
∈
a
r
g
m
i
n
ξ
f
i
r
(
x
k
+
ξ
e
i
r
)
,
r
=
1
,
.
.
.
,
m
.
x_{i_{r}}^{k+1}\in arg\mathop{min}\limits_{\xi}f_{i_{r}}(x^{k}+\xi e_{i_{r}}),\qquad r=1,...,m.
xirk+1∈argξminfir(xk+ξeir),r=1,...,m.
\qquad
共轭梯度下降
步长选择( α k \alpha^{k} αk)
\qquad
最小化准则 在此准则中,步长
α
k
\alpha^{k}
αk的选择使得目标函数沿着
d
k
d^{k}
dk方向实现最小化,即
α
k
\alpha^{k}
αk满足
f
(
x
k
+
α
k
d
k
)
=
m
i
n
α
≥
0
f
(
x
k
+
α
d
k
)
f(x^{k}+\alpha^{k}d^{k})=\mathop{min}\limits_{\alpha\ge0}f(x^{k}+\alpha d^{k})
f(xk+αkdk)=α≥0minf(xk+αdk)当
α
\alpha
α的取值在区间
[
0
,
s
]
[0,s]
[0,s]上进行选择同时使目标函数具有最大下降时,称为有限最小化准则。该准则需要使用一维线性搜索算法实现。
\qquad
步长逐渐减小的Armijo准则 在此准则中,可以避免线收索带来的计算量的问题。该方法为逐渐减小步长,首先选择初始步长
s
s
s,若
f
(
x
k
+
s
d
k
)
≥
f
(
x
k
)
f(x^{k}+sd^{k})\ge f(x^{k})
f(xk+sdk)≥f(xk),那么利用某个因子减少步长,直到
f
f
f值出现下降,实践中该方法常被用到,使用Armijo准则可以避免收敛性的困难。在该准则中固定标量
s
,
β
s,\beta
s,β和
σ
\sigma
σ,其中
0
<
β
<
1
0<\beta<1
0<β<1,令
α
k
=
β
m
k
s
\alpha^{k}=\beta^{m_{k}}s
αk=βmks,
f
(
x
k
)
−
f
(
x
k
+
β
m
s
d
k
)
≥
−
σ
β
m
s
∇
f
(
x
k
)
′
d
k
f(x^{k})-f(x^{k}+\beta^{m}sd^{k})\ge-\sigma\beta^{m}s\nabla f(x^{k}) ^{'}d^{k}
f(xk)−f(xk+βmsdk)≥−σβms∇f(xk)′dk
\qquad
不断试验步长
β
m
s
,
m
=
0
,
1
,
.
.
.
,
\beta^{m}s,m=0,1,...,
βms,m=0,1,...,直到m满足上述条件,
σ
\sigma
σ选择为接近零的正数,缩减因子
β
\beta
β通常在1/2和1/10之间选择。
\qquad
G
o
l
d
s
t
e
i
n
Goldstein
Goldstein准则 选定一个固定的标量
σ
∈
(
0
,
1
/
2
)
\sigma\in(0,1/2)
σ∈(0,1/2),选择
α
k
\alpha^{k}
αk满足
σ
≤
f
(
x
k
+
α
k
d
k
)
−
f
(
x
k
)
α
k
∇
f
(
x
k
)
′
d
k
≤
1
−
σ
\sigma\leq\frac{f(x^{k}+\alpha^{k}d^{k})-f(x^{k})}{\alpha^{k}\nabla f(x^{k})^{'}d^{k}}\leq1-\sigma
σ≤αk∇f(xk)′dkf(xk+αkdk)−f(xk)≤1−σ
\qquad
固定步长准则 采用一个固定的步长
s
>
0
s>0
s>0,即
α
k
=
s
,
k
=
0
,
1
,
.
.
.
,
\alpha^{k}=s,\qquad k=0,1,...,
αk=s,k=0,1,...,
\qquad
缩减步长准则 步长逐渐缩减到零,即
α
k
→
0
\alpha^{k}\rightarrow0
αk→0。