關於梯度下降法 牛頓法 高斯 牛頓 LM方法的總結

2021-08-17 00:01:41 字數 2835 閱讀 2987

線性最小二乘問題,我們可以通過理論推導可以得到其解析解,但是對於非線性最小二乘問題,則需要依賴迭代優化的方法,。

梯度下降主要是從一階目標函式的一階導推導而來的,形象點說,就是每次朝著當前梯度最大的方向收斂;二牛頓法是二階收斂,每次考慮收斂方向的時候,還會考慮下一次的收斂的方向是否是最大(也就是梯度的梯度)。可以參考下圖:

紅線為牛頓法,綠線為梯度下降。

高斯-牛頓和lm法則主要是針對非線性最小二乘問題提出的解決方案。由於牛頓法需要求解二階導,也就是hessian matrix,運算量大,不利於實現,,所以通常在牛頓法的基礎上用去掉二階項,用一階項來近似二階導,從而保證了計算效率。lm方法,則是由於高斯-牛頓方法在計算時需要保證矩陣的正定性,於是引入了乙個約束,從而保證計算方法更具普適性。

1.梯度下降與牛頓法[2]

梯度下降法:

梯度是上公升最快的方向,那麼如果我想下山,下降最快的方向呢,當然是逆著梯度了(將一點附近的曲面近似為平面),這就是梯度下降法,由於是逆著梯度,下降最快,又叫最速下降法。(一句話就是,朝著梯度方向收斂,可以參考梯度的定義)

迭代公式: b=

a−γ∇

f(a)

b =a

−γ∇f

(a),

γ γ

是步長。

牛頓法:

最優化問題中,牛頓法首先則是將問題轉化為求 f『(x) = 0 這個方程的根。

首先得到乙個初始解 x0,

一階展開:f′

(x)≈

f『(x

0)+(

x-x0

)f′′(

x0) f′(

x)≈f

『(x0

)+(x

-x0)

f″(x

0)令f『(x0)

+(x-

x0)f

′′(x0

)=0 f『(

x0)+

(x-x

0)f″

(x0)

=0求解得到x,相比於x0,f『(x)

(x0)

f 『(

x)(x0)

總結一下,就是牛頓法對目標函式的一階導再求導,即可算出收斂的方向。

優缺點:

梯度法:又稱最速下降法,是早期的解析法,收斂速度較慢。

牛頓法:收斂速度快,但不穩定,計算也較困難。

2.高斯牛頓和lm方法

推導過程可以參考

需要注意的是 高斯牛頓方法 在求解hessian matrix時 做了乙個簡化

目標函式可以簡寫: s=

∑mi=

1r2i

s =∑

i=1m

ri2梯度向量在方向上的分量: gj

=2∑m

i=1r

i∂ri

∂βj gj=

2∑i=

1mri

∂ri∂

βj(1)hessian 矩陣的元素則直接在梯度向量的基礎上求導: hj

k=2∑

mi=1

(∂ri

∂βj∂

ri∂β

k+ri

∂2ri

∂βj∂

βk).

h jk

=2∑i

=1m(

∂ri∂

βj∂r

i∂βk

+ri∂

2ri∂

βj∂β

k).高斯牛頓法的乙個小技巧是,將二次偏導省略,於是: hj

k≈2∑

mi=1

jijj

ikh jk

≈2∑i

=1mj

ijji

k將(1)(2)改寫成 矩陣相乘形式: g=

2jr⊤

r,h≈

2jr⊤

jr. g=2

jr⊤r

,h≈2

jr⊤j

r.levenberg-marquardt方法:

高斯-牛頓法中為了避免發散,有兩種解決方法

1.調整下降步伐:βs

+1=β

s+αδ

.0<

α<

1 βs+

1=βs

+αδ.

0<

α<

12.調整下降方向:(j

tj+λ

d)δ=

jtr (jt

j+λd

)δ=j

trλ→+∞

λ →+

∞時:δ/

λ→jt

r δ/λ

→jtr

,即方向和梯度方向一樣,變成了梯度下降法。

相反,如果λ為0,就變成了高斯牛頓法。

levenberg-marquardt方法的好處在於可以調節:

如果下降太快,使用較小的λ,使之更接近高斯牛頓法

如果下降太慢,使用較大的λ,使之更接近梯度下降法

此外,高斯牛頓法中涉及求逆矩陣的操作,(j

tj) (jt

j)加入λ 也可以保證該矩陣為乙個正定矩陣。

【reference】:

[1] 【理論推導很完善】

[2].

有關梯度下降法:

梯度下降與牛頓法:

梯度下降,牛頓法 ,高斯牛頓法

出處 線性最小二乘問題,我們可以通過理論推導可以得到其解析解,但是對於非線性最小二乘問題,則需要依賴迭代優化的方法,梯度下降主要是從一階目標函式的一階導推導而來的,形象點說,就是每次朝著當前梯度最大的方向收斂 二牛頓法是二階收斂,每次考慮收斂方向的時候,還會考慮下一次的收斂的方向是否是最大 也就是梯...

梯度下降法與牛頓法

梯度下降法,是迭代演算法。在求最值時,常常用到。bp網路中,最小化 誤差cost function,求解對應網路中的weights,即可用梯度下降法來更新weights.梯度下降法基本思想 給定乙個函式 f 假設求 f 最大值 最小值 初始化函式上的乙個點,對該點求導,該點往導數的方向 反方向 移動...

梯度下降法與牛頓法

梯度 f 在 0 處的梯度表示f 在點 0 處函式值變化最快的方向。對於凸函式f 來說,沿著負梯度方向尋找可以找到函式的極小值 k 1 k f k k 表示第 k步迭代,表示修正因子 步長 因為梯度方向變化最快,只在區域性有效 如果對於多維情形,表示為 k 1 k f k 其中 k k1,k2,kn...