View
358
Download
1
Category
Preview:
DESCRIPTION
第四章 无约束非线性问题的解法. 本章要点: 最速下降法的基本思想及特点 牛顿方向 Newton 法基本思想及特点 共轭方向、共轭方向法的基本定理 共轭梯度法基本思想 拟 Newton 法的基本思想. 学习的重要性:. 1 、 直接用于无约束的实际问题;. 2 、 其基本思想和逻辑结构可以推广到约束问题;. 3 、 约束问题可以转化成无约束问题求解。. 方法分类:. 1 、间接法: 对简单问题,求解必要条件或充分条件;. 直接法. 零阶法:只需计算函数值 f ( x ). 2 、迭代算法:. 一阶法:需计算 ▽ f ( x ). 梯度法. - PowerPoint PPT Presentation
Citation preview
本章要点:最速下降法的基本思想及特点牛顿方向Newton 法基本思想及特点共轭方向、共轭方向法的基本定理共轭梯度法基本思想拟 Newton 法的基本思想
第四章 无约束非线性问题的解法
min ( )nx R
f x
学习的重要性:
1 、直接用于无约束的实际问题;
2 、其基本思想和逻辑结构可以推广到约束问题;
3 、约束问题可以转化成无约束问题求解。
方法分类:
1 、间接法:对简单问题,求解必要条件或充分条件;
2 、迭代算法:零阶法:只需计算函数值 f(x)
一阶法:需计算 ▽ f(x)
二阶法:需计算 ▽ 2f(x)
直接法
梯度法
本章主要介绍无约束最优化方法,它的应用比较广泛,理论比较成熟。另一方面,通常可以把一些约束优化问题转化为无约束问题来处理,所以它是最优化方法中的基本方法。
这些方法通常要用到函数的一阶或二阶导数。
在实际问题中,也常遇到函数的解析表达式比较复杂,有的甚至写不出明显的解析表达式,因而导数很难求出或无法求出,这时基于梯度的方法不能用,需要采取另一种所谓的直接法(或直接搜索法)。直接法是仅仅利用函数值的信息,去寻找最优解的一类方法。在后面第九章有介绍。
考虑无约束优化问题:
min ( )nx R
f x
直接搜索法收敛速度一般比较慢,需要计算大量的函数值。梯度反映了函数值变化的规律,充分利用梯度信息构造算法,能加速收敛。
使用函数的梯度(一阶导数)或 Hesse 矩阵(二阶导数)的优化算法统称为梯度法。
算法目标:求出平稳点 (满足 f(x)=0 的 x * )。
由于 f(x)=0 一般是非线性方程组,解析法往往行不通, 所以梯度法通常是逐次逼近的迭代法。
假定: f(x) 和 2f(x) 连续存在
§4.1 最速下降法 (Cauchy 法 )
(一)基本思想
x(k+1) = x(k) + tk d(k)
x(k)
x*
d(k) = - f(x (k) )
x(k+1)
d(k+1) = - f(x (k+1) )
瞎子下山:由于他看不到哪里是山谷,不可能沿直接指向山谷的路线走,他只能在当前位置上,靠手杖作局部探索,哪里最陡就往哪里前进一步,然后在新的位置上再用手杖寻找最陡方向,再下降一步。这就是最速下降法的形象比喻。
?
多变量最优化迭代解法的一般迭代公式:
可用一维搜索技术解决关键是如何确定搜索方向 d(k)
最速下降法迭代公式 x(k+1) = x(k) - tk f(x(k)
)
1847 年 Cauchy 提出。特点是直观易懂,但收敛速度慢。
下面看一下理论推导:设函数 f(x) 在 xk 附近连续可微,且 gk= f(xk) ≠0 ,由 Taylor 展式
( ) ( ) ( ) ( ) ( )k k T k kf x f x x x f x o x x
可知,若记 x-xk=tdk ,则满足 (dk)Tgk<0 的方向 dk 是下降方向。当 t 取定后, (dk)Tgk 的值越小,即 - (dk)Tgk 的值越大,函数下降的越快。由 C
auchy-Schwartz 不等式
当且仅当 dk=-gk 时, (dk)Tgk 最小,从而 -gk 是最速下降方向。
kT k k kd g d g
最速下降法的迭代格式为:
( 1) ( ) ( ) ( )k k kkx x t f x
(二)算法 开始
给定 x(0) , M , 1 , 2 , 令 k=0
计算 f( x(k ) )
||f( x(k ) )|| < 1
否
k>M
x*=x(k)是 结束
是
一维搜索求 tk
精度为 2
否
x(k+1) = x(k) - tk f(x(k) )
k=k+1
0( ) min ( )k k k k
k tf x t g f x tg
(三)最速下降法的搜索路径呈直角锯齿形
定理 4.1 设从点 x(k) 出发,沿方向 d 作精确一维搜索, tk 为最优步长因子,即
f(x(k) + tk dk) = min f( x(k) + t dk)
则成立 f(x(k) + tk d) T d =0,
即新点处的梯度与搜索方向垂直。
即
t>0
( 1) ( )( ) ( )k kf x f x
x(k+1)
d(k)
x(k)
f(x)等值面
f(x (k+1) )
tk
d(k+1)
二维情形下最速下降法搜索路径:
由此可以看出,最速下降法仅是算法的局部性质。对于许多问题,全局看最速下降法并非“最速下降”,而是下降的较缓慢。数值试验表明,当目标函数的等值线接近于一个圆(球)时,最速下降法下降较快,而当目标函数的等值线是一个扁长的椭球时,最速下降法开始几步下降较快,后来由于出现“锯齿”现象,下降就比较缓慢。
x(0)x(1)
x(2)
f(x(k+1)) T dk =0 ,
即 f(x(k+1)) T f(x(k)) =dk+1Tdk =0 ,
这表明在相邻的两个迭代点上函数 f(x) 的两个梯度方向是互相直交的,即,两个搜索方向互相直交,这就产生了锯齿形状。当接近极小点时,步长愈小,前进愈慢。
这就造成了最优步长的最速下降法逼近极小点过程是“之”字形,并且越靠近极小点步长越小,移动越慢,以至在实际运用中在可行的计算时间内得不到需要的结果。
这似乎与“最速下降”的名称矛盾。其实不然,因为梯度是函数局部性质,从局部看,函数在这一点附近下降的很快,然而从整体看,则走过了许多弯路,因此反而是不好的。
其原因就是精确一维搜索(最优步长)满足
2 21 2min ( ) 25f x x x
0 2,2T
x 0 0104, 4,100T
f x f x
1x 0f x 0x ( )f x
0 00min f x f x
2 2
0min{ 2 4 25 2 100 } min ( )
'( ) 8(2 4 ) 5000(2 100 ) 0
0
6260.02003072
31252
为了清除最优步长最速下降法中两个搜索方向正交的不良后果,人们发现了不少方法,如:(1) 选择不同初始点
例:问题:
取初点
为求 , 沿 方向从 出发求 的极小点
即进行线搜索
则
解得
21 0 0 0 1.919877 0.3071785 10
Tx x f x
1( ) 3.686164.f x
然后再从 开始新的迭代,经过 10 次迭代,得最优解 计算中可以发现,开始几次迭代,步长比较大,函数值下将降较快但当接进最优点时,步长很小,目标函数值下降很慢。如果不取初点为 而取
1x * (0,0)Tx
0 (2,2)Tx
0 (100,0)Tx * (0,0)Tx
0 00 1 2
2 2
0 1 0 0 0
2 ,50 200,0
100 200 25 0 0 400 100 200
1, 0,0
2
T
T
f x x x
d
d
x x f x
一步就得到了极小点。
虽然后一初点较前一初点离最优点 远,但迭代中不会出现上面的锯齿现象。这时:
1
kk k k
k
f xf x f x f x
f x
( 2 )采用不精确的一维搜索:用一维搜索求出的步长为 时,我们不取 ,而用 的一个近似值作为 , 这样可使相邻两个迭代点处的梯度不正交,从而改变收敛性。
可见:造成距齿现象与初始点的选择有关,但怎样选一个初始点也是一件困难的事。
*k *
k
对于最速下降法,有时为了减少计算工作量,不采用直线搜索确定步长,而采用固定步长 λ 的方法,称为固定步长最速下降法。只要 λ 充分小,总有:
但 λ 到底取多大,没有统一的标准, λ 取小了,收敛太慢,而 λ 取大了,又会漏掉极小点。——不精确线搜索解决这个问题
*
(四) 收敛性分析
定理 4.2 设目标函数 f (x) 一阶可微,且水平集 有界,则最速下降法或者在有限步迭代后终止;或者得到点列 ,它的任何极限点都是 f (x) 的驻点。
00 ( ) ( )G x f x f x
{ }kx
证明:见文中定理 4.1 的证明
推论 4.1 如果函数 f (x) 为凸函数,则应用最速下降法,或者在有限步迭代后终止;或者得到点列 的任何极限点都是全局极小点。
下面讨论最速下降法用于二次函数时的收敛性分析。
{ }kx
证明:见课本 P69 推论 4.2
用于二次函数时的收敛性分析
1
1
1n
n
q
并且
211
1
( ) ( ) ( )nk k
n
f x f x
10
1 1
|| || || ||
k
n nk
n
x x
0x{ }kx 0k
定理 4.3 :对于二次函数 Q 为对称正交, 分别为其最小最大特征值,从任意初点 出发,对此二次函数,用最速下降法产生的序列 ,对于 有
12( ) ,Tf x x Qx
1 2,
由于 0kx ,则
而函数 的极小点恰好是 。故最速下降法对于二次函数关于任意初点均收敛,而且是线性收敛的。
1( )
2Tf x x Qx * 0x
1
2
0
0Q
2 21 1 2 2
1 1( )
2 2Tf x x Qx x x
2 1 0
1 2,f x x c
2 21 2
2 2
1 2
12 2
x x
c c
这个函数的等值线为 (c> 0) ,改写为:
其中
下面说明最速下降法收敛 性的几何意义。考虑具有对称正定矩阵的函数
1
2c
2
2c
1 2
1 2
2
2c
2
2c
0x
1x
这是以 和 为半轴的橢圆,从下面的分析可见 两个特征值的相对大小决定最速下降法的收敛性。
( 1 )当 时,等值线变为圆
此时
因而由上述定理知:
2 1
2 1
0q
1 10 0 || || 0x x
即只需迭代一步就到了极小点,这表明最速下降法用于等值线为圆的目标函数时,从任意初始点出发,只需迭代一步就到了极小点。
1x
2x
1x
2x
( 2 )当 时 , 等值线为椭圆。此时对于一般的初始点将产生锯齿现象。
( 3 )当 , 等值线是很扁的椭圆,此时
2 1
2 1
1q
1 2
0x
1x
2x
对于一般的初始点收敛速度可能十分缓慢,锯齿现象严重。
(五)优缺点
1 、优点:计算简单,需记忆的容量小;对初始点要求低,稳定性高;远离极小点时收敛快,常作为其它方法的第一步。
2 、缺点:收敛速度较慢(线性或不高于线性)。原因是最速下降方向只有在该点附近有意义。
最速下降方向只是局部下降最快的方向,在全局来看,下降速度是比较慢的。尤其当目标函数等值面是很扁的椭圆、椭球或类似图形时,收敛更慢。
例 4.1 用最速下降法求函数 f (x1, x2)= x12+4x2
2 的极小点,(迭代两次), 并验证相邻两个搜索方向是正交的。初始点取为 x(0)=[1,1]T 。解:梯度 f (x)= [2x1, 8x2
]T 。
1. 第一次迭代:f ( x(0) )= [2, 8 ]T , x(1) = x(0) + t0
p(0) = x(0) - t0 f (x(0))= [1,1]T - t0
[2,
8 ]T
用一维搜索求 t0 ,对简单 f(x) ,可用解析法求解:
’0(t)= 520t - 68= 0 t0 = 0.130769
x(1) =[0.738462, -0.046152]T
设 0 (t)= f ( x(1) )= f ( [1,1]T - t[2, 8 ]T )= (1 - 2t)2+4(1 - 8t)2
2. 第二次迭代: f ( x(1) )= [1.476924, - 0.369216 ]T
x(2) = x(1) - t1 f (x(1)) = 0.738462 - 1.476924t1
- 0.046152+0.369216t
11(t)= f ( x(2) )= (0.738462 - 1.476924t)2+4( - 0.046152+0.369216t)2
’1(t)=- 2.317625t+5.453173t= 0 t1 = 0.45005
x(2) =[0.110762, 0.110767]T
f ( x(2) )= [0.221524, 0.886136 ]T
3. 验证相邻两个搜索方向是正交的:
f (x(0))T f (x(1)) =[2, 8] [1.476924, - 0.369216 ]T =0.00012 0
f (x(1))T f (x(2)) = [1.476924, - 0.369216 ] [0.221524, 0.886136 ]T =0.000001 0
2 21 2( ) 10f x x x
-1.5 -1 -0.5 0 0.5 1 1.5-15
-10
-5
0
5
10
15
-2 0 2-15
-10
-5
0
5
10
15
建议大家对二次函数编程实践 ( 无需集成一维搜索算法 )
建议大家对一般函数结合一维搜索方法编程实践 .
§4.2 Newton 法(二阶方法)
?由最速下降法可知,从全局角度来看,负梯度方向一般不是一个特别好的方向,有没有更好的方向 ?
( ) ( ) 2 ( ) 31( ) ( ) ( ) ( ) ( )
2k k T T kf x f x f x x x f x x o x ( )( ; )kf x x
f(x) 在 x(k) 处的二次近似函数
(一)基本 Newton 法
取 f(∆x; x(k)) 的平稳点作为 f(x) 最优点的一个近似点令 f (∆x; x(k)) = f (x(k))+ 2f (x(k))x = 0
设函数 f(x) 的 Hesse 矩阵可逆,由上式可得:
设函数 f(x) 是二次可微函数, ,nx R 又设函数 x(k) 是 f(x) 的极小点的一个
估计,我们把设函数 f(x) 在 x(k) 展成 Taylor级数,并取二阶近似:
x - x(k) = x = - 2f (x(k)) - 1f (x(k))
Newton 法迭代公式:
x(k+1) = x(k) - 2f (x(k)) - 1f (x(k))
x(k)
f(x(k))
f(x; x(k))x(k+1)
或 x(k+1) = x(k) - H(x(k)) - 1g(x(k))
- H(x(k)) -
1g(x(k))
! 当 f(x) 是二次函数时,一次迭代就可达到平稳点 !
! 当 f(x) 是单变量函数时,本方法即为一维搜索的 Newton 法!
这样,知道 x(k) 后,算出在这一点处目标函数的梯度和 Hesse
矩阵的逆,代入便得到后继点x(k+1) 。
Newton 法的二次终止性设有二次凸函数 f(x)=1/2xTAx+bTx+c 其中 A 对称正定矩阵。
我们先用极值条件求解。令
( ) 0f x Ax b
得最优解: * 1x A b
下面用 Newton 法求解。任取初始点 x(1) ,根据 Newton 法迭代公式有:(2) (1) 1 (1)
(1) 1 (1)
1
( )
( )
x x A f x
x A Ax b
A b
显然, (2) * 1x x A b
即一步迭代达到最优解。
以后还会遇到一些算法,把它们用于二次凸函数时,类似于牛顿法,经过有限次迭代比达到极小点。这种性质称为二次终止性。
结束
基本 Newton 法的算法框图:
开始
给定 x(0) , , 令 k=0
计算 g(k) =f( x(k ) )
x*=x(k)是
p(k) = - H(x(k)) - 1g(k)
x(k+1) = x(k) +p(k)
k=k+1
否计算 H(x(k))
||g(k )|| <
例 4.2 用基本 Newton 法求函数 f (x1, x2)= 8x12+4x1x2+5x2
2 的极小点。
初始点取为 x(0)=[10, 10]T 。
解: f (x)= [16x1+4x2, 4x1+10x2 ]T
2f (x)= H(x)= 16 4
4 10
H(x) - 1 =10 - 4
- 4 16
1144
x(1) = x(0) - H(x(0)) - 1f (x(0))
10
10= - =
10 - 4
- 4 16
1144
200
140
0
0
因为 f(x) 是二次函数,所以一步迭代就达到平稳点,又因为 H(x(1)) 是正定矩阵,所以 x(1) 是极小点。
0 2,2T
x
0
10 2 0
2
2 4 2 0| ,
50 100 0 50x
xf x f x
x
11 0 2 0 0
10
2 4 0212 100 0
050
x x f x f x
* 1x x
则:
2 21, 2 1 225f x x x x 例 4.3 :用 Newton 法求 的极小点。
解:取初点
代入 Newton 迭代公式得:
此即为问题的最优点
关于 Newton 法的几点说明:
1 、基本 Newton 法要求 Hesse 矩阵具有逆矩阵。
如果 H(x(k)) 是正定的,则 H(x(k)) - 1 必存在,从而算法是可行的,并且保证求得
的平稳点是极小点。然而在迭代过程中要求 H(x(k)) 是正定的这一条件不一定能保证,只有当初始
点合适时才能满足。一般在极小点附近的 Hesse 矩阵容易为正定的。
所以基本 Newton 法在极小点附近才比较有效。
2 、 Newton 法的搜索方向- H (x) - 1f (x) 不一定是下降方向。
因为若是下降方向,则应有 f (x)T[ - H (x) - 1f (x)]<0 ,即f (x)TH (x) - 1f (x)>0 ,但由于 H (x) - 1 不一定是正定的,所以上式不一定成立。
3 、 Newton 法的最大优点是:当初始点选得合适时收敛很快,具有二阶收敛速度,是目前讲过的算法中最快的一种,且不需一维搜索。
对初始点要求高,一般要求初始点离极小点较近,否则不收敛。有时即使是收敛的,但因初始点离极大点或鞍点较近,会收敛于极大点或鞍点。
4 、方向- H (x) - 1f (x) 称为 Newton 方向,是一个好方向,对二次函数此方向直指平稳点。
对于目标函数是二次函数的无约束优化问题,从任意初始点出发,利用 Ne
wton 法一步迭代即可得到最优解,也就是 Newton 法具有二次终止性。
5、牛顿算法可视为椭球范数kG
下的最速下降算法。
nR 事实上,欧氏空间 中一般范数 下的方向导数定义为:
0
( ) ( ) ( )lim
Tkk k k T g df f x d f x f x d
d d d d
(它显然与范数 有关)
min
n
Tk
d R
g d
d( )f x kx
显然, 的最优解就是函数 在 处对应于范数
的最速下降方向。容易理解,这个解与所取的范数有关。
a) 当取欧氏范数( 2范数)时,可证 k kd g 是最速下降方向;
kG 1k k
kd G gb) 若取椭球范数 ,最速下降方向则为
事实上,
1 1
1
1
( , )k
k k k
kk
k
k
T Tk k kk k k G
G G G
kk GG k
k GG
g d g G G d G g d
d d d
G g dG g
d
nd R
1
k
k
Tk
kk G
G
g dG
dg
1
k
kk G
G g
即 ,有
(意味着 为方向导数下界)
1k kkd G g
1 1 1
2
1
( ) ( )
k k k
k
k k
k
T Tk k k k T kk k k k
G G G
G kkG G
G
g d g G g G g G G g
d d d
dd G g
d
1
k
kk G
G g 1k k
kd G gkG
另一方面,若取 时
方向导数达到下界 ,故 是对于椭球范数
下的最速下降方向。
min ( )nx R
f x
( ) 0f x
kx ( ) 0kf x kx
( )f x kx
2( ) ( ) ( )( ) 0k k kf x f x f x x x
( ) 0f x
2 1( ) ( )k k kx x f x f x
1 2 1( ) ( )k k k kx x f x f x
6 、牛顿算法实际上是非线性方程组的牛顿迭代法。
等价于求解非线性方程组
设 是当前迭代点,若 ,则 是方程组的解,否则将
在 处线性化,得
将上述线性方程组的解作为 的近似解,得
故有
这恰好就是牛顿迭代公式。
由于求解
若
由以上分析可知,固定的步长因子不能保证目标函数有合理的改善,甚至不能保证算法下降,因此有必要对牛顿算法作一些改进,一个最直接的改进是:在牛顿算法中加入一维搜索。
(二)修正 (阻尼 )Newton 法
? 怎样才能使 Newton 法成为一个下降算法 ?
修正 Newton 迭代公式: x(k+1) = x(k) - tk H(x(k)) - 1f (x(k))
沿 Newton 方向一维搜索得到的最优步
长
保证了 f(x(k+1)) ≤f(x(k)) ,
且不必要求 H(x) 为正定矩阵。
? 出现 (1) H(x(k)) - 1 不存在;或 (2) tk =0 时怎么办 ?改用最速下降法 ,即 p(k) = - f (x(k))
修正 Newton 法与基本 Newton 法的优点是:
缺点:要求计算 Hesse 矩阵及其逆矩阵,计算量大,尤其当维数 n 较大时。收敛快,程序简单。前者更实用可靠。
结束
阻尼 Newton 法的算法框图:
开始
给定 x(0) , , 令 k=0
计算 g(k) =f( x(k ) )
x*=x(k)是
一维搜索求 tk
x(k+1) = x(k) + tk p(k)
k=k+1
否计算 H(x(k)) ,若可逆 p(k) = - H(x(k)) - 1g(k);否则 p(k) = - g(k);
||g(k )|| <
0( ) min ( )k k k k
k tf x t p f x tp
0 1 2max 2 ,2 ,2 , , . .
( ) ( ) ( )
k
k k k k T kk k
t s t
f x t p f x t p g
常用如下 Armijo 不精确搜索
2 ( )f x
00 ( ) ( )G x f x f x
kx ( )kf x
kx *x
证明:见文 P70 中定理 4.3 的证明 .
阻尼 Newton 法的收敛性
定理 4.4 设 f (x) 存在连续二阶偏导数,函数的 Hessian 矩阵 正定 , 且水平集 有界,则阻尼牛顿法或者在有限步迭代后终止;或者得到的无穷点列 有如下性质
1 ) 为严格单调下降序列;
2 ) 有唯一极限点 ,它是 f (x) 的最小点。
Newton 法与最速下降法结合 (1)——Marquart法最速下降法的优点:对初始点要求不高,稳定性好;远离最优点时收敛较快。
缺点是离最优点较近时收敛很慢。
牛顿法的优缺点刚好与最速下降法相反。
1963 年 Marquardt 提出将最速下降法与 Newton 法结合,开始用最速下降法,
在接近最优点时用 Newton 法。
在迭代公式 x(k+1) = x(k) +tk p(k) 中,取步长 tk= 1 ,搜索方向为
p(k) =- [2f (x(k)) +kI] - 1f (x(k))
其中 k同时起控制搜索方向和步长的作用, I 为单位矩阵
(1) 开始阶段取很大,如 0=104 ,p(0) =- [2f (x(0)) +0I] - 1f (x(0)) - f (x(0)) 1
0
(2) 在迭代过程中,让 k0 ,
p(k) - 2f (x(k)) - 1f (x(k))
(一)方法思想
最速下降法
Newton 法
具体在每一步是否缩小 k ,要通过检验目标函数值来决定 :
若 f(x(k+1)) < f(x(k)) ,取 k+1 < k ; 否则,取 k+1=k, >1 ,重作第 k 步迭代。
(二)算法 开始
给定 x(0) , M , , 令 k=0 , 0=
104
x*=x(k)是 结束
p(k) = - [2f (x(k)) +kI] - 1f (x(k
))
否
否
k>M是
计算 f( x(k ) )
|| f( x(k ) ) || <
x(k+1) = x(k) +p(k)
f(x(k+1)) < f(x(k))
k+1= 0.5k , k=k+1
是
否 k= 2k
I 可推广为半正定矩阵
若 [2f (x(k)) +kI] - 1
不存在
x(k+1) = x(k) + tkp(k)
取 d(k)= -[▽2f(x(k)) ]-1 ▽f(x(k)) , ▽ 2f(x(k)) 正定 - ▽f(x(k)) ,否则采用下列不精确一维搜索:求 λk , 满足 Goldstein准则
1° f(x(k)+λkd(k)) ≤ f(x(k))+ δλk▽f(x(k)) Td(k)
2° f(x(k)+λkd(k)) ≥f(x(k))+ (1-δ) λk ▽f(x(k)) Td(k)
其中 δ (0,1∈ / 2) 特点:在一定条件下, G-P 法全局收敛。但当▽ 2f(x(k)) 非正定情况较多时,收敛速度降为接近线性。
Newton 法与最速下降法结合 (2)——Goldstein-Price 方法 (G-P法 )
最速下降法,计算步骤简单,开始几步收敛较快,但往后收敛速度越来越慢;在最优解的附近,牛顿法以及修正牛顿法收敛速度快,但需要计算 Hesse 矩阵及其逆矩阵,计算量和存储量都很大。
§4.3 共轭方向法
因此人们希望能找到一种好的算法,它的收敛速度介于最速下降法与牛顿法之间,这种算法能够具有牛顿法收敛速度快的优点,又有最速下降法计算简单的优点,并且不需要计算 Hesse 矩阵的逆矩阵,对于二次函数只需有限次迭代就能达到最优解。
这就是我们要讨论的共轭方向法。
共轭梯度法就是其中一种,它是利用梯度生成共轭方向的共轭方向法。
(一)共轭方向
下面我们先从几何上直观地介绍共轭方向,然后再给出严格的定义。
A
p1
C
D
p1
B
如图所示, AB , CD过椭圆的中心, CD 平行于椭圆上在点 A , B 的切线,在几何上称 AB与 CD 为共轭直径。 AB与 CD 的方向称为共轭方向。
Martin 和 Tee 提出可以利用上述椭圆的(或 n 维椭球)的这种共轭性质来获得较快的收敛速度。 n=2 时,若在椭圆上两点 A , B 的切线平行,则直线 AB 必过椭圆的中心。在点 A , B 的切线方向与 AB 的方向称为共轭方向。这种共轭关系如何表示呢?有如下定理:
引理 4.4 设 f(x)=1/2xTAx+bTx+c , AT=A>0 ,给定方向 p1 ,在与 p1 平行的两条直线上(如图), f(x) 的最小点为 x1 , x2 ,则 p1
TAp2=0, ( p2
=x2-x1 )
证:因为 g1=Ax1+b , g2=Ax2+b ,则 g2-g1=A(x2-x1) ,又因为 x1 , x2 为 f(x) 在此二直线上的最小点,则
p1Tg1=0 , p2
Tg2=0 ,所以 p1T(g2-g1)=
0 ,综上可得 p1T(g2-g1)= p1
TA(x2-x1)=0 ,所以 p1
TAp2=0, ( p2=x2-x1 )。
x1 x2
p1
p2
注:该示意图说明沿任意 p1得到极小点后,沿其共轭方向 p2 必找到二维问题的极小点!
定义:设 A 是 n×n 阶对称正定矩阵,
若 A= I (单位矩阵),则 p(0)T p(1) = 0 ,即 p(0)与 p(1) 是正交的。
“共轭”是“正交”概念的推广
=||p(0)||.||p(1)||cosθ
( 1 ) p(0), p(1) 为两个 n 维向量,若成立
p(0)T A p(1) = 0
则称向量 p(0)与 p(1) 为 A共轭或 A正交,称这两向量的方向为 A共轭方向。
下面给出共轭的一般定义:
( 2 )若有一组向量 p(0), p(1),…, p(m) ,满足
p(i)T A p(j) = 0 , ( i≠j , i, j=1,2,…m )
则称向量组 p(0), p(1),…, p(m) 为 A共轭(或 A正交)的向量组。
例 1 :设
(0) (1)2 1 1 1 , , ,
1 2 0 2A p p
(0) (1) 2 1 1 1 [1, 0] [2, 1] 0
1 2 2 2Tp A p
则 p(0) 与 p(1) 是 A 共轭的。
解:因为
验证 p(0) , p(1) 为 A 共轭向量。
(二)共轭方向的性质——共轭方向法的基本定理
定理 4.5 :设 A 为 n×n 阶对称正定矩阵, p(1), p(2) ,… , p(m) 为 m个相互 A共轭
的 n 维非零向量(即 p(i)0, i=1,2,…, m, 且 p( i )T A p( j ) = 0 , i j ),
则此向量组必线性无关。
推 论: 在 n 维空间中,互相共轭的非零向量的个数不超过 n个。
引理 4.6 ( n 维直交定理) (1) 若 p(0), p(1), …, p(n-1) 是线性无关的 n 维向量组;
(2) 若 n 维向量 x 和 p(0), p(1), …, p(n-1) 都直交;
则 x=0 。
mi
i ii
p
( )
1
0 0
命题:设 A 为 n×n 阶对称正定矩阵, p(0), p(1) ,… , p(n-1) 为 n个相互 A共轭的 n 维非零向量(即 p(i)0, i=0,1,…, n-1, 且 p( i )T A p( j ) = 0 , i j ),则任意 n 维向量 x 可表示:
定理 4.6 :若 p(0), p(1), …, p(n-1) 是 n个非零的 A共轭向量,则二次目标函数
f(x) = c + bTx + 1/2 xTAx 的最优点 x* 为i Tn
ii T i
i
p bx p
p Ap
( )1
* ( )( ) ( )
0
! 可得到非二次函数最优点的一个近似点;其中 A 是 Hesse 矩阵!
? 上式用于非二次函数,可否得到最优点 ?
i Tni
i T ii
p Axx p
p Ap
( )1
( )( ) ( )
0
定理 4.7:
设 A 为 n 阶对称正定矩阵,对于二次目标函数 f(x) = c + bTx + 1/2 xTAx ,
从任意初始点 x(1) 出发,逐次进行一维搜索,即
min f ( x( i )+ t p( i ) ) = f ( x( i )+ti p( i ) ) i≥0
若搜索方向 p(1), p(2), …, p(n) 是非零的 A共轭向量,则至多进行 n 次迭代必可
得到极小点 x* ,即有 x( i+1) =x( i ) +ti p
( i ) , i =1,2,…,n
x* = x( k ) , 1≤k≤n+1
上述搜索方法具有二次收敛性
? 对非二次函数,采用上述方法, n 次迭代是否也可得到极小点 ?
? 如何简便地找出 n个 A共轭的向量 ?
定理 : 假设
1. n元函数 f(x) = c + bTx + 1/2 xTAx 中的矩阵 A 是对称正定的;
2. 向量 p(0), p(1), …, p(m-1) (m<n) 是互相 A共轭的;
3. x(0), x(1) 是不同的任意两点,分别从 x(0), x(1) 出发,依次沿 p(0), p(1), …, p(m-1)
作精确一维搜索,设最后一次一维搜索的极小点分别为 x(0)* 和 x(1)*, 那么,
向量 p = x(0)* - x(1)*与 p(0), p(1), …, p(m-1)互为 A共轭。
已知前 m个共轭方向,就可以找到第 m+1个共轭方向p(1)
x(0)
x(1)
p(0)
p(0)
x(0)*
x(1)*
x*
x(0)
x(1)
p(0)
p(0)
p(1)
p(1)
x(0)*
x(1)*
p(2)
x*
(三) Powell共轭方向法
表 4.1 Powell共轭方向法的迭代过程
阶段起点 x(k,
0)
n+1 次一维搜索过程 新共轭方向 )(~ kp
Powell共轭方向法的基本思想
)1,1(~),1()1,1()2,1()2,1()1,1()0,1()0( )0,1(),1()1()1()2()1()0(
nxxpnpnpnpp xxxxxxxx
nnn
)1,2(~),2(~)1,2()2,2()2,2()1,2()0,2()1,1( )0,2(),2()2()1()1()2()1(
nxxpnpnpnppn xxxxxxxx
nn
)1,3(~),3(~)1,3(~)2,3()2,3()1,3()0,3()1,2( )0,3(),3()3()2()1()3()2(
nxxpnpnpnppn xxxxxxxxn
)1,(~),(~)1,(~)2,()2,(~)1,()0,()1,1( )0,(),()()1()2()1()1( nnxxpnnpnnpnnnpnpnnn xxxxxxxx
nnnnnnn
…………………………………………………………………………………………………………
一边搜索,一边找共轭方向
共分 n个阶段,每一阶段都进行 n+1 次搜索,最后产生一个共轭方向
任意 n个线性无关的方向
二维空间中的 Powell 方法示意
p(0)
p(1)
e(2)
e(1)
p(0) =e(1)
p(1) =e(2)
以二次函数 f(x1 , x2 ) 为例
x(1,0) x(1,1)
x(1,2)
(1)p~p(1)
x(2,2)
(2)p~
x(2,0)
x(2,1)
x*
对于二次函数 ,x* 即为极小点
Powell 方法的原始算法框图
开始
给定 x(0) , e(1) , e(2) ,…, e(n) 及
否
x(k) = x(k, n)+λk p(n -1)
其中 λk 为最优步长
k=1, p( i ) = e(i+1), i=0, 1, …, n-1
j=0, x(k, j) = x( k-1 )
x(k, j+1) = x(k, j)+λj p( j )
其中 λj 为最优步长
j=j+1
j=n
满足精度否
k=k+1
x*=x(k+1)
结束
是
是 p( i ) = p(i+1), i=0, 1, …, n-2
( , ) ( ,0)( 1)
( , ) ( ,0)|| ||
k n kn
k n k
x xp
x x
几点说明
1 、迭代中逐次产生的是共轭方向,是较好的搜索方向,所以 Powell 法又称
方向加速法;
2 、原始算法仅有理论意义。因为只有在每次搜索均为一维完全精确搜索
的条件下,每个阶段产生的方向才是相互共轭
的方向。但实际一维搜索都是近似的,产生的方向不
一定共轭,有时甚至是线性相关的,导致搜
索空间降维,这时将找不到真正的极小点。
p(1)
x(0)
x(1)
p(0)
p(0)
x(0)*
x(1)*
x*
p’(1)
对于一般函数 , n个阶段迭代后一般得不到极小点 ,
但由于共轭方向的个数只有 n个 , 如果继续按上述
方法迭代 , 产生的方向就不再是相互共轭方向了 ,
收敛速度会变慢 .
原始 Powell 算法一种简便改进重新开始:每进行 n个阶段的迭代,或当收敛速度变慢时,以当前点为起点,
回到第一步重新开始
改进的 Powell 算法
基本思想 :
为克服搜索方向的线性相关问题, Powell 对原始算法进行了改进。
? 如何判定方向组是“最相互共轭”的 ?
在每个阶段产生新的方向 p 后 , 更换方向组的方法不是一律去掉第一个方向 p(0),
而是有选择地去掉某个方向 p(J), 原则是使新的方向组“ 最相互共轭”
n nnx x p p p 1 1 (1) (2) ( )
1 2
J ii n
1max 用新方向替换掉方向 p(J)!
详细参阅教材 P.263-276
§4.4 共轭梯度法
由 Powell 共轭方向法可知,共轭方向是好方向,是否有比 Powell 共轭方向 法更简单的方法构建共轭方向?
共轭方向的选取有很大任意性,但高维空间构造一组共轭方向却非易事!作为迭代算法,我们自然希望共轭方向能在迭代过程中逐次生成。 下面介绍一种生成共轭方向的方法,它是利用每次一维最优化所得到的点处的梯度来生成共轭方向,这种方法称为共轭梯度法,具体做法如下:
——其实教材 p.78 倒数第三行开始就讨论共轭梯度法!
共轭梯度法的基本思想 对 f(x) = c + bTx + 1/2 xTAx ,任取初始点 x(0) ,取 p(0) = - f(x(0)) ,k=0; 然后沿着已得到的共轭方向 p(k) 进行一维搜索:
x(k+1) = x(k) + tk p(k)
得下一个迭代点 , 并构造新的方向 p(k+1) = - f(x(k + 1)) + kp(k) , k=k+1返
回 !
当 f(x) 为二次函数时,至多经过 n 次迭代就可得到极小点
总结:构造共轭方向 p(0),…,p(n-1) 的方法框架是p(0) = - f(x(0))
p(k+1) = - f(x(k + 1)) + kp(k)
即下一个共轭方向是当前点处负梯度方向与已求得的最后一个共轭方向的线性组合。
p(0) = - f(x(0))
- f(x(1))
p(1) = - f(x(1))+ 0p(0)
x(0)
x(1)
! 要使得 p(0),…,p(n-1)相互共轭,
显然 k 不能随便取 !
Tk kp Ap 1 0
Tk T k k kkf x Ap p Ap 1( ) 0
k T k
k Tk k
f x Ap
p Ap
1( )
共轭梯度法的基本思想任取初始点 x(0) ,取 p(0) = - f(x(0)) , k=0; 然后沿着已得到的共轭方向 p(k) 进行一维搜索:
x(k+1) = x(k) + tk p(k)
得下一个迭代点 , 并构造新的方向 p(k+1) = - f(x(k + 1)) + kp(k) , k=k+1返
回 !理论基础—— P79页定理 4.8: 保证得到的 n个方向是 A-共轭的!
k T k
k Tk k
f x Ap
p Ap
1( )
k k k k kk Ap Ax Ax f x f x 1 1( ) ( )
k T k k
Tk k k
f x f x f x
p f x f x
1 1
1
( ) ( ) ( )
( ) ( )
k T k
Tk k
f x f x
p f x
1 1( ) ( )
( )
k T k
k T k
f x f x
f x p
1
1
( ) ( ) 0
( ) 0
211 1
2
( )( ) ( )
( )( ) ( )
kk T k
T kk k
f xf x f x
f xf x f x
k k kkp f x p 1
1( )
k T k k
Tk k
f x f x f x
f x f x
1 1( ) ( ) ( )
( ) ( )
P81页详细证明 .
P81 (4) 前面无负号 .
5
个等价的公式(
二次目标函数时)
2( 1)( 1) ( 1)
2( ) ( ) ( )
( )( ) ( )
( ) ( ) ( )
kk T k
k k T k k
f xf x f x
f x f x f x
记 g(k) =f(x(k))
F - R共轭梯度法的迭代公式:
x(k+1) = x(k) + tk p(k)
p(k+1) = - g(k) + kp(k)
k= ||g(k)||2
||g(k+1)||2
p(0) = - g(0)
以二次目标函数 f(x) = c + bTx + 1/2 xTAx 为模型,其中 A 是对称正定矩阵,从最速下降方向开始,构造一组共轭方向,经推导得:
F - R共轭梯度法
几点说明:
1 、“重新开始”的策略
原因同 Powell共轭梯度法(误差、共轭梯度的个数)
2 、何时执行重新开始步骤?
由于共轭梯度法中各搜索方向的共轭性依赖于初始方向为负梯度方向,共轭方向只有 n个,为了保证共轭方向的优越性,所以每迭代 n 步后,重新从一个负梯度方向开始。
一轮完成之后重新开始
( 1) ( )
( ) ( )
( 1)
( )
( 1) ( 1) ( )
( ) ( )
( 1) ( 1)
( ) ( )
2( 1) ( 1)
2( ) ( )
( 1)
( )
( )
( )
( ) [ ( ) ( )]( ) ( )
( ) ( )( )
( ) ( )( ) ( )
( ) [ (
T k k
k Tk k
k
k
k T k k
k k T k
k T k
k k T k
k T k
k k T k
k T
k
f x Ap
p Ap
f x
f x
f x f x f xf x f x
f x f xf x p
f x f xf x f x
f x f x
( 1) ( )
( ) ( 1) ( )
) ( )]
[ ( ) ( )]
k k
Tk k k
f x
p f x f x
对于凸二次函数,为了避免计算原问题二阶海赛矩阵,减少计算量,利用前面所得的公式,可以得到几个等价的计算公式:
——Daniel(1967)
——Polyak-Polak-Ribiere(1969)
——Myers(1972)
——Sorenson-wolfe(1972)
——Flecher-Reeves(1964)
F - R 法的算法框图
开始
给定 x(0) ,
||g(k+1 )|| <
否k=0 , p(0)= -g(0)
x*=x(0)是 结束
g(0) =f( x(0 ) )
||g(0)|| <
x(k+1) = x(k) + tk p(k), g(k+1) =f(x(k+1 ))
其中 tk 为最优步长
x(0)=x(k+1)
g(0)=g(k+1)
是
否ak = ||g(k+1)||2 / ||g(k )||2
p(k+1) = - g(k) + kp(k)
k=k+1
x*=x(k+1)是
结束k = n
否
例 4.2 用 F - R共轭梯度法解 min f (x)= 60 - 10x1 - 4x2 +x12 +x2
2 - x1
x2
初始点取为 x(0)=[0, 0]T 。解: f (x)= [ - 10+ 2x1 - x2, - 4+ 2x2 - x1 ]
T p(0)= - g(0) =- f (x (0))= [10, 4]T
进行一维搜索,对简单 f(x) ,可用解析法求解:f (x(1))= f (x(0)+ t p(0))= f (x)|x=[10t, 4t]T = 60 - 116t+76t2
f ’(t)= 152t - 116= 0 t0 = 0.76315789
x(1) = x(0) + t0 p(0) =[7.63157894, 3.052631578]T
g(1) = f (x (1))= [2.21052631, - 5.52631579]T
a0= ||g(1)||2 / ||g(0 )||2 =35.42659277 / 116
p(1) = - g(1) + 0p(0) =[0.84349308, 6.747922437]T
再用解析法求最优步长 t1 得t1
= 0.436781609
x(2) = x(1) + t1 p(1) =[7.999999993, 5.999999997]T
g(2) = f (x (2))= [0, 0]T
所以, x* = [8, 6]T f * = 8
共轭梯度法评注
1 、共轭梯度法的优点是不必计算 Hesse 矩阵及其逆矩阵,程序简单,对大规模问题很有吸引力。对凸二次函数最多 n 步终止,而对一般函数为超线性收敛。
2 、收敛速度依赖于一维搜索的精确性及 Hesse 矩阵的特征值的分布。
对一般函数的共轭梯度法注意问题
把前面的共轭梯度法推广到对于一般函数的共轭梯度法,需要注意的几点 :
1. 步长 λk 不能够用前面的公式计算 , 用其他的一维搜索方法来确定。
4. 一种方法是直接延续,一直利用我们的方法做下去,即到了 n 步仍然不停止,直到满足了停止条件。
3. 用这种方法求任意函数的极小点,一般来说,有限步迭代是达不到的。所以需要采取一些策略。
2. 凡用到矩阵 A 的地方, 需要用现行点处的海赛矩阵▽ 2f (x(k))
5. 另一种方法是把 n 步作为一轮,每搜索一轮后,取一次最速下降方向,开始下一轮。这种策略称为“重新开始”或“重置”。 ——更常用由于共轭梯度法中各个搜索方向的共轭性依赖于初始方向为负梯度方向,共轭方向只有 n个,为了保持共轭方向性,所以每次迭代 n 步后,重新从一个负梯度方向开始。另外由于每次计算的 λk 和 βk 不精确,所以有积累误差,它影响到算法的收敛性,通常为了避免积累误差,所以重新开始整个算法。
6. 对于一般函数时,前面的几种共轭梯度法计算 βk得到的搜索方向是不同的,所以不是等价的。经验证对于二次凸规划,一般用 FR 方法,对于一般函数利用 PPR 方法。
7. 利用非精确一维搜索方法 ( 1 )得到的方法有可能不是下降方法,当不是下降方向的时候,
用最速下降方向重新开始。但是这样的重新开始可能使大量的,因此会降低计算效率。
( 2 )利用一个下降的原则去控制。
算法的收敛性分析 :
2 ) 的任意极限点 都是 f (x) 的最优解。
00 ( ) ( )G x f x f x kx
( )kf x
kx *x
证明:见文中 P.85 定理 4. 10 的证明
lim ( )k
kf x
定理 4.10 设 f (x) 存在连续一阶偏导数,且函数为凸函数,且水平集
有界,则由共轭梯度法得到的点列 有如下性质
1 ) 为严格单调下降序列,且 存在;
§4.5 拟 Newton 法(变尺度法)Newton 法的最大优点是靠近极小点时收敛速度快,主要缺点是要计算 Hes
se 矩阵及其逆矩阵,计算量大 .
? 有没有可能既保持 Newton 法快速的优点,又不计算 Hesse 矩阵及其逆矩阵 ?
牛顿方向: p(k) = - 2f(x(k)) -1g(k) 近似为 p(k) = - H(k) g(k)
H(k) 称为尺度矩阵,且迭代过程中 H(k) 是变化的,该算法为变尺度法 ;
只要 H(k)正定,方向必是下降方向 ;
若变化 H(k) 不断近似于 2f(x(k)) -1 ,则算法可以保持牛顿法的快速收敛的优势!
思想:
1959 年 Davidon 提出变尺度法, 1963 年经 Fletcher 和 Powell改进,形成 D
FP 法 ; 1970 年 Broyden等人提出更稳定的 BFGS 变尺度法。它被认为是无约束优化问题中最有效的方法之一。
优点:
x(1), H1 对称ε>0, k=1
d(k)=-Hk gk
一维搜索得 λk x(k+1)=x(k)+ λkdk
||x(k+1)-x(k)||< ε?Hk+1=Hk+ΔHkStop. x(k+1)---- 解
k=k+1
yN
算法框图:
构造 Hk 的原则 :从形式上模仿,造一个方向:
H(k) 应满足的条件:
(1) 满足拟 Newton 条件: Δxk = Hk+1Δgk
(2) H(k) 为正定矩阵,这样 p(k) 为下降方向;
(3) 由 H(k) 出发计算 H(k+1) 应简便 :
(4) 算法具有二次收敛性: H(n+1)= 2f(x*) - 1 .
H(k+1)= H(k)+ ΔH(k)
( ) ( 1) ( ) 2 ( 1) ( 1) ( ) 2 ( 1) ( )( )k k k k k k k kg f x f x f x x x f x x
12 ( 1) ( ) ( )k k kf x g x
记: Δg(k) = g(k+1) - g(k) , Δx(k) = x(k+1) - x(k)
校正矩阵
尺度矩阵 H(k) 既近似 2f(xk) - 1 ,计算又要方便!p(k) = - Hk f(x(k))
DFP 算法: Davidon(1959), Fletcher and Powell (1963) ,
令 Δ Hk=αk u(k) (u(k))T+ βk v (k) (v (k))T
αk, βk 是常数, u(k) , v (k) 是 n 维列向量。这样定义的 ΔHk 是秩为 2 的对称矩阵 , 所以称为秩 2校正。
令 u(k)= Δxk , v (k)= Hk Δgk
, 则由拟牛顿条件有
1 ( ) ( ) ( ) ( )( )k k k k k k
k k k k k k k k k
Tk k k k Tk k
T Tk
k k
H g H g u u g v v g
H g x x g H g H g g
1 1
,k k k
k kT Tk kx g g H g
取 则
1k k kH g x
DFP 算法:
1 、上述算法具有三个性质:(1) 校正公式的分母总大于零 , 校正公式总有意义;
(2) H(k)都是正定的,所以每次迭代方向都是下降方向;
(3) 对二次函数 f(x) = c+bTx+0.5xTAx (A 为正定矩阵 ) ,迭代得到的搜索方向 p(0), p(1) ,…, p(n - 1)相互 A共轭,所以 DFP 是一种共轭方向法;且 H(n) = A - 1 ,说明 H(k) 逐次逼近 A - 1 .
0 0 0
1
1
, , 0;
;
;
k k k
k k kk
T Tk k k k k k
k kT Tk k k k k
p g H I k
p H g
x x t p
x x H g g HH H
x g g H g
2 、 DFP 法的重新开始策略
由于计算的舍入误差及一维搜索精度不够,会破坏 H(k) 的正定性,导致算法失效。
( 1 )一维搜索后,如果 f(x(k+1)) f(x(k)) ,意味着 p(k) 不是下降方向, H(k) 不是正 定矩阵,则重新开始,重置 H(k) = I ;
( 2 )每迭代 n+1 次后重新开始,令 x(0) = x(n+1) , H(0) = I
3 、 DFP 法的算法 开始
给定 x(0) ,
||g(k+1 )|| <
f0 =f( x(0 ) ) , g(0) =f( x(0 ) )
x(k+1) = x(k) + tk p(k), 其中 tk 为最优步长 fk+1 =f(x(k+1 )), g(k+1) =f(x(k+1 ))
x(0)=x(k+1)
f0 = fk+1
g(0)=g(k+1)
是
否y(k) = g(k+1) - g(k)
s(k) = x(k+1) - x(k)
x*=x(k+1)是
结束
k = n
否fk+1 fk
否
是
H(0)= I , p(0)= - g(0) , k=0
p(k+1) = - H(k+1) g(k+1) k=k+1
H(k+1)= H(k)+ -s(k) s(k)T
s(k)T y(k)
H(k) y(k)Ty(k)T H(k)
y(k)T H(k) y(k)
DFP 算法收敛性分析
定理 4.12 :若 , 则 DFP 方法构造的矩阵 Hi (i=1,2,…,n) 为对称正定矩阵。
0, 1,2, ,ig i n
注:搜索方向 d k = - Hk gk 一定是下降方向。
参见课本 P92 的证明
证明:数学归纳法( Schwartz 不等式,正定矩阵的性质,精确一维搜索的结果。)
若目标函数是正定二次函数,则 DFP 算法经过有限步迭代必达到极小点,即具有二次收敛性。
定理 4.14 :设用 DFP 算法求解下列问题1
min ( )2
T Tf x x Qx b x c
其中 Q 为 n 阶对称正定矩阵。由 DFP 方法产生的搜索方向为 ,产生的矩阵为 ,则有如下结论成立。
1 2, , , nd d d 1 2 1, , , nH H H
(1) 0,1 ;Ti
jd g i j n
(2) , 1 ;i ijH Qd d i j n
(3) 0, 1 ;Ti jd Qd i j n
证明参见 P93-P96页 (4) 1
1 .nH Q
2. 若 H1 是单位向量,则
所以 DFP 方法也是一种共轭梯度法。
1 (1) (1)1d H f x f x
定理 4.15 设 f (x) 存在连续一阶偏导数,且函数为凸函数,且水平集 有界,则由DFP 法得到的点列 有如下性质
1 ) 为严格单调下降序列,且 存在;
2 ) 的任意极限点 都是 f (x) 的最优解,且有 :
00 ( ) ( )G x f x f x
kx
( )kf x
kx *x
lim ( )kk
f x
*lim ( ) min ( ) ( )k
kf x f x f x
证明:参见 P96 的证明
注: 1. DFP 方法也是一种共轭方向法。
BFGS 方法——应用最普遍的方法 ( 一般函数 )
2 ( 1)kk kg f x x
由前面的推导,我们知道
为了利用不包含二阶导数的矩阵 Hk+1 取代▽ 2f(x(k)) ,
1k k kg B x
该公式称为另一种拟牛顿条件。由于上面的公式只需要交换 就可以得到前面的拟牛顿条件。因此只需要在 Hk 的递推公式中互换 ,并用Bk+1 , Bk 分别取代 Hk+1 , Hk ,就
,k kg x ,k kg x
令 Bk+1 满足
就得到 Bk 的递推公式,所以关于 Bk 的修正公式为
1
T T
k k k k k kk k T T
k k k k k
g g B x x BB B
g x x B x
该公式称为关于矩阵 B 的 BFGS修正公式,有时也称为 DF
P 的对偶公式。
设 Bk+1 可逆,则有
1
1k k kx B g
所以 满足拟牛顿条件 1
1kB
1k k kx H g
令 1
1 1k kH B
对 Bk+1两边求拟,得到
1 1
T Tk k kBFGS k k
k k T Tk k k k
T Tk k k k k k
T
k k
g H g x xH H
x g x g
x g H H g x
x g
这个重要公式是由 Broyden,Fletcher,Goldfard 和 Shanno 于1970 年提出来的。它可以象 DFP 公式一样使用,数值计算实例表明,它比 DFP 要好,目前得到广泛的应用。 BFGS
法有变尺度法的全部优点,并且在一定条件下可以证明在 B
FGS 法中使用前文中介绍的不精确一维搜索有全局收敛性。
x(k+1) = x(k) + tk p(k)
多变量最优化迭代解法的一般迭代公式
最优步长可用一维搜索技术解决
不同的搜索方向 p(k),构成不同的算法
算法名称 搜索方向 p(k)
Powell共轭方向法 共轭方向最速下降法 p(k) = - f(x (k) )
Newton 法 p(k) = - 2f (x(k)) - 1f (x(k))
Marquart 法 p(k) =- [2f (x(k)) +kI]- 1f (x(k))
F-R共轭梯度法 p(0) = - f(x(0))
p(k+1) = - f(x(k + 1)) + kp(k)
小 结
DFP , BFGS 法(拟 Newton 法)
p(0) = - f(x(0))
p(k+1) = - H(k) f(x(k))
方法的比较与选择1 、间接法:对简单问题,求解必要条件或充分条件;
2 、迭代算法:零阶法:只需计算函数值 f(x)
一阶法:需计算一阶导数▽ f(x)
二阶法:需计算二阶导数▽ 2f(x)
直接法
梯度法
从收敛速度考虑:梯度法快于直接法 Newton 法
拟 Newton 法( 变尺度法 )
共轭梯度法
Powell共轭方向法
单纯形法最速下降法
作业: P99
ch4 4.1-4, 4.9-15,4.17-18, 4.24,4.26
Recommended