提要:今天講的牛頓法與擬牛頓法是求解無約束問題最優化方法的常用方法。
一 牛頓法
假設我們求下面函式的最小值:
假設f(x)具有連續的二階的連續偏導數,假設第k次迭代值為xk的值,那麼可將f(x)在xk附近進行二階泰勒展開得到:
我們對上述公式求導可得:
假設其中
可逆,我們就可以得到牛頓法的迭代公式為:
這樣就可以得到牛頓法的迭代公式了。
牛頓法演算法如下:
輸入:目標函式f(x),梯度▽f(x),海賽矩陣h(x),精度要求ε;
輸出:f(x)的極小點x*.
步驟一:取初始點x0,置k=0
步驟二:計算梯度▽f(x)
步驟三:||▽f(x)||〈ε,那麼停止計算得到的x*=xk。
步驟四:計算h(x)
步驟五:
步驟6:轉步驟二
牛頓法的缺點:牛頓法收斂速度快
,但是要計算二階偏導數矩陣及其逆陣,計算量過大
。二 擬牛頓法
擬牛頓法與原始牛頓法的區別在於增加了沿牛頓方向的一維搜尋,其迭代公式為:
其中為牛頓方向,
是由一維搜尋的步長,也就是滿足:
其實牛頓法就是阻尼牛頓法步長為1的特殊情況。
擬牛頓法演算法:
輸入:目標函式f(x),梯度▽f(x),海賽矩陣h(x),精度要求ε;
輸出:f(x)的極小點x*.
步驟一:取初始點x0,置k=0
步驟二:計算梯度▽f(x)
步驟三:||▽f(x)||〈ε,那麼停止計算得到的x*=xk。
步驟四:計算h(x)
步驟五:從xk出發,沿著dk方向作一維搜尋,
步驟六:
步驟七:轉步驟二
本文完。
牛頓法與擬牛頓法
看了幾篇關於牛頓法的相關介紹,感覺非常好,尤其是擬牛頓條件的推導以及dfp等演算法的推導過程十分詳細明了。這裡記錄一下,方便之後查閱 牛頓法 擬牛頓條件 dfp演算法 bfgs演算法 f bfgs演算法 1 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方...
牛頓法與擬牛頓法學習筆記(一)牛頓法
好文!先轉在看!機器學習演算法中經常碰到非線性優化問題,如 sparse filtering 演算法,其主要工作在於求解乙個非線性極小化問題。在具體實現中,大多呼叫的是成熟的軟體包做支撐,其中最常用的乙個演算法是 l bfgs。為了解這個演算法的數學機理,這幾天做了一些調研,現把學習過程中理解的一些...
牛頓法和擬牛頓法
正在學習牛頓法,找到一篇非常詳細的部落格,特將目錄整理下來,方便今後回想和查詢。一 牛頓法 主要內容 1 泰勒展開式。比較基礎。2 牛頓法。從其應用的兩個方面來介紹 2.1 求方程的根 一階泰勒展開。2.2 解決最優化問題 二階泰勒展開。此部分又分為兩種情況 二維情況和高維情況。其中,二維情況比較常...