無約束最優化二

2021-06-28 11:12:52 字數 2163 閱讀 7595

2.1 a_k合理性討論

如下將要討論關於a_k需要滿足的兩個條件,當a_k滿足這兩個條件後,就可以認為從x_k點移動到x_k+1點的步長已經確定下來了。第乙個條件為sufficient decrease condition,從直觀角度來看,該條件主要要用保證x_k+1點的函式值要小於x_k點的函式值,滿足該條件後,才有全域性收斂 的可能性。第二個條件為curvature condition,從直觀角度來看,該條件主要用於保證x_k點經過步長a_k的移動到達x_k+1後,▽f_k+1小於▽f_k。

2.1.1 sufficient decrease condition

a_k的選擇一定要使得函式值滿足sufficient decrease condition,該條件可以用如下不等式描述:

將公式(1)代入上式,可得:

這裡有必要對上面的不等式做一些解釋:

a) f(x_k) 代表函式在第x_k點的值

b) ▽f_k代表函式在第x_k點的梯度

c) p_k代表從第x_k點的走到x_k+1點的方向

d) a_ k代表從第x_k點沿著p_k方向走到x_k+1點步長

e) c_1為常量,需滿足 0< c_1 < 1,一般取c_1為1e-4(注:quasi-newton method中要求0< c_1< 0.5)

當p_k為函式下降方向時,有:

▽f_k * p_k < 0       (5)

因此不等式4,即要求:

f(x_k+1) < f(x_k)      (6)

從圖形角度看,函式位於第k點時,以上各引數中只有a_k為變數,其他均為常量,因此(4)可以用以下不等式重新描述為:

ø(a_k) ≤ l(a_k)      (7)

其中:

以下為不等式(7)的圖形化表示:

因此只要步長a_k的選擇使得函式ø(a_k)位於acceptable區間,就滿足sufficient decrease condition。

2.1.2 curvature condition

a_k的選擇一定要使得函式梯度值滿足curvature condition,該條件可以用如下不等式描述:

即為這裡有必要對上面的不等式做一些解釋:

a) ▽f_k+1代表函式在第x_k+1點的梯度

b) ▽f_k代表函式在第x_k點的梯度

c) p_k代表從第k點的走到k+1點的方向

d) c_2為常量,需滿足0< c_1 < c_2 < 1,一般取c_2為0.9

當p_k為函式下降方向時,有:

▽f_k * p_k < 0

因此不等式9,即要求:

▽f _k+1 ≥ c_2 * ▽f_k       (10)

從圖形角度看,不等式10即要求函式在第x_k+1點的變化速度要低於x_k點的變化速度,這一點可以從這兩點處的梯度處看出,如下圖所示。

所謂wolfe conditions即sufficient decrease condition和curvature condition的綜合,即a_k需要同時滿足如下兩個條件:

圖形化表示後,如下圖所示:

實際應用中,常常會用到由wolfe conditions引申出的strong wolfe conditions,即a_k需要同時滿足如下兩個條件:

與wolfe condtions唯一的區別是strong wolfe condtions避免了▽f(x_k + a_k * p_k)取較大的正值情況。

未完待續:無約束最優化三

注:這個系列的作者是我的師兄jianzhu,他在中文分詞、語言模型方面的研究很深入,如果大家對於srilm的源**感興趣,可以參考他個人部落格上寫的「srilm閱讀文件系列」,很有幫助。

無約束最優化三

2.2 a k步長的選擇 了解了a k的合理性之後,就相當於獲得了標尺,在此基礎上我們可以選擇合適的策略來求取a k。所有的line search過程在計算每一步的a k時,均需要提供乙個初始點a 0,然後再此基礎上生成一系列的,直到a i滿足2.1節所規定的條件為止,此時該a k即被確定為a i,...

無約束最優化四

3 quasi newton method 在第2節中我們了解了步長的概念,以及從x k走到x k 1點使用line search方法計算步長的方法。不過我們在那裡忽略了乙個重要的概念,即 方向 從第2節,我們了解到從每一點x k走到下一點x k 1時,需要給出要走的 方向 只有 方向 確定好之後,...

無約束優化問題(二)

在演算法框架中我們提到,不同的方式確定搜尋方向或搜尋步長,就會得到不同的演算法,而梯度法就是用負梯度方向作為搜尋方向,即dk f xk 那麼,為什麼要用負梯度方向作為搜尋方向?因為負梯度方向是當前點的最速下降方向 就是說在xk 的某個鄰域內,在這個方向上往前走,函式值一定是下降最快的 下面我們給出數...