線性最小二乘問題,我們可以通過理論推導可以得到其解析解,但是對於非線性最小二乘問題,則需要依賴迭代優化的方法,。
梯度下降主要是從一階目標函式的一階導推導而來的,形象點說,就是每次朝著當前梯度最大的方向收斂;二牛頓法是二階收斂,每次考慮收斂方向的時候,還會考慮下一次的收斂的方向是否是最大(也就是梯度的梯度)。可以參考下圖:
紅線為牛頓法,綠線為梯度下降。
高斯-牛頓和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...