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

2022-08-11 20:57:18 字數 2796 閱讀 2628

出處:

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

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

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

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

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

梯度下降法: 

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

迭代公式: b=

a−γ∇

f(a)

'>b=a−γ∇f(a)

b=a−γ∇f(a) ,γ

'>γ

γ是步長。

牛頓法: 

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

首先得到乙個初始解 x0, 

一階展開:f′(

x)≈f

『(x0

)+(x

-x0)

f″(x

0)'>f′(x)≈f『(x0)+(x-x0)f″(x0)

f′(x)≈f『(x0)+(x-x0)f″(x0) 令f『

(x0)

+(x-

x0)f

″(x0

)=0'>f『(x0)+(x-x0)f″(x0)=0

f『(x0)+(x-x0)f″(x0)=0 

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

x)(x0)

'>f『(x)

f『(x)

總結一下

其實我們不知道函式的極值點(一階導的0解),但是我們不知道這個函式是什麼樣的

但是我們知道每個點的函式

所以,梯度法就是直接求導然後朝著這個點下降最快的方向走一步

牛頓法是用這個點二階導去近似這個函式的一階導,然後求0解

優缺點: 

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

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

2.高斯牛頓和lm方法 

推導過程可以參考 

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

目標函式可以簡寫: s=

∑i=1

mri2

'>s=∑mi=1r2i

s=∑i=1mri2

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

=2∑i

=1mr

i∂ri

∂βj'>gj=2∑mi=1ri∂ri∂βj

gj=2∑i=1mri∂ri∂βj (1)

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

k=2∑

i=1m

(∂ri

∂βj∂

ri∂β

k+ri

∂2ri

∂βj∂

βk).

'>hjk=2∑mi=1(∂ri∂βj∂ri∂βk+ri∂2ri∂βj∂βk).

hjk=2∑i=1m(∂ri∂βj∂ri∂βk+ri∂2ri∂βj∂βk).

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

k≈2∑

i=1m

jijj

ik'>hjk≈2∑mi=1jijjik

hjk≈2∑i=1mjijjik (2)

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

2jr⊤

r,h≈

2jr⊤

jr.'>g=2jr⊤r,h≈2jr⊤jr.

g=2jr⊤r,h≈2jr⊤jr.

levenberg-marquardt方法: 

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

1.調整下降步伐:βs+

1=βs

+α δ

.0<

α<

1'>βs+1=βs+αδ.0

βs+1=βs+α δ.0

2.調整下降方向:(jt

j+λd

)δ=j

tr'>(jtj+λd)δ=jtr

(jtj+λd)δ=jtrλ→

+∞'>λ→+∞

λ→+∞時:δ/λ

→jtr

'>δ/λ→jtr

δ/λ→jtr,即方向和梯度方向一樣,變成了梯度下降法。

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

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

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

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

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

j)'>(jtj)

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

【reference】: 

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

[2].

有關梯度下降法: 

梯度下降與牛頓法: 

梯度下降 牛頓法

為什麼牛頓法比梯度下降法的迭代次數更少?a 牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。通俗來說梯度下降法每次只從你當前所處位置選乙個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,...

深度學習 梯度下降 牛頓法 擬牛頓法

1 梯度下降法 梯度下降法實現簡單,當目標函式是凸函式時,梯度下降法的解是全域性解。一般情況下,其解不保證是全域性最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想 用當前位置負梯度方向作為搜尋方向,因為該方向為當前位置的最快下降方向,所以也被稱為是 最速下降法 最速下降法越接近目標值,步...

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

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