日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Armijo线搜索

發(fā)布時間:2023/12/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Armijo线搜索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用“人話”解釋不精確線搜索中的Armijo-Goldstein準則及Wolfe-Powell準則

line search(一維搜索,或線搜索)是最優(yōu)化(Optimization)算法中的一個基礎步驟/算法。它可以分為精確的一維搜索以及不精確的一維搜索兩大類。
在本文中,我想用“人話”解釋一下不精確的一維搜索的兩大準則:Armijo-Goldstein準則 & Wolfe-Powell準則。
之所以這樣說,是因為我讀到的所有最優(yōu)化的書或資料,從來沒有一個可以用初學者都能理解的方式來解釋這兩個準則,它們要么是長篇大論、把一堆數(shù)學公式丟給你去琢磨;要么是簡短省略、直接略過了解釋的步驟就一句話跨越千山萬水得出了結論。
每當看到這些書的時候,我腦子里就一個反應:你們就不能寫人話嗎?

我下面就嘗試用通俗的語言來描述一下這兩個準則。

【1】為什么要遵循這些準則 由于采用了不精確的一維搜索,所以,為了能讓算法收斂(即:求得極小值),人們逐漸發(fā)現(xiàn)、證明了一些規(guī)律,當你遵循這些規(guī)律的時候,算法就很有可能收斂。因此,為了達到讓算法收斂的目的,我們就要遵循這些準則。如果你不愿意遵循這些已經公認有效的準則,而是要按自己的準則來設計算法,那么恭喜你,如果你能證明你的做法是有效的,未來若干年后,書本里可能也會出現(xiàn)你的名字。

文章來源:http://www.codelast.com/

【2】Armijo-Goldstein準則 此準則是在196X年的時候由Armijo和Goldstein提出的,當然我沒有具體去搜過這倆人是誰。在有的資料里,你可能會看到“Armijo rule”(Armijo準則)的說法,可能是同一回事,不過,任何一個對此作出重要貢獻的人都是不可抹殺的,不是么?

Armijo-Goldstein準則的核心思想有兩個:①目標函數(shù)值應該有足夠的下降;②一維搜索的步長α不應該太小。

這兩個思想的意圖非常明顯。由于最優(yōu)化問題的目的就是尋找極小值,因此,讓目標函數(shù)函數(shù)值“下降”是我們努力的方向,所以①正是想要保證這一點。 同理,②也類似:如果一維搜索的步長α太小了,那么我們的搜索類似于在原地打轉,可能也是在浪費時間和精力。

文章來源:http://www.codelast.com/
有了這兩個指導思想,我們來看看Armijo-Goldstein準則的數(shù)學表達式:

其中,0<ρ<12
文章來源:http://www.codelast.com/
(1)為什么要規(guī)定ρ(0,12)這個條件?其實可以證明:如果沒有這個條件的話,將影響算法的超線性收斂性(定義看這個鏈接,第4條)。在這個速度至關重要的時代,沒有超線性收斂怎么活啊!(開個玩笑)
具體的證明過程,大家可以參考袁亞湘寫的《最優(yōu)化理論與方法》一書,我沒有仔細看,我覺得對初學者,不用去管它。
(2)第1個不等式的左邊式子的泰勒展開式為:
f(xk+αkdk)=f(xk)+αkgkTdk+o(αk)
去掉高階無窮小,剩下的部分為:f(xk)+αkgkTdk
而第一個不等式右邊與之只差一個系數(shù)ρ
我們已知了gkTdk<0(這是dk為下降方向的充要條件),并且ρ(0,12),因此,1式右邊仍然是一個比f(xk)小的數(shù),即:
f(xk)+αkρgkTdk<f(xk)
也就是說函數(shù)值是下降的(下降是最優(yōu)化的目標)。
文章來源:http://www.codelast.com/
(3)由于ρ(0,12)gkTdk<0dk是一個下降方向的充要條件),故第2個式子右邊比第1個式子右邊要小,即:
αk(1?ρ)gkTdk<αkρgkTdk<0
如果步長α太小的話,會導致這個不等式接近于不成立的邊緣。因此,式2就保證了α不能太小。
(4)我還要把很多書中都用來描述Armijo-Goldstein準則的一幅圖搬出來說明一下(親自手繪):

文章來源:http://www.codelast.com/
橫坐標是α,縱坐標是f,表示在xk,dk均為常量、α為自變量變化的情況下,目標函數(shù)值隨之變化的情況。
之所以說xk,dk均為常量,是因為在一維搜索中,在某一個確定的點xk上,搜索方向dk確定后,我們只需要找到一個合適的步長α就可以了。
x為常量,α為自變量時,f(x+αd)可能是非線性函數(shù)(例如目標函數(shù)為y=x2時)。因此圖中是一條曲線。
右上角的f(xk+αdk)并不是表示一個特定點的值,而是表示這條曲線是以α為自變量、xk,dk為常量的函數(shù)圖形。
α=0時,函數(shù)值為f(xk),如圖中左上方所示。水平的那條虛線是函數(shù)值為f(xk)的基線,用于與其他函數(shù)值對比。
f(xk)+αkρgkTdk那條線在f(xk)下方(前面已經分析過了,因為gkTdk<0),f(xk)+αk(1?ρ)gkTdk又在f(xk)+αkρgkTdk的下方(前面也已經分析過了),所以Armijo-Goldstein準則可能會把極小值點(可接受的區(qū)間)判斷在區(qū)間bc內。顯而易見,區(qū)間bc是有可能把極小值排除在外的(極小值在區(qū)間ed內)。
所以,為了解決這個問題,Wolfe-Powell準則應運而生。
文章來源:http://www.codelast.com/
【3】Wolfe-Powell準則
在某些書中,你會看到“Wolfe conditions”的說法,應該和Wolfe-Powell準則是一回事——可憐的Powell大神又被無情地忽略了...
Wolfe-Powell準則也有兩個數(shù)學表達式,其中,第一個表達式與Armijo-Goldstein準則的第1個式子相同,第二個表達式為:

這個式子已經不是關于函數(shù)值的了,而是關于梯度的。
此式的幾何解釋為:可接受點處的切線斜率≥初始斜率的σ
上面的圖已經標出了σgTkdk那條線(即e點處的切線),而初始點(α=0的點)處的切線是比e點處的切線要“斜”的,由于σ(ρ,1),使得e點處的切線變得“不那么斜”了——不知道這種極為通俗而不夠嚴謹?shù)恼f法,是否有助于你理解。
這樣做的結果就是,我們將極小值包含在了可接受的區(qū)間內(e點右邊的區(qū)間)。
文章來源:http://www.codelast.com/
Wolfe-Powell準則到這里還沒有結束!在某些書中,你會看到用另一個所謂的“更強的條件”來代替(3)式,即:

這個式子和(3)式相比,就是左邊加了一個絕對值符號,右邊換了一下正負號(gTkdk<0?σgTkdk>0)。
這樣做的結果就是:可接受的區(qū)間被限制在了[b,d]內,如圖:

圖中紅線即為極小值被“夾擊”的生動演示。

總結

以上是生活随笔為你收集整理的Armijo线搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。