无约束最优化问题的解法
我们希望得到
m i n x f ( x )
m
i
n
x
f
(
x
)
,我们把
f ( x )
f
(
x
)
泰勒展开可得
f ( x + Δ ) = f ( x ) + ∇ f ( x ) T Δ + 1 2 Δ T ∇ 2 f ( x ) Δ + O ( Δ 3 )
f
(
x
+
Δ
)
=
f
(
x
)
+
∇
f
(
x
)
T
Δ
+
1
2
Δ
T
∇
2
f
(
x
)
Δ
+
O
(
Δ
3
)
牛顿法
当
∇ 2 f ( x )
∇
2
f
(
x
)
已知时,对
f ( x + Δ )
f
(
x
+
Δ
)
求导,令倒数为0,可得
Δ = − [ ∇ 2 f ( x ) ] − 1 ∇ f ( x )
Δ
=
−
[
∇
2
f
(
x
)
]
−
1
∇
f
(
x
)
那么我们可以通过迭代公式
x t + 1 = x t − [ ∇ 2 f ( x ) ] − 1 ∇ f ( x )
x
t
+
1
=
x
t
−
[
∇
2
f
(
x
)
]
−
1
∇
f
(
x
)
求解最优化问题,有时我们加个小于1的阻尼系数来增加算法的稳定性(阻尼牛顿法):
x t + 1 = x t − η [ ∇ 2 f ( x ) ] − 1 ∇ f ( x )
x
t
+
1
=
x
t
−
η
[
∇
2
f
(
x
)
]
−
1
∇
f
(
x
)
牛顿法的缺点也很明显:
∇ 2 f ( x )
∇
2
f
(
x
)
不容易求
∇ 2 f ( x )
∇
2
f
(
x
)
的逆不容易求
∇ 2 f ( x )
∇
2
f
(
x
)
太占空间
拟牛顿法
由牛顿法可知,
x
x
每步的前进方向
Δ
Δ
满足
∇ f ( x ) = Δ ∇ 2 f ( x )
∇
f
(
x
)
=
Δ
∇
2
f
(
x
)
,且
∇ f ( x t + 1 ) ≈ ∇ f ( x t ) + ∇ 2 f ( x t ) [ x t + 1 − x t ]
∇
f
(
x
t
+
1
)
≈
∇
f
(
x
t
)
+
∇
2
f
(
x
t
)
[
x
t
+
1
−
x
t
]
。 替代变量
B t + 1 = ∇ 2 f ( x t ) , D t + 1 = [ ∇ 2 f ( x t ) ] − 1
B
t
+
1
=
∇
2
f
(
x
t
)
,
D
t
+
1
=
[
∇
2
f
(
x
t
)
]
−
1
,再令
s t = x t + 1 − x t , y t = ∇ f ( x t + 1 ) − ∇ f ( x t )
s
t
=
x
t
+
1
−
x
t
,
y
t
=
∇
f
(
x
t
+
1
)
−
∇
f
(
x
t
)
,那么有:
y t = B t + 1 s t
y
t
=
B
t
+
1
s
t
s t = D t + 1 y t
s
t
=
D
t
+
1
y
t
令
D t + 1 = D t + Δ D t = D t + P t + Q t
D
t
+
1
=
D
t
+
Δ
D
t
=
D
t
+
P
t
+
Q
t
,那么
D t + 1 y t = D t y t + P t y t + Q t y t
D
t
+
1
y
t
=
D
t
y
t
+
P
t
y
t
+
Q
t
y
t
令
P t y t = − D t y t , Q t y t = s t
P
t
y
t
=
−
D
t
y
t
,
Q
t
y
t
=
s
t
,我们有
P t = − D t y t y T t D T t y T t D T t y t , Q t = s t s T t s T t y t
P
t
=
−
D
t
y
t
y
t
T
D
t
T
y
t
T
D
t
T
y
t
,
Q
t
=
s
t
s
t
T
s
t
T
y
t
D t + 1 = D t − D t y t y T t D T t y T t D T t y t + s t s T t s T t y t
D
t
+
1
=
D
t
−
D
t
y
t
y
t
T
D
t
T
y
t
T
D
t
T
y
t
+
s
t
s
t
T
s
t
T
y
t
类似,由
s t = D t + 1 y t
s
t
=
D
t
+
1
y
t
可得
B t + 1 = B t − B t s t s T t B T t s T t B T t s t + y t y T t y T t s t
B
t
+
1
=
B
t
−
B
t
s
t
s
t
T
B
t
T
s
t
T
B
t
T
s
t
+
y
t
y
t
T
y
t
T
s
t
$
将
D t
D
t
和
B − 1 t
B
t
−
1
作为
H − 1 ( x t )
H
−
1
(
x
t
)
的近似替代,求解最优化问题,也可以将两者加权平均作为
H − 1 ( x t )
H
−
1
(
x
t
)
替代,也可以在
H − 1 g
H
−
1
g
的方向进行一维搜索,寻找最小值,加快收敛速度。
优选法+Steepest Descent(最速下降法)
优选法
黄金分割数
g = 5 √ − 1 2
g
=
5
−
1
2
有个很好的性质:
1 g = g 1 − g
1
g
=
g
1
−
g
寻找一个单峰函数的极值,可以利用这个性质尽可能少的测试。在区间
( a , b )
(
a
,
b
)
内取两点
x 1 , x 2
x
1
,
x
2
。显然:
当
f ( x 1 ) > f ( x 2 )
f
(
x
1
)
>
f
(
x
2
)
时,极大点在
( a , x 2 )
(
a
,
x
2
)
的范围内,区间
( x 2 , b )
(
x
2
,
b
)
舍去。
当
f ( x 1 ) < f ( x 2 )
f
(
x
1
)
<
f
(
x
2
)
时,极大点在
( x 1 , b )
(
x
1
,
b
)
的范围内,区间
( a , x 1 )
(
a
,
x
1
)
舍去。
当
f ( x 1 ) = f ( x 2 )
f
(
x
1
)
=
f
(
x
2
)
时,极大点在
( x 1 , x 2 )
(
x
1
,
x
2
)
的范围内,区间
( a , x 1 ) , ( x 2 , b )
(
a
,
x
1
)
,
(
x
2
,
b
)
舍去。
与此类比的是二分法,二分法一般用来求根(只需要与0比大小)
Steepest Descent
在梯度方向搜索最小值,迭代至收敛:
λ t = a r g m i n λ f ( x t − λ ∇ f ( x t ) )
λ
t
=
a
r
g
m
i
n
λ
f
(
x
t
−
λ
∇
f
(
x
t
)
)
x t + 1 = x t − λ t ∇ f ( x t )
x
t
+
1
=
x
t
−
λ
t
∇
f
(
x
t
)
显然一般情况下
∇ f ( x t ) ⊥ ∇ f ( x t + 1 )
∇
f
(
x
t
)
⊥
∇
f
(
x
t
+
1
)
缺点:只在局部范围内具有“最速”性质。对整体求解过程而言,它的下降非常缓慢。锯齿状的路线使得下降速度在最优点附近很慢。 优点:对于凸问题,最速下降法具有整体收敛性——对初始点没有特殊要求。
Conjugate gradient(共轭梯度下降法)
共轭梯度下降法是求解二次型形式的目标函数的算法,目标函数为:
m i n x [ 1 2 x T Q x − b T x ]
m
i
n
x
[
1
2
x
T
Q
x
−
b
T
x
]
Q
Q
为正定矩阵 定义:如果非零向量
x , y
x
,
y
满足
y T Q x = 0
y
T
Q
x
=
0
则称
x , y
x
,
y
为Q-conjugate 那么对于
x = ∑ i a i d i
x
=
∑
i
a
i
d
i
,
d i
d
i
是一组Q-conjugate的基底 那么显然有
m i n x [ 1 2 x T Q x − b T x ] = m i n a i [ 1 2 ( ∑ i a i d i ) T Q x − b T ( ∑ i a i d i ) ] = m i n a i [ ∑ i 1 2 ( a 2 i d T i Q d i ) T Q x − a i b T d i ]
m
i
n
x
[
1
2
x
T
Q
x
−
b
T
x
]
=
m
i
n
a
i
[
1
2
(
∑
i
a
i
d
i
)
T
Q
x
−
b
T
(
∑
i
a
i
d
i
)
]
=
m
i
n
a
i
[
∑
i
1
2
(
a
i
2
d
i
T
Q
d
i
)
T
Q
x
−
a
i
b
T
d
i
]
此时相当于对每个
a i
a
i
求函数的极值,可得
a i = b T d i d T i Q d i
a
i
=
b
T
d
i
d
i
T
Q
d
i
问题是如何找到这一组
d i
d
i
算法步骤:
初始化
x 0
x
0
,求
d 0 = ∇ f ( x 0 )
d
0
=
∇
f
(
x
0
)
,若
d 0 = 0
d
0
=
0
则
x 0
x
0
即为解。 迭代:
λ t = a r g m i n λ f ( x t + λ d t ) = − d T t ∇ f ( x t ) d T t Q d t
λ
t
=
a
r
g
m
i
n
λ
f
(
x
t
+
λ
d
t
)
=
−
d
t
T
∇
f
(
x
t
)
d
t
T
Q
d
t
x t + 1 = x t + λ t d t
x
t
+
1
=
x
t
+
λ
t
d
t
d t + 1 = − ∇ f ( x t + 1 ) + γ t d t , s . t . , d T t + 1 Q d t = 0. ⟹ γ t = d T t Q ∇ f ( x t + 1 ) d T t Q d t
d
t
+
1
=
−
∇
f
(
x
t
+
1
)
+
γ
t
d
t
,
s
.
t
.
,
d
t
+
1
T
Q
d
t
=
0.
⟹
γ
t
=
d
t
T
Q
∇
f
(
x
t
+
1
)
d
t
T
Q
d
t
至多经过n轮迭代找到最优值。与此类似的方法有坐标轮换法(univariate search technique),坐标上升法
性质证明
证明
d T t + 1 Q d i = 0 , i = 0 , 1 , 2 , . . . , t
d
t
+
1
T
Q
d
i
=
0
,
i
=
0
,
1
,
2
,
.
.
.
,
t
数学归纳法:假设
d 0 , d 1 , . . . , d t
d
0
,
d
1
,
.
.
.
,
d
t
是Q-conjugate的基底 由迭代步骤可知
f ( x i + λ i d i )
f
(
x
i
+
λ
i
d
i
)
是
f ( x i + λ d i )
f
(
x
i
+
λ
d
i
)
的极小值,那么
∂ f ( x i + λ d i ) λ | λ = λ i = 0
∂
f
(
x
i
+
λ
d
i
)
λ
|
λ
=
λ
i
=
0
,可得
d T i ∇ f ( x i + 1 ) = 0
d
i
T
∇
f
(
x
i
+
1
)
=
0
,继而
d T i ∇ f ( x t + 1 ) = d T i [ Q x t + 1 + b ] = d T i [ Q x i + ∑ k λ k Q d k + b ] = d T i ∇ f ( x i + 1 ) = 0
d
i
T
∇
f
(
x
t
+
1
)
=
d
i
T
[
Q
x
t
+
1
+
b
]
=
d
i
T
[
Q
x
i
+
∑
k
λ
k
Q
d
k
+
b
]
=
d
i
T
∇
f
(
x
i
+
1
)
=
0
λ i d i Q ∇ f ( x t + 1 ) = ( x T t + 1 − x T t ) Q ∇ f ( x t + 1 ) = [ ∇ f ( x i + 1 ) − ∇ f ( x i ) ] T Q ∇ f ( x t + 1 )
λ
i
d
i
Q
∇
f
(
x
t
+
1
)
=
(
x
t
+
1
T
−
x
t
T
)
Q
∇
f
(
x
t
+
1
)
=
[
∇
f
(
x
i
+
1
)
−
∇
f
(
x
i
)
]
T
Q
∇
f
(
x
t
+
1
)
= [ γ i d i − d i + 1 + d i − g a m m a i − 1 d i − 1 ] T ∇ f ( x t + 1 ) = 0
=
[
γ
i
d
i
−
d
i
+
1
+
d
i
−
g
a
m
m
a
i
−
1
d
i
−
1
]
T
∇
f
(
x
t
+
1
)
=
0
d T i Q d t + 1 = − d T i Q ∇ f ( x t + 1 ) + γ t d T t Q d t = 0
d
i
T
Q
d
t
+
1
=
−
d
i
T
Q
∇
f
(
x
t
+
1
)
+
γ
t
d
t
T
Q
d
t
=
0
Levenberg-Marquardt(LM算法)
目标函数为:
m i n x 1 2 f T ( x ) f ( x )
m
i
n
x
1
2
f
T
(
x
)
f
(
x
)
泰勒展开可得:
f ( x + Δ ) ≈ f ( x ) + ∇ f ( x ) Δ
f
(
x
+
Δ
)
≈
f
(
x
)
+
∇
f
(
x
)
Δ
那么
f T ( x + Δ ) f ( x + Δ ) ≈ [ f ( x ) + ∇ f ( x ) Δ ] T [ f ( x ) + ∇ f ( x ) Δ ]
f
T
(
x
+
Δ
)
f
(
x
+
Δ
)
≈
[
f
(
x
)
+
∇
f
(
x
)
Δ
]
T
[
f
(
x
)
+
∇
f
(
x
)
Δ
]
可得
1 2 ∂ f T ( x + Δ ) f ( x + Δ ) ∂ Δ = ∇ f T ( x ) [ f ( x ) + ∇ f ( x ) Δ ]
1
2
∂
f
T
(
x
+
Δ
)
f
(
x
+
Δ
)
∂
Δ
=
∇
f
T
(
x
)
[
f
(
x
)
+
∇
f
(
x
)
Δ
]
令导数为0可得:
Δ = − [ ∇ f T ( x ) ∇ f ( x ) ] − 1 [ ∇ f T ( x ) f ( x ) ]
Δ
=
−
[
∇
f
T
(
x
)
∇
f
(
x
)
]
−
1
[
∇
f
T
(
x
)
f
(
x
)
]
Levenberg-Marquardt迭代方程:
x t + 1 = x t − [ ∇ f T ( x ) ∇ f ( x ) + μ I ] − 1 [ ∇ f T ( x ) f ( x ) ]
x
t
+
1
=
x
t
−
[
∇
f
T
(
x
)
∇
f
(
x
)
+
μ
I
]
−
1
[
∇
f
T
(
x
)
f
(
x
)
]
0阶问题和-1阶问题
Nesterov Y, Spokoiny V. Random Gradient-Free Minimization of Convex Functions[M]. Springer-Verlag New York, Inc. 2017.
思路来源:
U b
U
b
是在单位球
B
B
内的均匀分布,定义
f μ ( ω ) = E v ∼ U b [ f ( ω + μ v ) ] = 1 α ( n ) ∫ B f ( ω + μ v ) d v
f
μ
(
ω
)
=
E
v
∼
U
b
[
f
(
ω
+
μ
v
)
]
=
1
α
(
n
)
∫
B
f
(
ω
+
μ
v
)
d
v
α ( n )
α
(
n
)
是
n
n
维空间球的体积,
f μ ( ω )
f
μ
(
ω
)
一般被称为smoothing function Suppose
f ∈ C 1 L
f
∈
C
L
1
.Bounds
| f μ ( ω ) − f ( ω ) | ≤ μ 2 L 2
|
f
μ
(
ω
)
−
f
(
ω
)
|
≤
μ
2
L
2
| ∇ f μ ( ω ) − ∇ f ( ω ) | ≤ μ n L 2
|
∇
f
μ
(
ω
)
−
∇
f
(
ω
)
|
≤
μ
n
L
2
L
L
是利普西斯常数
Stochastic Zeroth Order Oracle
objective function:
f ( x ) = E [ F ( x , ξ ) ] = ∫ F ( x , ξ ) d P ( ξ )
f
(
x
)
=
E
[
F
(
x
,
ξ
)
]
=
∫
F
(
x
,
ξ
)
d
P
(
ξ
)
定义:
G μ ( x , v ) = n μ [ F ( x + μ v , ξ 1 ) − F ( x , ξ 2 ) ] v
G
μ
(
x
,
v
)
=
n
μ
[
F
(
x
+
μ
v
,
ξ
1
)
−
F
(
x
,
ξ
2
)
]
v
Lemma 1:
E v [ G μ ( x , v ) ] = ∇ f μ ( x )
E
v
[
G
μ
(
x
,
v
)
]
=
∇
f
μ
(
x
)
。如果
f
f
和
F
F
满足一定的条件,
E v [ | G μ ( x , v ) | 2 ]
E
v
[
|
G
μ
(
x
,
v
)
|
2
]
有界。二阶矩有界可能意味着
G μ ( x , v )
G
μ
(
x
,
v
)
的平均能够很快接近
E v [ G μ ( x , v ) ]
E
v
[
G
μ
(
x
,
v
)
]
。
Stochastic Optimization : One Sample at a Time Parameters:
η , μ > 0
η
,
μ
>
0
and a convex set
X ⊆ R n
X
⊆
R
n
Initialize:
x 1 = 0
x
1
=
0
For
t = 1 , . . . , T
t
=
1
,
.
.
.
,
T
Pick
v t ∼ B b
v
t
∼
B
b
At
x t + μ v t
x
t
+
μ
v
t
and
x t
x
t
,receive
F ( x t + μ v t , ξ 1 ) , F ( x t , ξ 2 )
F
(
x
t
+
μ
v
t
,
ξ
1
)
,
F
(
x
t
,
ξ
2
)
respectively Assemble
G μ ( x t , v t ) = n μ [ F ( x t + μ v t , ξ 1 ) − F ( x t , ξ 2 ) ] v t
G
μ
(
x
t
,
v
t
)
=
n
μ
[
F
(
x
t
+
μ
v
t
,
ξ
1
)
−
F
(
x
t
,
ξ
2
)
]
v
t
Update
x t + 1 = x t − η G μ ( x t , v t )
x
t
+
1
=
x
t
−
η
G
μ
(
x
t
,
v
t
)
End for
证明了
x T − x ∗ = O ( T − 1 3 )
x
T
−
x
∗
=
O
(
T
−
1
3
)
可以优化的地方:变步长
η
η
和精度
μ
μ
启发式优化方法
启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。启发式优化方法种类繁多,包括经典的模拟退火方法(不断扰动择优)、遗传算法(遗传变异淘汰)、蚁群算法(最优路径,短的路上蚂蚁释放的信息素多)以及粒子群算法(随机解,踪两个“极值”来更新范围,不断缩小范围)等等。
还有一种特殊的优化算法被称之多目标优化算法,它主要针对同时优化多个目标(两个及两个以上)的优化问题,这方面比较经典的算法有NSGAII算法、MOEA/D算法以及人工免疫算法等。