在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))+
21f
′′(x
(k))
(x−x
(k))
2高等數學中有乙個經典的推論,即某個具有二階連續導數的函式,當某個點x的一階導為0,二階導》0時,則x為極小值點。我們在優化目標函式時,往往都是把優化問題作為乙個極小化問題考慮。
所以當目標函式的x是個向量時,式中的12f
′′(x
(k))
\cfracf\prime\prime(x^)
21f′′
(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。為了解這個演算法的數學機理,這幾天做了一些調研,現把學習過程中理解的一些東西整理出來。目...