漫步最優化三十二——最速下降法












考慮優化問題
miminize F=f(x)for xEn

根據泰勒級數

F+ΔF=f(x+δ)f(x)+gTδ+12δTHδ

δ0 ,由於δ 引起的F 變化量爲

ΔFgTδ

右邊是向量g,δ 的點乘,如果

gδ=[g1 g2  gn]T=[δ1 δ2  δn]T

那麼

ΔFi=1ngiδi=gδcosθ

其中θ 是向量g,δ 之間的夾角且

g=(gTg)1/2=(i=1ng2i)1/2

考慮圖1的圖像,如果x,x+δ 是輪廓A 上相鄰的兩個點,那麼當δ0

ΔFgδcosθ=0

這是因爲在該輪廓上F 是常數,由此可得向量g,δ 之間的夾角θ 等於90 。從效果上看,點x 處得梯度與A 正交。對於任意向量δ ,要想ΔF 取得最大正值,那麼θ=0 ,即δ 必須與g 同向。另一方面,要想ΔF 取得最大負值,那麼θ=π ,即δ 必須與g 同向。梯度g 與它的負g 分別稱爲梯度上升與梯度下降方向,這些概念如圖1和圖2所示。


這裏寫圖片描述
圖1

假設函數f(x) 在點x 的鄰域內是連續的,如果d 是點x 處的最速下降方向,即

d=g

那麼x 的變化量δ

δ=αd

會減少f(x) 的值,其中α 是一個很小的正常數。通過求解一維優化問題

minimizeα F=f(x+αd)

我們可以最大化的減少f(x) ,如圖3所示。

如果點x 處的最速下降方向朝向f(x) 的最小值x ,那麼存在α 值,使得f(x+αd)α 最小化,f(x)x 最小化,因此這時候多維優化問題通過求解一維問題即可。不幸的是,大部分實際問題中,d 沒有指向x ,所以爲了求出解需要進行多次迭代。首先從初始點x0 開始,計算方向d=d0=g ,確定最小化f(x0+αd0)α 值,用α0 表示,那麼可得到新的點x1=x0+α0d0 ,最小化的過程可以用前面介紹的任何一種方法,接下來在點

xk+1=xk+αkdk

處重複執行上面的過程直到收斂爲止,其中k=1,2, 。這個過程的終止條件可以是αkdk 變得足夠小或者αkKα0 ,其中K 是一個很小的正常數。對於最速下降法來說,典型的求解軌跡如圖4所示。


這裏寫圖片描述
圖2

對於最速下降法,解的軌跡服從zig-zag模式,如圖4所示。如果每次迭代所選的α 都使得f(xk+αdk) 最小,那麼相鄰的方向是正交的。爲了證明這個結論,注意到

df(xk+αdk)dα=i=1nf(xk+αdk)xkid(xki+αdki)dα=i=1ngi(xk+αdk)dki=g(xk+αdk)Tdk

其中g(xk+αdk) 是點xk+αdk 處的梯度,如果α 是最小化f(xk+αdk)α 值,那麼

g(xk+αdk)Tdk=0

或者

dTk+1dk=0

其中

dk+1=g(xk+αdk)

是點xk+αdk 處的最速下降方向。從效果上看,相鄰方向dk,dk+1 如圖4那樣是正交的。

如果可以求出f(x) 的海森矩陣,那麼我們可以用解析法求出最小化f(xk+αd)α 值,用αk 表示。如果δk=αdk ,那麼根據泰勒級數可知

f(xk+δk)f(xk)+δTkgk+12δTkHkδk

如果dk 是最速下降方向,例如

δk=αgk

那麼我們可以得出

f(xkαgk)f(xk)αgTkgk+12α2gTkHkgk

對其求導並等於零得

f(xkαgk)dαgTkgk+αgTkHkgk=0

或者

α=αkgTkgkalphagTkHkgk


這裏寫圖片描述
圖3


這裏寫圖片描述
圖4

接下來,如果我們假設α=αk 最小化f(xk+αdk) ,那麼我們得到
xk+1=xkgTkgkalphagTkHkgkgk

αk 的精確性依賴於δk 的模長,因爲泰勒級數的二次近似只在xk 的鄰域內有效。剛開始δk 相對比較大,所以αk 將不準確,但不管怎樣,因爲在最速下降方向最小化f(xk+αdk) ,所以f(x) 一直在減少,故αk 的精確性在慢慢提高,甚至每次迭代都能實現最大減少f(x) ,因此能實現收斂。對於二次函數來說,上面的近似符號可以改成等號,因此每次迭代α=αk 都能最大程度減少f(x)

如果無法得到海森矩陣,那麼我們可以計算點xk,xkα̂ gk 處的f(x) 值來確定αk ,其中α̂ αk 的估計值。如果

fk=f(xk)f̂ =f(xkα̂ gk)

那麼根據泰勒級數可得

f̂ α̂ gTkgk+12α̂ 2gTkHkgk

或者

gTkHkgk2(f̂ fk+α̂ gTkgk)α̂ 2

從上式可得

αkg)kTgkα̂ 22(f̂ fk+α̂ gTkgk)

合適的α̂ αk1 ,即前一個迭代中的最優α 。對於第一次迭代我們用α̂ =1

如果函數f(x)C2 有局部最小點xx=x 處的海森矩陣是正定的,那麼可以說明如果xk 足夠靠近x ,我們有

f(xk+1)f(x)(1r1+r)2[f(xk)f(x)]

其中

r=HkHk

更進一步,如果f(x) 是二次函數,那麼上面的不等式對所有k 都成立。從效果上看,如果條件成立,那麼最速下降法線性收斂,其收斂率爲

β=(1r1+r)2

顯然,如果Hk 的特徵值基本都相等,那麼收斂率比較高;如果至少有一個比最大值特徵值小,那麼收斂率就比較低。

H 的特徵值λi,i=1,2,,n 確定幾何平面

xTHx=

這個等式給出了xTHx 的輪廓並且如果H 是正定的,那麼該輪廓是橢球,其軸長爲1/λi 。如果變量個數爲二,那麼輪廓是橢圓,軸長分別爲1/λ1,1/λ2 ,因此如果在二維問題上使用最速下降法,當輪廓接近圓時收斂最快,如果就是圓即r=1 ,那麼一次迭代就達到收斂。另一方面,如果輪廓近似橢圓或者說函數存在細長的谷底,那麼收斂就非常慢,尤其是在靠近解的地方。r 對收斂的影響通過比較圖4與圖5就能明顯的看出來。


這裏寫圖片描述
圖5

從效果上看,最速下降法試着讓梯度減小到零,因爲鞍點處的梯度也是零,所以如果這樣的點是解的話可能存在問題。然而這樣的解基本是不可能,首先,將鞍點作爲下次的迭代點這種概率非常低,其次,鞍點鄰域內始終有下降方向。

對某個特定的優化問題,H 的特徵值或者說最速下降法的性能很大程度上依賴於所選的變量,例如在一維或二維問題中,輪廓是偏向於圓還是橢圓依賴於單位的選擇,因此通過伸縮變量這種變量變換的方式可以提高收斂速率。

一種可能的伸縮方式是令

x=Ty

其中T 是對角矩陣,然後求解問題

minimizey h(y)=f(x)|x=Ty

新問題的梯度與海森矩陣分別爲

gh=TgxHh=TTHT

因此最速下降方向以及與問題相關的特徵值都發生了變化。但是不幸的是,T 的選擇嚴重依賴具體的問題,對此沒有一般的法則。不過有個小技巧,那就是儘量平衡二階導

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