線搜尋方法的基本過程都是在每一次迭代中先計算出乙個優化方向\(p_k\),再在這個方向上對目標函式做一維優化,即選取合適的\(\alpha_k\),使\(x_=x_k+\alpha p_k\)達到優化目的。一般來說,選取\(p_k=-b_k^\nabla f_k\),其中\(b_k\)是乙個對稱正定矩陣,\(b_k\)的選取有多種選擇,比如在牛頓法中,\(b_k\)就是hessian,而在逆牛頓法中,\(b_k\)是hessian的近似。由於\(p_k=-b_k^\nabla f_k\),\(b_k\)正定,可以知道\(p_k\)確實是下降方向。
定義$$\phi(\alpha)=f(x_k+\alpha p_k) \quad \alpha >0$$步長選取就是該函式的區域性最優化問題,對此不需要太高的準確度,不能在這個問題上花費很多時間,所以只需要給出乙個差不多的解就可以了。步長搜尋過程分為兩個階段--bracketing-phase和bisection(or interpolation)-phase,前者找到乙個包含期望步長的區間,後者在這個區間裡面計算出乙個好的步長。為此,先給搜尋步長施加幾個要求,首先就是搜尋步長需要使得函式下降,但這顯然不夠,於是還有下面的條件。
充分下降條件
\[f(x_k+\alpha p_k) \leq f(x_k)+c_1\alpha \nabla f_k^t p_k
\]示意圖:
示意圖:
兩個條件合起來稱為wolfe-condition,在實際應用中,\(c_1\)通常取得比較小,比如\(10^\)。\(c_2\)在牛頓和擬牛頓方法中通常取0.9,在共軛梯度法中通常取0.1。
將curvature condition改為$$|\nabla f (x_k+\alpha_k p_k)^tp_k| \leq c_2|\nabla f_k^t p_k|$$得到的條件稱為strong wolfe condition
在wolfe condition和strong wolfe condition下,滿足條件的步長是存在的:
goldstein condition和wolfe condition出發點相同,都是在保證充足的下降情況下,又避免搜尋步長過小。$$f(x_k)+(1-c)\alpha_k \nabla f_k^t p_k \leq f(x_k+\alpha_k p_k)\leq f(x_k)+c\alpha_k \nabla f_k^t p_k\quad 0即使只對步長施加充分下降條件,只要適當選取步長,也是可以的,這裡就要用到稱為backtracking的方法。
在這個過程中,初始步長在牛頓和擬牛頓方法中取為1,在其他方法中可取為不同的值。
其中\(\theta_k\)是\(\nabla f_k\)與\(p_k\)的夾角。將這個定理中的wolfe condition換為goldstein 或strong wolfe定理任然成立。
可知最速下降法收斂速度是線性的
數值最優化
多元函式 1.設多元函式 f rn r 二次連續可微,則 f 在 x 處的梯度和hessian矩陣為 f x f x x 1,f x x2,f x x n t 2f x f x x21 f x x n x1 f x x1 x n f x x2n 2.多元函式的taylor展開式 一階 f x f y...
數值優化介紹
一 模型與演算法 模型是將抽象的實際問題轉化成數學問題,用便於理解和計算的數學模型表示,通俗的說可以把模型理解為 計算公式,常見數學定義定理等,演算法即計算方法,是求解數學模型用的,就是 將模型解出的方法。總之,模型是將實際問題數學化,演算法是將其中所蘊含的數學問題進行求解。數學模型,是 對某乙個具...
數值優化(十)
gauss newton在newton法上做了一些改進,newton法需要通過 nabla 2 f k p k nabla f k 計算出優化方向 p k 現在直接把上面得到的估計式代入,得到gn方向 p k 滿足 j ktj kp k j k tr k 由於求梯度的時候就已經計算了 j 所以第二步...