用“人話”解釋不精確線搜索中的Armijo-Goldstein准則及Wolfe-Powell准則
line search(一維搜索,或線搜索)是最優化(Optimization)算法中的一個基礎步驟/算法。它可以分為精確的一維搜索以及不精確的一維搜索兩大類。
在本文中,我想用“人話”解釋一下不精確的一維搜索的兩大准則:Armijo-Goldstein准則 & Wolfe-Powell准則。
之所以這樣說,是因為我讀到的所有最優化的書或資料,從來沒有一個可以用初學者都能理解的方式來解釋這兩個准則,它們要么是長篇大論、把一堆數學公式丟給你去琢磨;要么是簡短省略、直接略過了解釋的步驟就一句話跨越千山萬水得出了結論。
每當看到這些書的時候,我腦子里就一個反應:你們就不能寫人話嗎?
我下面就嘗試用通俗的語言來描述一下這兩個准則。
Armijo-Goldstein准則的核心思想有兩個:①目標函數值應該有足夠的下降;②一維搜索的步長α不應該太小。
文章來源:http://www.codelast.com/
有了這兩個指導思想,我們來看看Armijo-Goldstein准則的數學表達式:
其中,
文章來源:http://www.codelast.com/
(1)為什么要規定這個條件?其實可以證明:如果沒有這個條件的話,將影響算法的超線性收斂性(定義看這個鏈接,第4條)。在這個速度至關重要的時代,沒有超線性收斂怎么活啊!(開個玩笑)
具體的證明過程,大家可以參考袁亞湘寫的《最優化理論與方法》一書,我沒有仔細看,我覺得對初學者,不用去管它。
(2)第1個不等式的左邊式子的泰勒展開式為:
去掉高階無窮小,剩下的部分為:
而第一個不等式右邊與之只差一個系數
我們已知了(這是為下降方向的充要條件),並且,因此,1式右邊仍然是一個比小的數,即:
也就是說函數值是下降的(下降是最優化的目標)。
文章來源:http://www.codelast.com/
(3)由於且(是一個下降方向的充要條件),故第2個式子右邊比第1個式子右邊要小,即:
如果步長太小的話,會導致這個不等式接近於不成立的邊緣。因此,式2就保證了不能太小。
(4)我還要把很多書中都用來描述Armijo-Goldstein准則的一幅圖搬出來說明一下(親自手繪):

文章來源:http://www.codelast.com/
橫坐標是,縱坐標是,表示在均為常量、為自變量變化的情況下,目標函數值隨之變化的情況。
之所以說均為常量,是因為在一維搜索中,在某一個確定的點上,搜索方向確定后,我們只需要找到一個合適的步長就可以了。
當為常量,為自變量時,可能是非線性函數(例如目標函數為時)。因此圖中是一條曲線。
右上角的並不是表示一個特定點的值,而是表示這條曲線是以為自變量、為常量的函數圖形。
當時,函數值為,如圖中左上方所示。水平的那條虛線是函數值為的基線,用於與其他函數值對比。
那條線在下方(前面已經分析過了,因為),又在的下方(前面也已經分析過了),所以Armijo-Goldstein准則可能會把極小值點(可接受的區間)判斷在區間bc內。顯而易見,區間bc是有可能把極小值排除在外的(極小值在區間ed內)。
所以,為了解決這個問題,Wolfe-Powell准則應運而生。
文章來源:http://www.codelast.com/
【3】Wolfe-Powell准則
在某些書中,你會看到“Wolfe conditions”的說法,應該和Wolfe-Powell准則是一回事——可憐的Powell大神又被無情地忽略了...
Wolfe-Powell准則也有兩個數學表達式,其中,第一個表達式與Armijo-Goldstein准則的第1個式子相同,第二個表達式為:
這個式子已經不是關於函數值的了,而是關於梯度的。
此式的幾何解釋為:可接受點處的切線斜率≥初始斜率的倍。
上面的圖已經標出了那條線(即點處的切線),而初始點(的點)處的切線是比點處的切線要“斜”的,由於,使得點處的切線變得“不那么斜”了——不知道這種極為通俗而不夠嚴謹的說法,是否有助於你理解。
這樣做的結果就是,我們將極小值包含在了可接受的區間內(點右邊的區間)。
文章來源:http://www.codelast.com/
Wolfe-Powell准則到這里還沒有結束!在某些書中,你會看到用另一個所謂的“更強的條件”來代替(3)式,即:
這個式子和(3)式相比,就是左邊加了一個絕對值符號,右邊換了一下正負號(,)。
這樣做的結果就是:可接受的區間被限制在了內,如圖:

圖中紅線即為極小值被“夾擊”的生動演示。
--------------------- 本文來自 蕭洋 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/u011584941/article/details/48163229?utm_source=copy