數值最佳化

線搜尋(line search)

你已決定往哪個方向下坡——那麼,走多遠?踏出小碎步幾乎沒移動;縱身一躍卻可能整個飛越谷底,落在比起點還高的地方。線搜尋就是選擇步長這件事:一旦下降方向固定,你沿著那一條線滑動,挑一個真能把函數降低相當幅度的距離。

具體地說,下降法設定 x_{k+1} = x_k + alpha p_k,其中 p_k 是選定的方向,alpha > 0 是待定的步長。沿這條線走,把多維問題凍結成一個單變數函數 phi(alpha) = f(x_k + alpha p_k),線搜尋就在 alpha > 0 上最小化(或足夠減小)phi。精確線搜尋找出真正使 phi 最小的 alpha——通常太貴而且沒必要。實務上做不精確線搜尋:接受任何能讓 f「夠」減小的 alpha。主力是回溯法(backtracking)——從一個慷慨的試探步(譬如 alpha = 1,天然的牛頓步)開始,只要減量不足就把 alpha 縮小一個倍率(alpha <- 0.5 * alpha),直到通過充分減量檢驗(Armijo 條件)。這每次迭代只多花幾次函數計算。

線搜尋與信賴域法是控制步長的兩大策略,而健全的線搜尋正是讓下降法可證明收斂、而非振盪或停滯的關鍵。誠實的重點在「夠減小」是什麼意思:單純要求 f 下降並不安全——你可能踏出越來越小的步,永遠在減小卻永遠到不了極小。Armijo(充分減量)條件要求下降幅度至少是斜率所預測的一個固定比例,再配上一個曲率條件,就構成完整的 Wolfe 條件,同時排除過短與過長的步。

從 x_0 = 0 沿 p = -grad f = 8 最小化 f(x) = (x - 4)^2。則 phi(alpha) = (8 alpha - 4)^2。從 alpha = 1 回溯得 phi(1) = 16,不小於 phi(0) = 16(沒減小),於是縮到 0.5:phi(0.5) = 0——正好是極小點。線搜尋在一次試探加縮小中就落到了谷底。

固定方向、改變距離:一維搜尋挑出步長。

只要求 f 減小是不夠的——無窮多個遞縮的步可以永遠減小卻不收斂。你需要一個與斜率掛鉤的充分減量檢驗(Armijo),否則方法可能停滯在離極小任意遠的地方。

又稱
step-length selectionone-dimensional minimization步長搜尋一維搜尋