設f(x)是二次可微實函式, 那麼它的二階泰勒多項式為 ϕ(
x)=f
(x0)
+f′(
x0)(
x−x0
)+12
f′′(x
0)(x
−x0)
2 ϕ(x
)=f(
x0)+
f′(x
0)(x
−x0)
+12f
″(x0
)(x−
x0)2
那麼把x換成向量, 則有 ϕ(
x)=f
(x0)
+∇f(
x0)(
x−x0
)+12
(x−x
0)t∇
2f(x
0)(x
−x0)
ϕ (x
)=f(
x0)+
∇f(x
0)(x
−x0)
+12(
x−x0
)t∇2
f(x0
)(x−
x0
)其中∇2
f(x0
) ∇2f(
x0)是f
(x) f(x
)在x
0 x0
處的hesse矩陣. 為求ϕ
(x) ϕ(x
)的平穩點, 令∇ϕ
(x)=
0 ∇ϕ(x
)=
0. 則有 ∇f
(x0)
+∇2f
(x0)
(x−x
0)=0
∇ f(
x0)+
∇2f(
x0)(
x−x0
)=
0假設hesse矩陣可逆, 則由上式得到牛頓法迭代公式:x(
k+1)
=x(k
)−∇2
f(x(
k))−
1f(x
(k))
(1.4)
(1.4)x(
k+1)
=x(k
)−∇2
f(x(
k))−
1f(x
(k))
其中∇2
f(x(
k))−
1 ∇2f(
x(k)
)−
1是hesse矩陣的逆矩陣.
牛頓法至少2級收斂, 收斂速率快於梯度下降法. 特別地, 對於二次凸函式, 用牛頓法經歷一次迭代即達極小點.
值得注意, 當初始點遠離極小點時, 牛頓法可能不收斂, 因為牛頓方向不一定是下降方向, 經迭代, 目標函式值可能上公升.
針對這一問題進行修正, 人們提出了 阻尼牛頓法.
與原始牛頓法的區別在於: 增加了沿牛頓方向的一維搜尋.
牛頓法需要計算二階偏導, 而且目標函式的hesse矩陣可能非正定. 為克服這些問題, 人們提出了擬牛頓法, 基本思想是用不含二階導數的矩陣a來近似原hesse矩陣的逆矩陣h−
1 h−1
.
根據得到近似矩陣a的方法的不同, 擬牛頓法也有不同的變體.
owl-qn(orthant-wise limited-memory quasi-newton)
微軟提出的演算法,該演算法是基於l-bfgs演算法的可用於求解l1正則的演算法。簡單來講,owl-qn演算法是指假定變數的象限確定的條件下使用l-bfgs演算法來更新,同時,使得更新前後變數在同乙個象限中(使用對映來滿足條件)。
cnblog, 無約束優化演算法——牛頓法與擬牛頓法(dfp,bfgs,lbfgs)
owl-qn演算法介紹
最優化演算法 牛頓法
牛頓搜尋演算法,參考edwin 最優化導論 7.5章節,演算法採用go語言實現。filename newton search.go author fredric date 2017.09.01 note 牛頓搜尋演算法 history package search import fmt math 根...
最優化演算法 牛頓法
牛頓搜尋演算法,參考edwin 最優化導論 7.5章節,演算法採用go語言實現。filename newton search.go author fredric date 2017.09.01 note 牛頓搜尋演算法 history package search import fmt math 根...
最優化 牛頓優化演算法
本人總結的常用優化演算法pdf版本,主要講解原理 主要包括梯度下降,共軛梯度法 牛頓法,擬牛頓法 信賴域方法,罰函式法。coding utf 8 author uniquez file 牛頓法,基於dfp的擬牛頓法 date 2017 06 24 remark 原方程為 x1 2 2 x2 2 im...