A. 約束優化方法與無約束方法在步長的選取上有何不同
Data Mining
無約束最優化方法
梯度的方向與等值面垂直,並且指向函數值提升的方向。
二次收斂是指一個演算法用於具有正定二次型函數時,在有限步可達到它的極小點。二次收斂與二階收斂沒有盡然聯系,更不是一回事,二次收斂往往具有超線性以上的收斂性。一階收斂不一定是線性收斂。
解釋一下什麼叫正定二次型函數:
n階實對稱矩陣Q,對於任意的非0向量X,如果有XTQX>0,則稱Q是正定矩陣。
對稱矩陣Q為正定的充要條件是:Q的特徵值全為正。
二次函數,若Q是正定的,則稱f(X)為正定二次函數。
黃金分割法
黃金分割法適用於任何單峰函數求極小值問題。
求函數在[a,b]上的極小點,我們在[a,b]內取兩點c,d,使得a<c<d<b。並且有
1)如果f(c)<f(d),則最小點出現在[a,d]上,因此[a,d]成為下一次的搜索區間。
2)如果f(c)>f(d),則[c,b]成為下一次的搜索區間。
假如確定了[a,d]是新的搜索區間,我們並不希望在[a,d]上重新找兩個新的點使之滿足(1)式,而是利用已經抗找到有c點,再找一個e點,使滿足:
可以解得r=0.382,而黃金分割點是0.618。
練習:求函數f(x)=x*x-10*x+36在[1,10]上的極小值。
+ View Code
最速下降法
泰勒級數告訴我們:
其中Δx可正可負,但必須充分接近於0。
X沿D方向移動步長a後,變為X+aD。由泰勒展開式:
目標函數:
a確定的情況下即最小化:
向量的內積何時最小?當然是兩向量方向相反時。所以X移動的方向應該和梯度的方向相反。
接下來的問題是步長a應該怎麼定才能使迭代的次數最少?
若f(X)具有二階連續偏導,由泰勒展開式可得:
H是f(X)的Hesse矩陣。
可得最優步長:
g是f(X)的梯度矩陣。
此時:
可見最速下降法中最優步長不僅與梯度有關,而且與Hesse矩陣有關。
練習:求函數f(x1,x2)=x1*x1+4*x2*x2在極小點,以初始點X0=(1,1)T。
+ View Code
梯度下降法開始的幾步搜索,目標函數下降較快,但接近極值點時,收斂速度就比較慢了,特別是當橢圓比較扁平時,收斂速度就更慢了。
另外最速下降法是以函數的一次近似提出的,如果要考慮二次近似,就有牛頓迭代法。
牛頓迭代法
在點Xk處對目標函數按Taylar展開:
令
得
即
可見X的搜索方向是,函數值要在此方向上下降,就需要它與梯度的方向相反,即。所以要求在每一個迭代點上Hesse矩陣必須是正定的。
練習:求的極小點,初始點取X=(0,3)。
+ View Code
牛頓法是二次收斂的,並且收斂階數是2。一般目標函數在最優點附近呈現為二次函數,於是可以想像最優點附近用牛頓迭代法收斂是比較快的。而在開始搜索的幾步,我們用梯度下降法收斂是比較快的。將兩個方法融合起來可以達到滿意的效果。
收斂快是牛頓迭代法最大的優點,但也有致命的缺點:Hesse矩陣及其逆的求解計算量大,更何況在某個迭代點Xk處Hesse矩陣的逆可能根本就不存在(即Hesse矩陣奇異),這樣無法求得Xk+1。
擬牛頓法
Hesse矩陣在擬牛頓法中是不計算的,擬牛頓法是構造與Hesse矩陣相似的正定矩陣,這個構造方法,使用了目標函數的梯度(一階導數)信息和兩個點的「位移」(Xk-Xk-1)來實現。有人會說,是不是用Hesse矩陣的近似矩陣來代替Hesse矩陣,會導致求解效果變差呢?事實上,效果反而通常會變好。
擬牛頓法與牛頓法的迭代過程一樣,僅僅是各個Hesse矩陣的求解方法不一樣。
在遠離極小值點處,Hesse矩陣一般不能保證正定,使得目標函數值不降反升。而擬牛頓法可以使目標函數值沿下降方向走下去,並且到了最後,在極小值點附近,可使構造出來的矩陣與Hesse矩陣「很像」了,這樣,擬牛頓法也會具有牛頓法的二階收斂性。
對目標函數f(X)做二階泰勒展開:
兩邊對X求導
當X=Xi時,有
這里我們用Hi來代表在點Xi處的Hesse矩陣的逆,則
(5)式就是擬牛頓方程。
下面給出擬牛頓法中的一種--DFP法。
令
我們希望Hi+1在Hi的基礎上加一個修正來得到:
給定Ei的一種形式:
m和n均為實數,v和w均為N維向量。
(6)(7)聯合起來代入(5)可得:
下面再給一種擬牛頓法--BFGS演算法。
(8)式中黑色的部分就是DFP演算法,紅色部分是BFGS比DFP多出來的部分。
BFGS演算法不僅具有二次收斂性,而且只有初始矩陣對稱正定,則BFGS修正公式所產生的矩陣Hk也是對稱正定的,且Hk不易變為奇異,因此BFGS比DFP具有更好的數值穩定性。
B. 無約束最優化方法中凸函數的次梯度是什麼
如果函數不可微的時候,就用次梯度來代替梯度進行計算