一維搜索、線搜法

  一、什麼是一維搜索

      在許多迭代下降算法中,具有一個共同點,這就是得到點\LARGE x^{(k)}後,需要按某種規則確定一個方向\LARGE d^{(k)},再從\LARGE x^{(k)}出發,沿方向\LARGE d^{(k)}在直線(或射線)上求目標函數的極小點,從而得到\LARGE x^{(k)}的後繼點\LARGE x^{(k+1)}。重複以上做法,直到求得問題的解。這裏所謂目標函數在直線上的極小點,稱爲一維搜索,或稱爲線搜索Line Search。

    在機器學習中, 通常需要求某個函數的最值。 線搜索(line search)是求得一個函數f(x)的最值的兩種常用迭代方法之一。 其思想是首先求得一個下降方向,在這個方向上f(x)會下降, 然後是求得f(x)在這個方向上下降的步長。

       求下降方向的方法有很多, 比如梯度下降, 牛頓方法和Quasi-Newton方法, 而步長可以是固定值, 也可以通過諸如回溯線搜索來求得。所以Line Search經常被用於一種步長選擇的方式。

     一維搜索的方法很多,歸納起來,大體可分成兩大類:

    1)一類是試探法。按栽某種方式找試探點,通過一系列試探點來確定極小點。

   2)另一類是函數逼近法,或稱爲插值法。用某種較簡單的曲線逼近本來的函數曲線,通過求逼近函數的極小點來估計目標函數的極小點。

二、試探法

試探法常用的包括:黃金分割法、Fibonacci法、進退法、平分法及其改進方法。

2.1 黃金分割法或稱爲0.618法

適用於單峯函數。

 

詳細計算步驟如下:

    實際問題中,目標函數在其定義域內不一定是單峯的,因此需要先確定單峯區間,然後使用黃金分割法計算公式。

2.2 Fibonacci法

與黃金分割法類似,適用於單峯函數。在計算過程中,也是第1次迭代需要計算兩個試探點,以後每次迭代只需新算一點,另一點取自上次迭代。Fibonacci法與0.618法的主要區別之一在於區間長度縮短比率不是常數,而是所謂的Fibonacci數確定。

      理論上,0.618法得到的最終區間大約比使用Fibonacci法長17%。

      但Fibonncci法的缺點是要事先知道計算函數值的次數。

      比較起來,0.618法更簡單,它不需要事先知道計算次數。在實際問題中,一般採用0.618法。

 

 

三、函數逼近法

   函數逼近法常用的具體方法有:牛頓法、割線法、拋物線法、三次插值法。

  牛頓法的基本思想是,在極小點附近用二階Taylor多項式近似目標函數f(x),進而求出極小點的估計值。

發佈了80 篇原創文章 · 獲贊 142 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章