數值優化(Numerical Optimization)學習系列-擬牛頓方法(Quasi-Newton)

概述

擬牛頓方法類似於最速下降法,在每一步迭代過程中僅僅利用梯度信息,但是通過度量梯度之間的變化,能夠產生超線性的收斂效果。本節主要學習一下知識點:
1. 擬牛頓方程推導
2. 幾個常見的擬牛頓方法
3. 擬牛頓方法的收斂性

擬牛頓方程

擬牛頓方法既有線搜索的影子也有牛頓方法的思想,下面從兩個角度分別介紹擬牛頓方程,即在擬牛頓方法中要遵循的一個原則。

線搜索角度

假設在第K步迭代過程中,對點xk 進行建模

mk(p)=fk+fTk+12pTBkp
,這是一個相對標準的建模過程,在點x_k處尋找下一個搜索方向。該模型滿足mk(0)=fk; mk(0)=fTk
此時如果B爲正定矩陣,則最優解爲pk=B1kfk 。則下一個迭代值xk+1=xk+αkpk .
問題來了如何構造有效的Bk 呢,如果選擇Hessian矩陣該方法就爲線搜索的牛頓方法。
高人就想出了通過當前點和上一步的搜索點構造該矩陣的方法,需要滿足模型m和目標函數f在xk,xk+1 保持梯度一致

此時在xk+1 處的模型爲

mk+1(p)=fk+1+fTk+1+12pTBk+1p
,需要滿足xkxk+1 梯度一致。則有
mk+1(xk+1)=fk+1mk+1(xk)=fk
等價於
mk+1(0)=fk+1mk+1(αkpk)=fk
從而有
mk+1(αkpk)=fk+1αkBk+1pk=fk
。根據xk+1=xk+αkpkBk+1(xk+1xk)=fk+1fk 。一般情況下記
sk=xk+1xkyk=fk+1fk

可以推出擬牛頓方程也叫(Secant equation):
Bk+1sk=yk

牛頓法角度

擬牛頓方法也可以認爲是一種特殊的共軛梯度算法,其主要思想是利用目標函數梯度的差分構造目標函數Hessian矩陣的某種近似,然後基於牛頓方程產生搜索方向,最後通過線搜索完成迭代過程。
假設在點xk+1 處進行泰勒展開有

f(x)=fk+1+fTk+1(xxk+1)+12(xxk+1)T2fk+1(xxk+1)

兩端對x求梯度並且x=xk
fk=fk+1+2fk+1(xkxk+1)
,整理後得到
2fk+1(xk+1xk)=fk+1fk
由於Hessian矩陣比較難求解,用其近似矩陣Bk+1 代替,同時借用上面的表達式有Bk+1sk=yk
如果記Hk+1=B1k+1 ,也有Hk+1sk=yk
以上兩種形式都稱爲擬牛頓方程。

擬牛頓方程:Bk+1sk=yk 或者Hk+1sk=yk

擬牛頓方程成立條件

由於Bk 需要滿足對稱正定,因此需要滿足sTkyk0 ,如果步長滿足一定條件,例如Wolfe條件,則上式一定成立。

前半部分是由於sTkBk+1sk=skyk ,由於B是正定的,肯定必須滿足兩個向量相乘大於0

後半部分是由於,Wolfe條件的第二個約束是

fTk+1skc2fTksk<=>fTk+1skfTkskc2fTkskfTksk<=>yTksk(c11)αkfTkpk
由於c2<1 如果搜索方向是下降方向則一定是大於0的。

擬牛頓方法

根據擬牛頓方程可以找到很多滿足約束的矩陣,爲求解方便需要進行一些約束,主要是秩的約束,由此產生了下面一些方法。

DFP方法

爲保證B求解的唯一性,尋找滿足條件約束並且離Bk 最近的一個矩陣,因此問題轉變爲:

min||BBk|| s.tB=BT Bsk=yk

如果上面範數選擇Weighted Frobenius範數並且加權矩陣採用平均Hessian,則可以推導出一個唯一確定的解
Bk+1=(IρkyksTk)Bk(IρkyksTk)+ρkykyTk
其中
ρk=1/(yTksk)
。由於實際應用時會用到Hk+1=B1k+1 ,根據一個求逆公式(Morrison-Woodbury)可以得到
Hk+1=HkHkykyTkHkyTkHkyk+sksTkyTksk

該構造方法稱之爲DFP方法

BFGS方法

類似於DFP方法,如果利用第二個擬牛頓方程,問題轉變爲:

min||HHk|| s.tH=HT Hsk=yk

如果上面範數選擇Weighted Frobenius範數並且加權矩陣採用平均Hessian,則可以推導出一個唯一確定的解
Hk+1=(IρkskyTk)Hk(IρkskyTk)+ρksksTk
其中
ρk=1/(yTksk)
。根據一個求逆公式(Morrison-Woodbury)可以得到
Bk+1=BkBksksTkBksTkBksk+ykyTkyTksk

該構造方法稱之爲BFGS方法,利用四個發明者名字進行命名。

DFP和BFGS關係

可以看到DFP和BFGS好像是將sk,ykBkHk 進行了位置替換。理論證明他們互爲對偶。

  1. BFGS和DFP一個比較好的性質是,如果H_k是正定的,則下一個Hk+1 也是正定的,可以從公式中推導出來。
  2. BFGS和DFP都有一定能力進行自我修正,如果某個位置選擇的矩陣不好,在未來幾步呢,可以自我修復。這個能力,BFGS比DFP效果要好,這也是BFGS比較常用的原因。
  3. 不好的地方就是:需要存儲這個對稱矩陣。

BFGS算法如下圖所示這裏寫圖片描述

實際實現中初始值H0 一般選擇單位,初始化步長爲1。 Wolfe條件中的參數c1=101,c2=0.9

SR-1方法

上面推導DFP和BFGS方法是從最優化角度進行考慮,由於滿足擬牛頓方程解個數不止一個,另外一個自然的想法就是通過對Bk 進行修正從而得到Bk+1 ,即

Bk+1=Bk+ΔBk
。習慣上根據ΔBk 的秩來稱呼校正公司,例如秩-1校正公式和秩-2校正公式

秩-2校正公式

DFP秩-2校正公式

Hk+1=Hk+asksTk+bHkykyTkHk

BFGS秩-2校正公式
Bk+1=Bk+aykyTk+bBksksTkBk
根據擬牛頓方程可以推導出參數a和b的值,最終結果和上述最優化問題保持一致。

秩-1校正公式(SR-1)

SR-1校正公式爲

Hk+1=Hk+vkvTk
根據擬牛頓條件可以推導出
Hk+1=Hk+(skHkyk)(skHkyk)T(skHkyk)Tyk

優缺點

相對與BFGS

  1. SR1能夠更好的擬合Hessian矩陣,因此在一些帶約束的問題或者部分可導的函數,不總是能滿足Wolfe條件或者sTkyk 是大於0的
  2. SR1最大缺點是不能保證每一求解到的矩陣Hk+1 是正定的

Broyden族校正公式

校正公式爲:

Hk+1=Hk+asksTk+b(HkyksTk+skyTkHk)+cHkykyTkHk
可以根據牛頓條件求解到參數值。

SR-1、DFP和BFGS都是該一族算法,共同的問題是
1) 不能利用目標函數的稀疏性質
2)需要存儲中間矩陣H

收斂性

擬牛頓方法具有全局收斂性並且有超線性的收斂速度

總結

通過本節的學習能夠了解
1. 擬牛頓方程以及由來
2. DFP、BFGS方法的迭代公式以及使用條件、場景和優缺點
3. 瞭解其收斂速度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章