第三章 牛顿法§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 的一个聚点,则存在子序列{}1k K x ,使得1lim k k K x x ∈=令()k k d f x =-∇,由1f C ∈,知{}1()k K f x ∇是收敛序列,故{}1k K d 有界,且1lim ()k k K d f x ∈=-∇由定理2.6有2()(())()0Tf x f x f x ∇-∇=-∇=故有 ()0f x ∇=。
定理 3.2 设()f x 二次连续可微,且2()f x M ∇≤,则对任何给定的初始点0nx R ∈,最速下降算法或有限终止,或lim ()k k f x →∞=-∞,或lim ()0k k f x →∞∇=。
证明:不妨设k ∀,()0k f x ∇≠。
由定理2.5有211()()()2k k k f x f x f x M+-≥∇ 于是 []120101()()()()()2kk 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 ()2Tf 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+-≤- 其中11n 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 =是对应得标准特征向量(两两正交的单位向量)。
令()1nk k i ii x au ==∑,则上式可进一步表示为:()()2111(())(())2(0)n nk T k i i j j i j a Q G u G a Q G u Q ==∑∑ ()()2111(())(())2(0)n nk Tk i i i j j j i j a Q u G a Q u Q λλ===∑∑ (将G 作用到∑内每一项) ()()2111(())(())2(0)n nk T k i i i j j j j i j a Q u a Q u Q λλλ===∑∑ ()2()2211()2(0)nk 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 nu λλλλλλλ-+==-- 从而 ()112()n nt Q t λλλλ-+=-。
显然()Q t 单调上升。
由1()1,()1n Q Q λλ==-,及12,,n λλλ≥≥,即得()1(1,,)i Q i n λ≤=。
由 ()()22()2()1221111()()2(0)2(0)n nk k k i i i i i i i f x a Q a Q Q λλλ+==≤≤∑∑ 及 ()2()()()()()11111111()()()()()222n nn 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 +≤. 再由 2211(0)n n Q λλλλ⎛⎫+= ⎪-⎝⎭最后得 2111()()n k k n f x f x λλλλ+⎛⎫-≤ ⎪+⎝⎭0k ∀≥.由1101nnλλλλ-<<+,并注意到()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 ∀注意到: 2111()()n k k n f x f x λλλλ+⎛⎫-≤ ⎪+⎝⎭因而有22*1111112*112()2()k T k k k n n Tk kn n k k f x x xe e e e x xf x λλλλλλλλ++++-⎛⎫-=≤≤ ⎪+-⎝⎭最后得*1*k k x x x x +-≤-(其中1nλτλ=)。
这表明:最速下降算法至少具有线性收敛速度。
定理3.5(Kantorovich 不等式)设G 是n 阶对称正定矩阵,1λ和n λ分别为其最大和最小特征值,则nx R ∀∈,有211214()()()()T n T T n x x x Gx x G x λλλλ-≥+。
证明:参见袁亚湘等《最优化理论与方法》第三章附录,略。
以上对特殊形式的二次函数1()2Tf x x Gx =的收敛速度进行讨论,对一般的二次函数 1()2TT 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()()()2T 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 kg gg Gg α=为最优步长因子)其中k k g Gx b =+。
直接计算可得:211121()()()4()()()()Tk k k k nT T k k k k k n E x E x g g E x g Gg g G g λλλλ+--=≥+(由Kantorovich 不等式) 故有: 21112114()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()()()02T E x x x G x x =--= 利用()E x 一致凸性,可证必有:*k x x →。
这表明:算法产生的点列{}k x 是整体收敛到*x 的。
由(1)有: 2*111*1()()()()()()k k n kk n f x f x E x f x f x E x λλλλ++⎛⎫--=≤ ⎪-+⎝⎭(2) 注意到: ***1()02T f x x Gx ≤-≤,由(2)有 22*11111()()1()n nk k n n f x f x f x λλλλλλλλ+⎡⎤⎛⎫⎛⎫--⎢⎥≤+- ⎪ ⎪++⎢⎥⎝⎭⎝⎭⎣⎦211()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 = 即有: 22**12()n k k k x xE x x x λλ-≤≤-,k ∀从而有:22*1111112*112()()2()()k k nk n n k n n k k E x x xE x E x x x E x λλλλλλλλλλ+++-⎛⎫-=≤=≤ ⎪+-⎝⎭,(令1nλτλ=) 最后得:*1*k k x x x x +-≤- 当目标函数为非二次函数时,最速下降算法的收敛速度依然是线性的。