牛頓法和擬牛頓法
牛頓法(Newton method)和擬牛頓法(quasi Newton method)是求解無約束最優化問題的常用方法,收斂速度快。牛頓法是迭代算法,每一步需要求解海賽矩陣的逆矩陣,計算比較復雜。擬牛頓法通過正定矩陣近似海賽矩陣的逆矩陣或海賽矩陣,簡化了這一計算過程。
牛頓法
我們假設點x∗為函數f(x)的根,那么有f(x∗)=0。現在我們把函數f(x)在點xk處一階泰勒展開有:
假設點xk+1為該方程的根,則有:
可以得到
這樣我們就得到了一個遞歸方程,我們可以通過迭代的方式不斷的讓x趨近於x∗從而求得方程f(x)的解。
最優化問題
對於最優化問題,其極值點處一階導數為0。因此我們可以在一階導數處利用牛頓法通過迭代的方式來求得最優解,即相當於求一階導數對應函數的根。
首先,我們對函數在x0點處進行二階泰勒展開
對x求導可得
由於在極值點處 ,於是
從而可以得出下一個x的位置
其迭代形式為
對於多維函數,二階導數就變成了一個海森矩陣,二階泰勒展開公式如下:
圖中的
便是海森矩陣
。
迭代公式就變成了 。
我們可以看到,當 Hk為正定( Hk-1也正定 )的時候,可以保證牛頓法的搜索方向是向下搜索的。
擬牛頓法
當特征特別多的時候,求海森矩陣的逆矩陣,運算量是非常大且慢,考慮用一個n階矩陣來替代,這就是擬牛頓法的基本思路。
通過以上可以得到
因此,對於我們所選擇的替代矩陣Gk,需要滿足兩個條件:
- 擬牛頓條件,即
- 要保證Gk為正定矩陣,這是因為只有正定才能保證搜索方向是向下搜索的。
由於每次迭代都需要更新矩陣Gk ,下面介紹一些方法。
DFP
,這里的DK相當於前邊提到的GK ,這個迭代公式的關鍵是每一步的校正矩陣ΔDK的構造。我們采用待定法,先將ΔDK待定為下面的形式:
α和β為待定系數,u和v為待定向量。uuT和vvT均為對稱矩陣,因此可以保證ΔDK也是對稱矩陣。
將待定公式代入迭代公式,可得:Dk+1·yk = sk
上述變化是因為 是兩個數,不妨設為
可得
將其帶入sk的表達式,可得
不妨直接取
代回上面α和β的表達式,得:
將上兩式代回ΔDK的表達式,得
這樣就可以使用迭代公式來進行擬牛頓法的計算了。
BFGS
可以考慮用Gk逼近海森矩陣的逆矩陣H-1,也可以考慮用Bk逼近海森矩陣H。
BFGS算法的迭代公式:
由於擬牛頓條件可以寫成 ,同上述DFP的推導過程一樣,只不過是
最終可得
Broyden類算法
我們可以從BFGS算法矩陣Bk的迭代公式得到BFGS算法關於Gk的迭代公式。事實上,若記 那么兩次應用ShermanMorrisn公式可得
稱為BFGS算法關於Gk的迭代公式。
由DFP和BFGS算法得到的迭代公式GK,滿足擬牛頓條件式,所以它們的線性組合 也滿足擬牛頓條件式,而且是正定的。其中0 ≤ a ≤ 1。
這樣就得到了一類擬牛頓法,稱為Broyden類算法。
注:Sherman-Morrison公式:假設A是n階可逆矩陣,u,v是n維向量,且A+uvT也是可逆矩陣,則