牛頓法與擬牛頓法學習心得

2021-08-31 16:12:23 字數 1956 閱讀 1902

在logistics回歸中,我們通常使用梯度下降法(gradient decend)來優化目標函式。但梯度下降法的策略實際上是比較片面的,因為它只使用了一階導資訊,搜尋方向(梯度方向)比較偏向於區域性資訊。所以,我們引入了牛頓法。

這裡推薦乙個牛頓法的講解系列blog,講的很好,深入淺出,個人認為比李航大神的推導還要更詳細一點。

所以關於牛頓法的詳細推導本篇不再贅述,下面只說一些總結。

為了在優化過程中得到更好的效果,牛頓法應運而生。其基本思想是,通過二階泰勒展開引入函式的二階導資訊,這樣在優化過程中,優化目標不僅會根據梯度方向、還會根據梯度的變化趨勢作改變,以此來加快優化速度。

牛頓法有一些特點:

海塞矩陣必須正定,至於原因下面說。

具有二次收斂性,即當目標函式f(x

)f(x)

f(x)

為二次函式時,牛頓法只需迭代一次就能達到最優值。

牛頓法也有不少缺點:

牛頓法的步長是固定的,所以在高次冪函式下,可能會有區域性震動的情況,即f(x

k+1)

>f(

xk

)f(x_)>f(x_k)

f(xk+1

​)>f(

xk​)

f (x

)f(x)

f(x)

必須有二階連續偏導數,否則無法用泰勒公式展開。

假設目標函式的x是個標量,那麼對f(x

)f(x)

f(x)

在第k次迭代結果的x(k

)x^

x(k)

處附近用泰勒公式二階展開:f(x

)=f(

x(k)

)+f′

(x(k

))(x

−x(k

))+1

2f′′

(x(k

))(x

−x(k

))

2f(x)=f(x^)+f\prime(x^)(x-x^)+\cfracf\prime\prime(x^)(x-x^)^2\quad

f(x)=f

(x(k

))+f

′(x(

k))(

x−x(

k))+

21​f

′′(x

(k))

(x−x

(k))

2高等數學中有乙個經典的推論,即某個具有二階連續導數的函式,當某個點x的一階導為0,二階導》0時,則x為極小值點。我們在優化目標函式時,往往都是把優化問題作為乙個極小化問題考慮。

所以當目標函式的x是個向量時,式中的12f

′′(x

(k))

\cfracf\prime\prime(x^)

21​f′′

(x(k

))就變成了h(x

)h(x)

h(x)

(hesse matrix), 正定矩陣有乙個必要條件 即 特徵值λ

>

0\lambda>0

λ>

0,直觀上理解就是矩陣所代表的某個常數大於零,也就對應了二階導》0這一項。所以當h(x

)h(x)

h(x)

正定時,可以推斷目標函式的優化方向是最小化方向,只有這樣才能繼續優化下去。

牛頓法固然收斂速度快,但其弱點也十分明顯,條件苛刻都是其次,單是對h(x

)h(x)

h(x)

求逆這一步操作就十分繁瑣。所以引入了擬牛頓法,即「類似牛頓法的方法」,通過將h(x

)h(x)

h(x)

替換為乙個滿足擬牛頓條件的近似矩陣g(x

)g(x)

g(x)

來簡化操作,使優化過程中不用再求二階導矩陣的逆,這樣也就大大提高了優化的效能。

關於牛頓法與擬牛頓法的更加細節的問題,參閱開頭推薦的博文即可。

牛頓法與擬牛頓法學習筆記(一)牛頓法

好文!先轉在看!機器學習演算法中經常碰到非線性優化問題,如 sparse filtering 演算法,其主要工作在於求解乙個非線性極小化問題。在具體實現中,大多呼叫的是成熟的軟體包做支撐,其中最常用的乙個演算法是 l bfgs。為了解這個演算法的數學機理,這幾天做了一些調研,現把學習過程中理解的一些...

牛頓法與擬牛頓法

看了幾篇關於牛頓法的相關介紹,感覺非常好,尤其是擬牛頓條件的推導以及dfp等演算法的推導過程十分詳細明了。這裡記錄一下,方便之後查閱 牛頓法 擬牛頓條件 dfp演算法 bfgs演算法 f bfgs演算法 1 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方...

牛頓法與擬牛頓法學習筆記(四)BFGS 演算法

機器學習演算法中經常碰到非線性優化問題,如 sparse filtering 演算法,其主要工作在於求解乙個非線性極小化問題。在具體實現中,大多呼叫的是成熟的軟體包做支撐,其中最常用的乙個演算法是 l bfgs。為了解這個演算法的數學機理,這幾天做了一些調研,現把學習過程中理解的一些東西整理出來。目...