最优化理论与算法(第三章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 牛顿法
§3.1 最速下降法
一、最速下降法
在极小化算法中,若每次都以迭代点处的负梯度方向为搜索方向,产生的算法称为最速下降法,它是无约束最优化算法中最简单、最基本的算法。
算法描述:
1) 给出初始点0n x R ∈,允许误差0ε>,0k =; 2) 计算k k d g =-,若k g ε≤,Stop 令 *k x x ≈; 3) 由一维搜索确定步长因子k α,使得
()min ()k k k k k f x d f x d ααα≥+=+
4) 令1k k k k x x d α+=+,1k k =+,go to 2).
二、最速下降算法的收敛性
定理3.1 设1f C ∈,则最速下降算法产生的点列{}k x 的每个聚点均为驻点。
证明:设x 是{}k x 的一个聚点,则存在子序列{}1
k K x ,使得
1
lim k k K x x ∈=
令()k k d f x =-∇,由1
f C ∈,知{}1
()k K f x ∇是收敛序列,故{}1
k K d 有界,且
1
lim ()k k K d f x ∈=-∇
由定理2.6有
2
()(())()
0T
f x f x f x ∇-∇=-∇=
故有 ()0f x ∇=。
定理 3.2 设()f x 二次连续可微,且2
()f x M ∇≤,则对任何给定的初始点0n x R ∈,最速下降
算法或有限终止,或lim ()k k f x →∞
=-∞,或lim ()0k k f x →∞
∇=。
证明:不妨设k ∀,()0k f x ∇≠。
由定理2.5有
2
11()()()2k k k f x f x f x M
+-≥
∇ 于是 []1
2
010
1
()()()()()2k
k k i i i i i f x f x f x f x f x M -+==-=-≥
∇∑∑
令k →∞,由{()}k f x 为单调下降序列,则要么
lim ()k k f x →∞
=-∞,要么 lim ()0k k f x →∞
∇=。
最速下降算法若采用不精确一维搜索,仍有下列总体收敛性定理。
定理3.3 设1f C ∈,则采用不精确一维搜索得到的点列{}k x 的每个聚点均为驻点。
证明:直接由定理2.14可得。
注:1) 最速下降算法的收敛性也可由前述关于模式算法收敛性结果定理2.7直接获得;
2)最速下降算法的主要优点是方法简单、直观,有好的总体收敛性,但收敛很慢。
三、最速下降算法的收敛速度 1. 先考虑二次函数情形
定理3.4 对极小化问题1min ()2
T
f x x Gx =
,其中G 为n n ⨯对称正定矩阵,1λ,n λ分别为G 的最大与最小特征值。
设*
x 是最优解,则最速下降算法的收敛速度至少是线性的,且下面的界成立:
*2211*221()()()(1)()()(1)()k n k n f x f x f x f x λλττλλ+---≤=-++
,*1*
k k x x x x
+-≤- 其中1
1n G G τλλ-==(τ为矩阵G 的条件数)。
证明:由()f x Gx ∇=,有()k k f x Gx ∇=。
故
1()()k k k k k k k k k k k k x x d x f x x Gx I G x αααα+=+=-∇=-=-
其中k α使 (())(())k k k f I G x f I G x αα-≤-, 0α∀≥ 若设 ()1k P t t α=-,()Q t ut λ=- 其中,u R λ∈。
则有
()Q G I uG λ=-,而(0)Q λ=,
利用这些,可知
1()
()(())(
)(0)
k k k k Q G f x f I G x f x Q α+=-≤, (要求0u λ>)
21()()1
()()(())(())2(0)(0)2(0)
T T k k k k Q G Q G x G x Q G x G Q G x Q Q Q =
= 设12,,n λλλ≥≥ 是G 的特征值,而(1,,)i u i n = 是对应得标准特征向量(两两正交的单位向量)。
令()1
n
k k i i
i x a
u ==
∑,则上式可进一步表示为:
()()
2
11
1(())(())2(0)n n
k T k i i j j i j a Q G u G a Q G u Q ==∑∑ ()()2
111(())(())2(0)n n
k T
k i i i j j j i j a Q u G a Q u Q λλ===∑∑ (将G 作用到∑内每一项) ()()
2
11
1(())(())2(0)n n
k T k i i i j j j j i j a Q u a Q u Q λλλ===∑∑ ()2()2
2
1
1()2(0)n
k i i i i a Q Q λλ==∑ (由i u 是标准正交向量组) 对()Q t ut λ=-,可适当选取,u λ,使1()1,()1n Q Q λλ==-。
事实上,只须令
1()1
()1n Q Q λλ=⎧⎨
=-⎩
即可求得
()1112
,n n n
u λλλλλλλ-+=
=
-- 从而 ()
112()n n
t Q t λλλλ-+=
-。
显然()Q t 单调上升。
由1()1,()1n Q Q λλ==-,及12,,n λλλ≥≥ ,即得()1(1,,)i Q i n λ≤= 。
由 ()()22
()2()12211
11()()2(0)2(0)n n
k k k i i i i i i i f x a Q a Q Q λλλ+==≤≤∑∑ 及 ()2()()
()()()1111
1111()()()()()222n n
n n n k T k k T k k k i i j j i i j j j i i i j i j i f x a u G a u a u a u a λλ========∑∑∑∑∑
即得 12
()
()(0)
k k f x f x Q +≤
. 再由 2
2
11(0)n n Q λλλλ⎛⎫+= ⎪-⎝⎭
最后得 2
111()()n k k n f x f x λλλλ+⎛⎫
-≤ ⎪+⎝⎭
0k ∀≥.
由1101n
n
λλλλ-<
<+,并注意到()f x 是正定二次函数(()0f x ≥)
, 则有()0 ()k f x k →→∞。
再由()f x 为严格凸二次函数(正定二次型),故当且仅当0x =时,()0f x =,由此可推得必有 *0k x x →=.
再注意到*()0f x =,则有
2
*111*1()()()()()()k k n k k n f x f x f x f x f x f x λλλλ++⎛⎫
--=≤ ⎪-+⎝⎭
从而定理第一式得证。
下面再证定理第二式,记*k k e x x =-,k ∀。
由G 是对称正定的,故有
1T T T n k k k k k k e e e Ge e e λλ≤≤
由*
0x =,则 2()T T k k k k k e Ge x Gx f x == 故有
12()T T n k k k k k e e f x e e λλ≤≤, k ∀
注意到: 2
111()()n k k n f x f x λλλλ+⎛⎫
-≤ ⎪+⎝⎭
因而有
22
*1111112
*
11
2
()2()k T k k k n n T
k k
n n k k f x x x
e e e e x x
f x λλλλλλλλ++++-⎛⎫-=≤≤ ⎪+-⎝⎭
最后得
*1*
k k x x x x +-≤-(其中1n
λ
τλ=)。
这表明:最速下降算法至少具有线性收敛速度。
定理3.5(Kantorovich 不等式)设G 是n 阶对称正定矩阵,1λ和n λ分别为其最大和最小特征值,则
n
x R ∀∈,有2
112
14()()()()
T n T T n x x x Gx x G x λλλλ-≥+。
证明:参见袁亚湘等《最优化理论与方法》第三章附录,略。
以上对特殊形式的二次函数1()2
T
f x x Gx =
的收敛速度进行讨论,对一般的二次函数 1()2
T
T f x x Gx b x =
+ 利用Kantorovich 不等式可得类似的结论,其证明思路如下:设*
x 是极小点,则*
x 满足
*0Gx b +=
且()f x 可表示为 ****11
()()()22T T f x x x G x x x Gx =
--- 记 **
1()()()2
T E x x x G x x =--,
则()E x 与()f x 仅相差一个常数,它们有相同的最优解,且使用最速下降算法时,每次迭代方向产生的迭代序列均完全相同。
现在考察对()E x 的极小化,这时最速下降算法的迭代公式为:
1T k k k k k T k k g g x x g g Gg +=- (这里T k k k T k k
g g
g Gg α=为最优步长因子)
其中k k g Gx b =+。
直接计算可得:
21112
1()()()4()()()()
T
k k k k n
T T k k k k k n E x E x g g E x g Gg g G g λλλλ+--=≥+(由Kantorovich 不等式) 故有: 2
1112114()1()()()n n k k k n n E x E x E x λλλλλλλλ+⎧⎫
⎛⎫-≤-=⎨⎬
⎪++⎩⎭⎝⎭
(1) 由(1)即得: ()0k E x →(或*()()k E x E x →)。
由G 正定,当且仅当*
x x =时,
**1
()()()02
T E x x x G x x =
--= 利用()E x 一致凸性,可证必有:*k x x →。
这表明:算法产生的点列{}k x 是整体收敛到*
x 的。
由(1)有: 2
*
11
1*1()()()()()()k k n k
k n f x f x E x f x f x E x λλλλ++⎛⎫--=≤ ⎪-+⎝⎭
(2) 注意到: *
**
1()02
T f x x Gx ≤-
≤,
由(2)有 2
2*11111()()1()n n
k k n n f x f x f x λλλλλλλλ+⎡⎤⎛⎫⎛⎫--⎢⎥≤+- ⎪ ⎪++⎢⎥⎝⎭⎝⎭⎣⎦
2
11()n k n f x λλλλ⎛⎫
-≤ ⎪+⎝⎭
(3)
再令*k k e x x =-(k ∀),则
1T T T n k k k k k k e e e Ge e e λλ≤≤,k ∀
注意到2()T k k k e Ge E x = 即有: 2
2
**12()n k k k x x
E x x x λλ-≤≤-,k ∀
从而有:
22
*1111112
*
11
2
()
()2()()k k n
k n n k n n k k E x x x
E x E x x x E x λλλλλλλλλλ+++-⎛⎫-=≤=≤ ⎪+-⎝⎭,(令1
n
λτλ=) 最后得:
*1*
k k x x x x +-≤- 当目标函数为非二次函数时,最速下降算法的收敛速度依然是线性的。
定理3.6 设()f x 满足定理2.8的假设条件,若最速下降算法产生的点列{}k x 收敛于*
x ,则收敛
速度至少是线性的。
§3.2 牛顿法
一、牛顿算法的基本思路
牛顿算法的基本思路是:利用目标函数在当前迭代点k x 处的二次近似的极小点作为()f x 的近似极小点。
设k x 是当前迭代点,2()k f x ∇正定,则
21
()()()()()()()2T T k k k k k k f x f x f x x x x x f x x x ≈+∇-+-∇-
记 ()21()()()()2
k T
T k k k q s f x f x s s f x s =+∇+∇,其中k s x x =-,
极小化()
()k q
s 得
211(())()k k k k k s f x f x G g --=-∇∇=-
进而得牛顿算法的迭代公式: 1
1k k k k x x G g -+=-.
关于牛顿算法的若干评注
① 牛顿算法可视为椭球范数k
G 下的最速下降算法。
事实上,欧氏空间n
R 中一般范数 下的方向导数定义为:
0()()()lim T T
k k k k f x s f x f x s g s df
ds s s s
ρρρ→+-∇===
(它显然与范数 有关) 显然,min n T
k s R g s
s
∈的最优解就是函数()f x 在k x 处对应于范数 的最速下降方向。
容易理解,这个解
与所取的范数有关。
a) 当取欧氏范数(2范数)时,可证k k s g =-是最速下降方向;
b) 若取椭球范数k
G ,最速下降方向则为1
k k k s G g -=-。
事实上,
1111(,)k
k k k
k
k
k
k
T T k k
G k
k G G k
k
k
k k k
G G G G
G G g s
G g s g s g G G s
G g s s s s
------=-=-≥-=-
即 n
s R ∀∈,有1k
k
T k k k G G
g s
G g s -≥-(意味着1
k
k k
G G g --为方向导数下界)
另一方面,若取1
k k s G g -=-时
11121()()
k
k
k
k k
k
k
T T
T k k k k k k k k k G G G
G k k
G G G g s g G g G g G G g s s s s s
G g s
-------==-=-
=-=-
方向导数达到下界1
k
k k
G G g --,故1
k k k s G g -=-是对于椭球范数k
G 的最速下降方向。
② 牛顿算法实际上就是非线性方程组的牛顿迭代法。
由于min ()n
x R
f x ∈等价于求解非线性方程组 ()0f x ∇=
设k x 是当前迭代点,若()0k f x ∇=,则k x 是方程组的解,否则将()f x ∇在k x 处线性化,得 2
()()()()0k k k f x f x f x x x ∇≈∇+∇-=
将上述线性方程组的解作为
()0f x ∇=
的近似解,得 21()()k k k x x f x f x --=-∇∇ 故有 211()()k k k k x x f x f x -+=-∇∇, 这恰好就是牛顿迭代公式。
二、牛顿法的收敛性 定理3.7 设(2)
f C
∈,k x 充分靠近极小点*x ,
而*()0f x ∇=,2*
()f x ∇正定,若进一步假设Hessian 矩阵()G x 满足Lipschitz 条件。
则由牛顿法产生的序列{}k x 收敛于*
x ,且具有二阶的收敛速度。
证明:由 *1
1*
**00(())
()()(())()k k k k k k dg x x x g x g x d G x x x x x d d ααααα
+--==+--⎰⎰ 及()G x 满足Lipschitz 条件,可得
1
**
**0
2
**()()()()[(())()]() ()()()()
k k k k k k k k k k k g x g x G x x x G x x x G x x x d g x G x x x o x x αα
=+-++---=+-+-⎰
故有 2
*
*0()()()()k k k k g x G x x x o x x =--+- (*)
由于(2)
f C
∈,*
2
*
()G f x =∇正定,故当k x 充分靠近*
x 时,k G 正定,且1k G -有上界。
事实上,设()()1,,k k n λλ 是k G 的特征值,且()1k λ最大,()
k n λ最小,则1k G -的特征值为
()
()
1
1
1
,,k k n
λλ
,且()1k k G λ=,1
()1
k
k n
G λ
-=
(这里矩阵范数取谱范数)。
又特征值是特征多项式系
数的连续函数(参见蒋尔雄《线性代数》P39定理10),故当*
x x ε-≤时,存在m, M 使得
1(())(())n m G x G x M
λλ≤≤≤, (相当于特征值一致有界) 因而当*
k x x ε-≤时
1()()n k k m G G M λλ≤≤≤(这里()n k G λ1()k G λ分别表示k G 的最小、最大特征值)。
由以上分析及(*)式,则有
2
1*
*0()()k k k k G g x x o x x -=--+-
2
*
*1()0k k x x o x x +⇒-++-=
2
**1k k x x c x x
+⇒-≤- (**)
只要*
1k c x x r -<<,则有*10k x x +-→,即*k x x →,迭代点列收敛,且由(**)式知,算法
具有二阶收敛的速度。
关于算法的评价
1)优点:当初始点0x 离最优解*
x 很近时,收敛速度快;算法简单;不需要用一维搜索。
2) 缺点:局部收敛,k G 不正定时,不能保证牛顿方向是下降方向。
事实上,当k G 为正定时,牛顿
方向1k k k s G g -=-满足:1
0T T k k k k g s g G g -=-<(下降方向)
,但若k G 非正定,则不能保证k s 是下降方向。
由以上分析可知,固定的步长因子不能保证目标函数有合理的改善,甚至不能保证算法下降,因此有必要对牛顿算法作一些改进,一个最直接的改进是:在牛顿算法中加入一维搜索。
三、带步长因子的牛顿法——阻尼牛顿法 1.算法
1)取初始点0n x R ∈,允许误差0ε>,置:0k =;
2)计算k g ,若k g ε≤,停止迭代,*k x x ≈;否则 go to 3); 3) 构造牛顿方向:从k k G d g =-求出k d ;
4)沿k d 进行一维搜索,使得k α满足:0
()()min k k k k k f x d f x d ααα≥+=+;
5)令1k k k k x x d α+=+,:1k k =+ 转2)。
2.总体收敛性
定理3.8 设:n
f R R →二阶连续可微,且对任意的0n x R ∈,存在常数0m >,使得()f x 在水平
集00(){()()}L x x f x f x =≤上满足,
2
2()T u f x u m u ∇≥,n
u R ∀∈,0()x L x ∈
则在精确一维搜索条件下,带步长因子的牛顿法产生的迭代点列{}k x 满足: 1) 当{}k x 为有穷点列时,对某个k ,有0k g =;
2) 当{}k x 为无穷点列时,{}k x 收敛到f 的唯一极小点*
x 。
证明:由定理条件知,()f x 在0()L x 上一致凸。
故()f x 在0()L x 中若有极小点,则必唯一,且()f x 在0()L x 中的稳定点必是()f x 的极小点。
下证{}k x 收敛到()f x 的稳定点。
由()f x 在0()L x 上一致凸,知0()L x 是有界闭凸集,再由{}()k f x 单调下降,可知
{}0()k x L x ⊂,
故{}k x 是有界点列,于是存在极限点0()x L x ∈及子列{}1
k K x 使
1
,lim k k k K x x →∞∈=.
再由{}()k f x 单调有界(有界性是由于:0()L x 闭有界,且()f x 在0()L x 上连续)可知:
lim ()()k k f x f x →∞
= (这里是指整个序列)
且
1
,lim ()()k k k K f x f x →∞∈∇=∇ (这里是子序列)
由精确一维搜索的极小化算法的收敛定理2.7,有
()0k k f x g ∇=→ (整个序列) (*) 从而 lim ()()0k k f x f x →∞
∇=∇=,
即x 是()f x 的稳定点,它也是极小点。
现在实际上还只证明了{}k x 的子序列{}1
k K x 收敛到x ,下证{}k x 整体收敛到x 。
事实上,若k
x 不收敛到x ,则存在一个子序列{}2
k K x 使
0k x x ε-≥(2k K ∈,0ε是给定的正数)
注意到{}2
k K x 是有界点列,故存在收敛子列{}3
k K x 32()K K ⊂,使
3
0,ˆlim ()k k k K x x
L x →∞∈=∈ (由0()L x 闭有界) 从而 3
ˆlim ()()k k K f x f x
∈∇=∇ 由(*)式进一步得
ˆ()()0k f x f x
∇→∇= 从而ˆx
也是()f x 的平稳点,也是极小点,但显然ˆx x ≠,这与()f x 的极小点唯一矛盾, 故必有 {}k x x →。
在上面证明过程中,直接引用了精确一维搜索的极小化算法的收敛定理2.7,因此必须指出定理2.7的条件是满足的。
事实上,
1)由0()L x 有界闭,故()f x ∇在0()L x 上一致连续,且0(),(())G x M x L x ≤∈;
2)由22
cos T T T
k k k k k k k k k
k k k k k k k k k
m d g d d G d d G d m
g d g d G d d M
M d θ=-
==≥=
得:arcsin
2
2
k m M π
π
θμ≤-=-。
§3.3 修正的牛顿法
上面带步长因子的牛顿法实际上还不能克服牛顿算法的全部缺陷,因为还有可能出现:
1) 1k G -不存在;2)k G 不正定,故1
k k k d G g -=-可能不是下降方向。
为此人们对牛顿法提出了多种
方式的修改。
一、Goldstein —Price 修正方案
当k G 非正定时,采用最速下降方向k g -替代牛顿方向。
若进一步将搜索方向与负梯度方向的角度准则结合起来,则有
1
, () N N N k k k k k k k k d d g d G g d g η-⎧-≥=-⎪=⎨-⎪⎩若cos 这里否则
这样搜索方向k d
总满足,k k d g η-≥cos
注:按照这种方法选取搜索方向,再加上一维搜索(精确或非精确)可以保证算法的总体收敛性,但也可能失去牛顿法快速收敛的特点。
二、Goldfeld 修正方案
若k G 不正定,则用k k k G G v I =+来修正k G 。
通过适当选取0k v >,可以使k G 正定。
事实上,
只要将k v 取得稍大于k G 的最小特征值的模即可。
利用特征值的圆盘定理可以求得最小特征值的模:
1m i n
m i n ()()i k i i k i j i
i n
j i G G λ≤≤≠⎧⎫
≤-⎨⎬⎩⎭
∑ 注:用此方法可求出k v ,但通常得到的k v 远大于最小特征值的模,导致k G 与k G 相差甚远,这是一个缺陷。
而实际求出k G 的全部特征值计算量又太大,因此,这个方法更多的是理论的价值。
三、基于k G 的Cholesky 分解的方案
先作k G 的Cholesky 分解
T k G L D L =
然后令 T k G LDL =,其中11(,,)nn D diag d d = 而{}
max ,ii ii d d δ=,ii d 为D 中对角元,δ为给定的小正数。
注:这种处理方法简单,但有下列缺陷:
1) 当k G 不可逆或k G 的主子式为零时,k G 的Cholesky 分解不存在(分解过程将进行不下去)。
如
0110k G ⎛⎫
= ⎪⎝⎭
, 其Cholesky 分解不存在。
2) 即使k G 的分解存在,其计算过程也可能数值不稳定。
如
1001111
1
11001k G εεεεεεε⎛⎫⎛⎫⎛⎫
⎛⎫ ⎪⎪⎪== ⎪ ⎪⎪⎪-
⎪⎪⎪
⎝⎭⎝⎭⎝⎭⎝⎭
, 当0ε→时,L 与D 均无界,计算过程中小的误差会导致结果的巨大差别。
因而数值不稳定,同时还可能出现k G 与k G 的差别很大。
如
20
1
1211103231k G -⎛⎫
⎪=+ ⎪ ⎪⎝⎭
k G 的Cholesky 分解为
2010011
02101L ⎛⎫ ⎪= ⎪ ⎪⎝⎭, 20
20100
010000(310)D -⎛⎫
⎪= ⎪ ⎪-+⎝⎭
由{}
max ,ii ii d d δ=的处理方式得
20
201
00
010000310D -⎛⎫
⎪= ⎪ ⎪+⎝⎭
可见D 与D (从而k G 与k G )相差甚远。
四、Gill 和Murray 修正方案
Gill —Murray 修正法也称为强迫矩阵正定的Cholesky 分解法,它在k G 的分解过程中进行适当修正,使ii d 总为正,从而分解过程可以持续下去,但最终得到的分解式T k LD L 不是真正的k G ,而是k G 的近似k G 。
其要点在于:
1)在分解过程中,增加了保证分解得到的因子矩阵元素一致有界的措施。
在过程完成时,得到: T k k G LDL G E ==+ (其中E 是非负对角阵)
2)在整个计算过程中,为了保证ii d δ>及因子矩阵元素一致有界,必须对k G 的元素进行调整,否则算法进行不下去,但必须指出的是,所有调整都只涉及k G 的对角元(通常是将其增大),这就保证了:
k k G G E =+,即k G 与k G 仅差一个对角阵。
3)可以证明,当k G 充分正定时,有k k G G =。
可参阅席少霖著《非线性最优化》P80,或徐成贤等著《近代优化方法》P62。
定理 3.9 设()f x 在n
R 上二阶连续可微,且存在0x 使{}
00()()()L x x f x f x =≤为有界闭凸集,
若初始点10()x L x ∈,则由Gill —Murray 修正牛顿法产生的点列{}k x 满足: 1) 若{}k x 是有限点列时,它的最后一个点必为()f x 的平稳点; 2) 若{}k x 是无穷点列时,它必有聚点,且任一聚点均为()f x 的平稳点。
证明:参阅邓乃扬著《无约束最优化计算方法》。
注:一般.用到的Gill —Murray 修改牛顿法除了强迫正定的Cholesky 分解法外,在鞍点处还用到负曲率方向,因而它是一个对牛顿法改造的最彻底、最具有实用价值的方法。
§3.4 负曲率方向法
一、负曲率方向
负曲率方向法是修正牛顿法的又一种形式。
当2()k f x ∇不正定时,利用负曲率方向可找到下降方向,尤其在鞍点处,即:
()0k f x ∇=, 而2()k f x ∇不是半正定时(当然也不是正定的)
此时若采用负曲率方向作为搜索方向,可以使目标函数下降。
定义3.10 设()f x 在开集D 上二阶连续可微,
1)若2()f x ∇至少有一个负特征值,则x D ∈称为不定点;
2)设x 是一个不定点,若方向d 满足:2()0T d f x d ∇<,则称d 为()f x 在x 处的负曲率方向; (若d 是负曲率方向,显然d -也是)
3)如果()0T s f x ∇≤,()0T d f x ∇≤,2()0T d f x d ∇<,则称向量对(),s d 为不定点x 处的下降对; 若x 不是一个不定点,则称满足:()0T
s f x ∇<,()0T
d f x ∇≤,2
()0T
d f x d ∇=的向量对,s d () 为点x 处的下降对。
下降对的例子
令 ()s f x =-∇,20 ()0sign(()) T
f x d u f x u ⎧∇≥⎪
=⎨-∇⎪⎩若否则
其中u 是对应于2
()f x ∇的负特征值的特征向量。
注:1) 由定义可见:当且仅当()f x ∇0=,2
()0f x ∇≥时,x 处不存在下降对。
因此,一旦在该
点不存在下降对,那么该点必满足极小点的二阶必要条件(但仍不一定是极小点)。
2)若*
x 是鞍点,则负曲率方向必为下降方向。
事实上,设d 为负曲率方向,由
2
***22*1()()()()()2
T T f x d f x f x d d f x d d αααοα+=+∇+∇+
容易看出:当α很小时,*
*
()()f x d f x α+<。
3)若x 为一般点,且负曲率方向d 满足()0T d f x ∇=,则d 与d -均为下降方向。
4)若()0T d f x ∇≤,则d 是下降方向;若()0T d f x ∇≥,则d -是下降方向。
由上述分析,一旦找到负曲率方向,则总存在一个下降方向。
而唯一难找到下降方向的情形是:
()0f x ∇=且2()0f x ∇≥时。
二、Gill-Murray 稳定牛顿法
基本思想:将修改Cholesky 分解与负曲率方向相结合。
当k G 不正定时,采用修改Cholesky 分解强迫矩阵正定;而当0→k g 时,采用负曲率方向使函数值下降。
1)负曲率方向的求法(与修改的Cholesky 分解相联系,计算相对容易) 2)Gill-Murray 稳定牛顿法算法步骤(参阅袁亚湘等著《最优化理论与方法》)。
3)收敛性定理(证明参阅邓乃扬著《无约束最优化计算方法》)。
三、Fiacco-Mccormick 方法
Fiacco-Mccormick 是最早利用负曲率方向修正牛顿法的学者,他们利用精确一维搜索以及Cholesky 分解T k LDL G =。
1)当k G 正定时,产生下降方向1k k k d G g -=-(牛顿方向); 2)当k G 不定时,通过求解T
L t α=,其中
10
00ii i ii d d α≤⎧=⎨>⎩
获得 t ,然后令
00
T k k T
k t g t d t g t ⎧≤⎪=⎨->⎪⎩, 得负曲率方向k d (也是下降方向)。
该方法的主要缺陷是:T
k G LDL =可能存在数值不稳定,甚至分解不存在。
四、二阶Armijo 步长准则—Mccormick 方法
设k x 是当前迭代点,(,)k k s d 是下降方向对,迭代格式为:
112()()k k k k x x s d φαφα+=++
这不是沿一个方向进行线搜索,也不是k s 与k d 的组合方向,而是一种曲线搜索策略。
算法终止:不存在下降方向对时,算法终止。
此时,意味着()0k f x ∇=且2()0k f x ∇≥,故k x 是一个满足二阶必要条件的点。
若产生无穷点列{}k x ,则在对下降方向对(,)k k s d 附加较强条件时,算法总体收敛。
在该方法中使用的非精确步长准则实际上属于简单步长准则,但不是Armijo 一阶准则,而是Armijo 二阶步长准则。
令
2()22
i i
k k k k y i x s d -
-=++
求0i ,它是使下式
201
[()]()2[()()]2
i T T k k k k k k k f y i f x s f x d f x d ρ-≤+∇+∇
满足的最小整数。
令
00
2
10()2
2
i i k k k k k x y i x s d -
-+==++。
五、二阶Armijo 步长准则—Goldfarb 方法
设k x 是当前迭代点,(,)k k s d 是k x 处的下降方向对。
令
2(),(0,1)k k k x x s d αααα=++∈
这实际上是Mccormick 方法的一种特殊形式。
仍然采用Armijo 简单步长准则,选择最小的正整数i ,使得
41
(())()()2
i i i T k k k k k k k f x f x s g d G d αραα-≤+,(0,1)ρ∈
其中,α与ρ是预先给定的常数。
六、二阶Wolfe-Powell 步长准则—More-Sorensen 方法
形式:2
()x x s d ααα=++。
采用非精确搜索确定步长α,步长准则采用Wolfe-Powell 准则的推广形式,即所谓二阶Wolfe-Powell
准则。
关于上述内容的详细讨论可参阅袁亚湘等著《最优化理论与方法》的相应章节。
§3.6 信赖域方法
一、信赖域算法 1.牛顿法的基本思想
在当前迭代点k x 附近用二次函数
()1
()(),()2
k T T k k k k q s f x g s s G s s x x =++=-
逼近()f x ,并以()
()k q s 地极小点k s 修正k x ,得1k k k x x s +=+。
如果不限定s 的范围,实际上是用
()()k q s 在全空间逼近()f x ,而用()()k q s 的极小点代替()f x 地极小点。
容易理解,这样得到的迭
代点1k x +往往不能使()f x 有较大的改进,有时不仅不能得到改进,反而变得更糟。
2.信赖域方法的基本思想
信赖域方法是上世纪70年代提出的一种重要的优化方法,它针对上面提及的牛顿方法的缺陷,在子问题中,明确要求x 必须位于当前迭代点k x 的邻域(信赖域)内。
在算法每次迭代中,求解下述信赖域子问题:
()1
min ()()2
k T T k k k q s f x g s s G s =++
.k s t
s h ≤
注: 1) 由于从信赖域子问题求出的k s 必须满足k k s h ≤,故称为有限步长方法;
2)范数没有特别限制,可根据需要随意选取,但多数情形用2 或∞ 两种范数; 3)k G 可用有限差分近似,也可用后面即将介绍的拟牛顿方法构造其近似。
在信赖域算法中,信赖域半径k h 采用自适应方式调整,若()
()k q s 与()k f x s +近似程度好,则k h 尽
可能取大,否则将其缩小。
而通常采用下述方式评价()
()k q s 与()k f x s +的逼近程度:
在算法迭代的第k 步,定义
()()k k k k f f x f x s ∆=-+ 称实际下降量
()()()()k k k k q f x q s ∆=- 称预估下降量
定义比值: ()
k
k k f r q
∆=
∆ k r 越接近1,表明近似程度好,应加大k h ,否则相反。
3.信赖域算法(算法模式)
1)初始步:给出初始点0x ,令00h g = 2)第k 步:0
1给出k x 和k h ,计算k g 和k G 02解信赖域模型(子问题),求出k s 0
3求()k k f x s +和k r 的值 04如果0.25k r <,令14
k
k s h +=
(缩减信赖域半径) 如果0.75k r >且k k s h =,令12k k h h += (增大信赖域半径) 否则,置1k k h h += (信赖域半径不变) 0
5若0k r ≤,置1k k x x +=;否则置1k k k x x s +=+。
注:求解信赖域子问题得到的k s 称为试探步。
由0
5可见,求出的试探步最后是否移动,取决k r 是否大于0。
在有些信赖域算法中,将0
5中的0k r ≤替换成了 (0)k r ηη≤>。
二、信赖域算法的收敛性
定理3.11 设B 是n
R 中的一个有界集,信赖域算法产生的点列{}k x B ⊂。
若进一步假设2f C ∈且
在B 上满足:()(0)G x M M ≤>。
则{}k x 存在一个满足一阶和二阶必要条件的聚点x ∞。
证明:由算法分析可知,算法产生的点列必存在一个子序列,要么满足: 1)0.25k r <,10k h +→(因而0k s →);要么满足
2)0.25k r ≥,glb()0k h >(glb()k h 表示相应子列{}k h 的下确界)。
设x ∞
是这样子序列的任一聚点,并设{}k K x x ∞→,下面证明x ∞
就是满足定理要求的点。
a) 若此序列满足条件1)
用反证法,设()0g f x ∞∞=∇≠,对{}k K x 中的任何k x ,考虑该点的最速下降方向,有
2()
2
1()()2T k k k k k
k k k k
g g G g q f x g g g ααα-=-+ 1)当0T k k k g G g >时,注意到k
k
k
g s g -是信赖域子问题的可行解,因而有 ()()()()()k k k k
k k k k
k
g q f q s f q s g ∆=-≥-- 2
2
12
T k
k k k k
k k
s g G g s g g =-
(*)
2
11
(2)2
2k k k k k k k
M s s g s M s g g ≥-
=
- 注意到k →∞且k K ∈时,0k s →
,0k g g ∞
→≠,
从而有 21k k
M s g -
>。
故有 ()
1
2
k k k q
s g ∆≥。
2)当0T k k k g G g ≤时,由(*)式仍然有:
()1
2
k k k k k q s g s g ∆≥≥
故当k →∞且k K ∈时(此时0k s →), 有
2
2
220k
k k k k k k
s s s s g g q ≤=→∆(由0k g g ∞→≠) 再由Taylor 展开式 2
()
()k k k
f q s ο∆=∆+
进而得: ()
1k
k k f r q ∆=
→∆, 这与k K ∈时,0.25k r <矛盾,从而有0g ∞
=(即一阶必要条件满足)。
再证()G G x ∞∞
=半正定。
若不然,设λ是G ∞的最小特征值,则0λ<。
设其对应的单位特征
向量为v ,且满足0T k v g ≤(否则可取v -)。
显然k s v 是信赖域子问题的可行解,故
()()()22()()
11 22
k k k k k k k T
T T
k k k k k k q f q s f q s v s v g s v G v s v G v
∆=-≥-=--≥- 从而有
2
2
()
2
()
()
012
k k k T k k s s q s v G v οο≤→∆-
(注意T T T k v G v v G v v v λλ∞→==)
再由Taylor 公式, 2
()
()k k k
f q s ο∆=∆+
得到 ()
1k
k k f r q ∆=
→∆, 又与0.25k r <矛盾。
从而G ∞
是半正定的,即x ∞
满足极小点的一阶和二阶必要条件。
b) 若子序列是第二种情形
注意到下降算法的特点,有
()10.25k k k K
k K
f f f q ∞∈∈-≥∆≥∆∑∑
故级数收敛。
因而 ()
0k q
∆→ (**)
对应于x ∞
,定义 ()1
2
T T q
s f s g s Gs ∞
∞∞=
++
并设h 满足 1
0glb()2
k h h <<
又设s 是下述信赖域子问题
min ()q s ∞
.. s t s h ≤
的解。
注意到, k k K →∞∈时,k x x ∞→,因而x x s ∞
=+满足
k k x x h -≤(k →∞)。
从而 ()
()()()()k k k k k k q
x x q s f q -≥=-∆
取k →∞,注意k k x x x s x s ∞-=+-→,以及,,k k k f f g g G G ∞∞∞
→→→,因而有
()(0)q s f q ∞∞∞≥=。
(由(**)式,()0k q ∆→)
这说明0s =也是
min ()q s ∞
.. s t s h ≤
的最优解。
注意到0h >,此时约束不起作用。
因而0s =相当于无约束问题
min ()q s ∞
的极值。
因而有(0)0q ∞∇=,2(0)q ∞∇半正定,由此即知0g ∞=,G ∞
半正定。
即在x ∞
处满足一、二阶必要条件。
定理证毕。
关于定理3.11中两类子序列必出现一类的补充证明
设算法产生的点列为{}k x ,相应的有序列{}k r 与{}k h 。
1)若k 充分大时,均有0.25k r <,则显然存在满足第一类条件的子列; 2)若k 充分大时,均有0.25k r ≥,则显然存在满足第二类条件的子列;
因而下面仅考虑0.25k r <与0.25k r ≥总是相间出现的情形。
这种情形下,必存在一个子序列
{}1
k k K
x ∈,当1k K ∈时,有0.25k r ≥(这里1K 可取为使0.25k r ≥成立的指标的全体)。
若1k K ∈时,glb()k h 不大于零,则存在{}1
k K h 的一个子列{}2
21, k K h K K ⊂使得
2
lim 0k k K h ∈=。
再从{}2
k K h 中如下构造子列:先选出{}2
k K h 的首项,设为1k h ;由于0.25k r <与0.25k r ≥总是相间
出现。
故必有1k k '>,使0.25k r '<,又一定有22k K ∈使得2k k '>,对应得到2k h ,仿此得到{}2
k K h 的一个子序列{}3
k K h 。
{}3
k K h 显然具有如下特点:
1)3k K ∀∈,有0.25k r ≥且3
lim 0k k K h ∈=;
2){}3
k K h 中任两个相邻项之间,必定存在一个指标k ,使0.25k r <。
设1k h 与2k h 是{}3
k K h 中相邻两项。
12,k k 是两项对应的下标。
设k 是从2k 出发回溯得到的第一个
使0.25k r <的下标,由信赖域半径的自适应调整规则,显然有21k k h h +≤(见下图),图中箭头表示k h 的升降趋势。
由21k k h h +≤及3
lim 0k k K h ∈=,立即可得10k h +→。
这恰好表明由这样的k 构成的子列满足:
0.25k r < 且 1l i m
0k h += 即若1k K ∈时,glb()k h 不大于零,则可构造出一个子序列使得0.25k r <且1lim 0k h +=。
这正好是第一种情形,故两种情形至少会出现一种。
若进一步加上较强的条件,可得到信赖域算法的二阶收敛结果。
定理3.11 若进一步假定在定理3.10中的聚点x ∞
处,有G ∞
正定,那么算法产生的序列{}k x 整体
有:1,,glb()0k k k r x x h ∞
→→>,对充分大的k ,总有k k s h <;并且收敛速度是二阶的。
证明:假设算法产生的子序列k x x ∞
→属于第一种情形,即
10.25, 0 (0)k k k r h s +<→→ 1()k K ∈
考虑牛顿方向1k k k d G g -=-。
由G ∞
正定,因此当k 充分大时,k d 有定义且为下降方向。
1)若k k d h ≤,则k k s d =(即牛顿步为信赖域子问题的最优解)
()()2
1
()2
111()222
k k T T k k k k k k k
T T T k k k k k k k k k k k
q f q s g s s G s G s s s G s s G s s λ∆=-=--=-=≥
其中,k λ是k G 的最小特征值。
2)若k k d h ≥,则k
k
k
d s s d =是信赖域子问题的可行解。
()()()2
2
2
2
()()1
2
1
2
k k k k
k k k k
k
T T k k k k k
k k
k k T T k k k k k k
k k
k k
d q f q s f q s d d g d G d s s d d d G d d G d s s d d ∆=-≥-≥--=-
1k
1k +
k
2k
10.25k r ≥ 0.25
r <
0.25r ≥
21
()21
()212T k k k k k k k k
k k k k k k k d G d s s h d d s d G s λλλ≥≤≤≥
≥由是的最小特征值 综合1)与2)可知,在任何情况下,都有2
()
12
k k k q
s λ∆≥。
又由 2
()
()k k k
f q o s ∆=∆+
得 2
()()
()11k k
k k k o s f r q q
∆==+→∆∆ (*) 这与0.25k r <矛盾,从而子序列不属于第一种情形,而属于第二种情形。
故 1, glb()0k k K h ∀∈> (注:到现在为止,结论还仅限于子序列) 若对子序列中的某个充分大的k ,有
01
min{glb(),}2
k k x x h ε∞-≤
这里0ε由牛顿收敛定理中要求初始点k x 充分靠近x ∞
的条件:0k x x ε∞-<所确定。
注意到牛顿法
收敛定理的条件现在全部满足,k x 为初始点。
由于 11k k k k x x G g -+=-
满足 1k k x x x x ∞∞
+-<- (由牛顿收敛定理的证明) 而且由
11k k k k k x x x x x x h ∞∞
++-≤-+-<
知1k x +在信赖域k Q 中,因而此时信赖域算法蜕变为牛顿算法。
故而对整个序列有k x x ∞→。
注意到:
10k k k s x x +=-→
及(*)式知1k r →。
由信赖域半径的自适应调整规则,当k 充分大时,始终有k h 单调增,故有
glb()0k h > (注意这里是对整个序列,而不仅指子序列)。
而且k 充分大时,总有k k s h <。
此时,信赖域算法完全蜕变为牛顿算法,故有二阶收敛速度。
注:这个定理的证明过程知,信赖域算法在迭代后期,将自动转化为牛顿算法,因而具有二阶收敛速度;而在算法的开始阶段,对初始点无特殊要求,因而具有全局收敛性质。
三、关于信赖域子问题最优解的条件
在下面的讨论中,均采用2l 范数。
定理3.12 考虑二次函数
1()2
T
T
k k k k q s f g s s G s =++ 其中k G 为n n ⨯对称矩阵。
则
(1)()k q s 有极小点当且仅当k G 为半正定,且k g 属于矩阵k G 的值空间,即{|}n k k g G s s R ∈∈; (2)()k q s 有惟一极小点当且仅当k G 正定;
(3)若k G 为半正定,则方程k k G s g =-的每个解均为()k q s 的全局极小点。
证明:(1) 假定k G 为半正定,且k g 属于k G 的值空间。
即存在n
s R ∈,使得k k g G s =,
令 *
s s =-, 则有 *k k k G s G s g =-=-。
显然,n
w R ∀∈ 有
*
*
*
1()()()2
T
T
k k k k k q s w q s G s g w w G w +=+++ *
*1()()2
T
k k k q s w G w q s =+
≥ (*) 故*
s 是()k q s 的(全局)极小点。
反之若*
s 是()k q s 的极小点,则满足极小点的二阶必要条件: **()0k k k q s G s g ∇=+=,且2*()k k q s G ∇=半正定,(1)得证。
(2)注意到:当且仅当k G 正定时,(*)对一切0w ≠,成为严格不等式。
故()k q s 有惟一极小点当且仅当k G 正定。
(3 再注意到(*)当ˆ0k k G s g +=及k G 半正定时总成立,故当ˆs 满足ˆk k G s g =-时,也是()
k q s 的极小点。
定理3.13 考虑信赖域问题:
1min ()2
T
T
k k k k q s f g s s G s =++
.. k s t s h ≤ (1)
则*n s R ∈为该问题解的充要条件是*k s h ≤,且存在*
0v ≥,使得:
**()k k G v I s g +=- ,**
()0k v h s -=,
且*k G v I +半正定。
证明: 充分性: 设有*k s h ≤及*
0v ≥,使得
**()k k G v I s g +=-,**
()0k v h s -=,
且*k G v I +半正定。
由前一定理,可知*
s 是二次函数
*1
ˆ()()2
T T k k k k q
s f g s s G v I s =+++ 的极小点。
因此,对一切n
s R ∈,有
*ˆˆ()()k k q s q s ≥
从而有 ****
**11()222
T
T T T T T k k k k k k v f g s s G s f g s s G s s s s s ++≥+++- (2)
由 **()0k v h s -=⇔2
*2*()0k v h s -= ⇔****2
T k v s s v h =
及*
0v ≥,由(2)知,当k s h ≤时,有
*()()k k q s q s ≥。
即*
s 为信赖域问题的解,充分性得证; 必要性:设*
s 是(1)的解,
(a) 若*k s h <,则*s 是()k q s 的无约束极小,故k G 半正定。
取*0v =,即知*s ,*
v 满足所有条件; (b) 若*k s h =,则*
s 也是等式约束问题
1min ()2
T
T
k k k k q s f g s s G s =++
..s t 2T k s s h = (3) 的解。
因此,由条件极值的拉格朗日乘子法,存在*
v ,使得Lagrange 函数
*2()()()2
T
k k v L s q s s s h =+-
的梯度在*
s 处为0,即:
*******()()0k k k L s q s v s g G s v s ∇=∇+=++=
可见,*
v 与*
s 满足:
****(), ()k k k G v I s g v h s +=-- (4)
下证:*0v ≥及*k G v I +半正定。
由于*
s 是(1)的解,故当*s s =时,(2)式成立。
由(4)式,
在(2)中用**()k G v I s +代替k g -,并整理得
***1
()()()02
T k s s G v I s s -+-≥ 即对任意的n
s R ∈,当*s s =时,有
***1
()()()02
T k s s G v I s s -+-≥ 由此可证:n
w R ∀∈,有
*()0T k w G v I w +≥
从而*k G v I +半正定。
现证*
0v ≥。
假定*
0v <,则由*k G v I +半正定,k G 必正定,且其最小特征值*0n v λ≥->。
令 1ˆk k s
G g -=- 则ˆs
为()k q s 的唯一的无约束极小。
由于*
s 满足 **()k k G v I s g +=-
故 *1*ˆ()k s
I v G s -=+。
而*1k I v G -+的最大特征值为
*
1
11v λ+
<,
又 *
*
1
110n
v v λλ+
≥+
≥
故 *1**ˆk k s
I v G s s h -=+<= 即ˆs
也是(1)的唯一极小点,这与*
s 为(1)的极小点矛盾。
故必有*
0v ≥。
注:以上所说极小点均指全局最小点。
推论 问题(1)没有满足k s h =的解,当且仅当k G 为正定,且1
k k k G g h -<。
证明:若k G 正定,且1k k k G g h -<,则1
k k s G g -=-是()k q s 唯一的无约束极小点。
而它又是(1)
的可行解,故它也(1)唯一极小点,因而在边界上不再有其它解。
反过来,若(1)在边界上无解,故(1)的解均在约束域内部(因为(1)总是有解的),设*
s 是
(1)的解,且*k s h <,由定理3.13知:存在*
0v ≥,使得
**()k k G v I s g +=- ,**()0k v h s -=,
且*k G v I +半正定。
而由*
k s h <知,必有*0v =,且k G 半正定。
这时若k G 为奇异的,则存在
0y ≠,使 0k G y =,且 *k s y h +=
于是*s s y =+满足
, k k k G s g s h =-=。
取0v =,则s 与v 满足定理3.13的充分性条件,故s 是(1)的解。
但它在边界上,与其在边界上无解的条件矛盾,故k G 非奇异。
因而k G 必正定。
再由*
k s h <,
因而*
s 也是()k q s 的无约束极小,故有*()0k q s ∇=,即
*k k G s g =-
或 *1
k k s G g -=-
因而有 1
k k k G g h --<。
注:由以上分析可知:若k G 正定,且1k k k G g h --<,则1
k k s G g -=-为(1)的解。
否则(1)必有
一解在边界上,由定理3.13,应存在参数0v ≥,使得k G vI +半正定且使
()k k G vI s g +=-
的解*
s 满足:*k s h =。
四、 Levenberg-Marquardt 方法
上面一般地讨论了信赖域方法的算法模式并证明了算法的收敛性定理。
而关于如何求解信赖域
子问题尚未涉及,因而仅是算法模式而不是具体算法,下面给出几种具体的信赖域算法。
根据上一段关于信赖域子问题解的最优性条件的讨论,我们知道对信赖域问题: 1min ()2
T
T
k k k k q s f g s s G s =++ .. k s t s h ≤
*n s R ∈是其最优解的充要条件是*k s h ≤,且存在*
0v ≥使得: ****
(), ()0,k k k k G v I s g v h s +=--=
且*k G v I + 半正定。
基于上述结果,Levenberg-Marquardt 算法的核心思想是每次确定一个0k u ≥,使k k G u I +正定,然后求解
()k k k k G u I s g +=-
确定k s ,并令信赖域半径 T k k k h s s =。
Levenberg-Marquardt 算法
1)初始步:给出00, 0x u >,置:0k = 2)第k 次迭代
(1) 对给出k x 和k u ,计算k g 和k G ,若k g ε<,stop 。
(2) 检验k k G u I +是否正定。
若不正定,置:4k k u u =,重复这一过程直到k k G u I +正定。
(3) 由()k k k G u I s g +=-计算出k s 。
(4) 求()k k f x s +,()()k k q s 和k r 的值。
(5) 若0.25k r <,置1:4k k u u +=;若0.75k r >,置1:/2k k u u +=; 否则,置1:k k u u +=。
(6) 若 0k r ≤,置1:k k x x +=;否则,置1:k k k x x s +=+。
(7) 令:1k k =+,go to (1)。
注:1)在每次迭代中k u 以试探的方式获取。
2)信赖域子问题的最优解总在信赖域边界上达到,因为k h 不是事先确定,而是以2
T k k k h s s =
的方式确定的,这一点与模式算法存在技术细节上的差别。
3)由1()k k k k s G u I g -=-+,可以证明
1
2()()k k u s G uI g η-==+
是u 的下降函数,即u 越大,2s 将越小。
事实上,由
()u η=。