Hessian矩陣與牛頓法

2021-07-31 06:25:37 字數 2827 閱讀 5808

牛頓法主要有兩方面的應用:

1. 求方程的根;2. 求解最優化方法;

一. 為什麼要用牛頓法求方程的根?問題很多,牛頓法 是什麼?目前還沒有講清楚,沒關係,先直觀理解為牛頓法是一種迭代求解方法(newton童鞋定義的方法

假設f(x) = 0為待求解方程,利用傳統方法求解,牛頓法求解方程的公式:

f(x0+δx) = f(x0) +

f′(x0) δx

即 f(

x) = f(x0) + 

f′(x0) (x-x0)

公式可能大家會比較熟悉,一階泰勒展式,f′(a) 表示 f(x) 在 x0 點的斜率 (這個很好理解),當x方向增量(δx)比較小時,y方向增量(δy)可以近似表示為 斜率(導數)*x方向增量(

f′(x0) δx

) ,令 f(x) = 0,

我們能夠得到 迭代公式:

x = x0 - f(x0) / f′(x0)    =>   xn+1 = xn - f(xn) / f′(n)

通過逐次迭代,牛頓法 將逐步逼近最優值,也就是方程的解。

二. 擴充套件到最優化問題

這裡的最優化 是指非線性最優化,解非線性最優化的方法有很多,比如 梯度下降法、共軛梯度法、變尺度法和步長加速法 等,這裡我們只講牛頓法

針對上面問題進行擴充套件:

解決 f(x) = 0 的問題,我們用了一階泰勒展開:

f(x) = f(x0) + f'(x0)*(x-x0) + o( (x-x0)^2 )

去掉末位高階展開項,代入x = x0+δx,得到:

f(x) = f(x0+δx) = f(x0) + f′(x0) δx

那麼 要解決 f′(x) = 0 的問題,我們就需要二階泰勒展開:

f(x) = f(x0) + f'(x0)*(x-x0) + 0.5*f''(x0)*(x-x0)^2 + o( (x-x0)^3 )

去掉末位高階展開項,代入x = x0+δx,得到:

f(x) = f(x0+δx) = f(x0) + f′(x0)δx + 0.5 * f′′(x0) (δx)^2

求導計算: f′(x) = f'(x0+δx) = 0,得到:

[ f(x0) + f′(x0)(x−x0) + 0.5 f′′(x0)(x−x0)^2 ]′ = 0

整理:f′(x0) + f′′(x0)(x−x0) = 0

x = x0 − f′(x0) / f′′(x0)   =>  xn+1 = xn - f'(xn) / f'′(xn)

牛頓法一圖總結為:

三. 牛頓法 與 hessian矩陣的關係

以上牛頓法的推導 是針對單變數問題,對於多變數的情況,牛頓法演變為:

與上面的單變數表示方式類似,需要用到變數的一階導數 和 二階導數

其中j定義為雅克比矩陣,對應一階偏導數。

h 為 hessian矩陣,對應二階偏導數

網上也能搜到類似的公式表達,也列出來:

牛頓法 在多變數問題上仍然適用迭代求解,但hessian矩陣的引入增加了複雜性,特別是當:

▪ hessian 矩陣非正定(非凸)導致無法收斂;▪ hessian 矩陣維度過大帶來巨大的計算量。

針對這個問題,在 牛頓法無法有效執行的情況下,提出了很多改進方法,比如擬牛頓法(quasi-newton methods)可以看作是牛頓法的近似。

擬牛頓法只需要用到一階導數,不需要計算hessian矩陣 以及逆矩陣,因此能夠更快收斂,關於擬牛頓法這裡不再具體展開,也有更深入的 dfp、bfgs、l-bfgs等演算法,大家可以自行搜尋學習。

總體來講,擬牛頓法 都是用來解決 牛頓法 本身的 複雜計算、難以收斂、區域性最小值等問題。

牛頓法 與 Hessian矩陣

牛頓法 主要有兩方面的應用 求方程的根 求解最優化方法 一.為什麼要用牛頓法求方程的根?假設 f x 0 為待求解方程,利用傳統方法求解,牛頓法求解方程的公式 f x0 x f x0 f x0 x 即 f x f x0 f x0 x x0 這個公式就是一階泰勒展式,f x0 表示 f x 在 x0 ...

牛頓法與擬牛頓法

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

Hession矩陣與牛頓迭代法

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 因為這是利用...