牛頓法
(當函式非凸時,找到的依然是區域性極值):
1、求解方程。
並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。
原理是利用泰勒公式,在x0處展開,且展開到一階
,即f(x) = f(x0)+(x-x0)f'(x0)
求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'(x0)
,因為這是利用泰勒公式的一階展開,f(x) = f(x0)+(x-x0)f'(x0)處並不是完全相等,而是近似相等,這裡求得的x1並不能讓f(x)=0,只能說f(x1)的值比f(x0)更接近f(x)=0,於是乎,迭代求解的想法就很自然了,可以進而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通過迭代,這個式子必然在f(x*)=0的時候收斂。整個過程如下圖:
2、牛頓法用於最優化
在最優化的問題中,線性最優化至少可以使用單純行法求解,但對於非線性優化問題,牛頓法提供了一種求解的辦法。假設任務是
優化乙個目標函式f,求函式f的極大極小問題,可以轉化為求解函式f的導數f'=0的問題
,這樣求可以把優化問題看成方程求解問題(f'=0)。剩下的問題就和第一部分提到的牛頓法求解很相似了。
這次為了求解f'=0的根,把f(x)的泰勒展開,展開到2階形式:
這個式子是成立的,當且僅當 δx 無限趨近於0。此時上式等價於:
x 趨近於0時,這用到了極限的什麼定理??
求解:得出迭代公式:
一般認為牛頓法可以利用到曲線本身的資訊,比梯度下降法更容易收斂(迭代更少次數),如下圖是乙個最小化乙個目標方程的例子,紅色曲線是利用牛頓法迭代求解,綠色曲線是利用梯度下降法求解。
在上面討論的是2維情況,高維情況的牛頓迭代公式是:
其中h是hessian矩陣,定義為:
高維情況依然可以用牛頓迭代求解,但是問題是hessian矩陣引入的複雜性,使得牛頓迭代求解的難度大大增加,但是已經有了解決這個問題的辦法就是quasi-newton methond(擬牛頓法),不再直接計算hessian矩陣,而是每一步的時候使用梯度向量更新hessian矩陣的近似矩陣b。
quasi-newton methond(擬牛頓法)
(當函式非凸時,找到的依然是區域性極值):
擬牛頓演算法的核心思想用乙個近似矩陣
b
替代hessian矩陣h,即 b(k)約等於 h(k)
針對b(k)的計算,擬牛頓法有很多種:
還有其他演算法,更新b(k)的計算公式:
共軛梯度法
是介於梯度下降法和牛頓法,擬牛頓法之間的演算法。
梯度下降法收斂慢,牛頓法需要計算hessian矩陣,擬牛頓法需要很大的儲存空間。
深度學習 梯度下降 牛頓法 擬牛頓法
1 梯度下降法 梯度下降法實現簡單,當目標函式是凸函式時,梯度下降法的解是全域性解。一般情況下,其解不保證是全域性最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想 用當前位置負梯度方向作為搜尋方向,因為該方向為當前位置的最快下降方向,所以也被稱為是 最速下降法 最速下降法越接近目標值,步...
牛頓法和擬牛頓法
正在學習牛頓法,找到一篇非常詳細的部落格,特將目錄整理下來,方便今後回想和查詢。一 牛頓法 主要內容 1 泰勒展開式。比較基礎。2 牛頓法。從其應用的兩個方面來介紹 2.1 求方程的根 一階泰勒展開。2.2 解決最優化問題 二階泰勒展開。此部分又分為兩種情況 二維情況和高維情況。其中,二維情況比較常...
牛頓法與擬牛頓法
看了幾篇關於牛頓法的相關介紹,感覺非常好,尤其是擬牛頓條件的推導以及dfp等演算法的推導過程十分詳細明了。這裡記錄一下,方便之後查閱 牛頓法 擬牛頓條件 dfp演算法 bfgs演算法 f bfgs演算法 1 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方...