一. 梯度下降法
一階最優化演算法,梯度其實是有方向的。若找到乙個函式的區域性極小值,必須向函式上當前點對應梯度的反方向的規定步長距離點進行迭代搜尋;若向梯度正方向搜尋,會接近函式的區域性極大值,稱為梯度上公升法。
優點:
簡單易行
缺點:
靠近極小值時速度減慢。
二. 牛頓法,擬牛頓法,l-bgfs
牛頓法是使用函式f(x)的泰勒級數的前面幾項來尋找f(
x)=0
的根。
基本思想是:在現有極小點估計值的附件對f(x)做二階泰勒展開,進而找到極小點的下乙個估計值。
例子1. 求函式為0的根
選擇接近函式f(x)零點的x0
,用泰勒一階展開表示:f(
x):=f
(x0)
+f′(
x0)(
x−x0
)=0
會發現得到x1
=x0−
f(x0
)/f′
(x0)
更接近方程f(
x)=0
的解,如此迭代,將越來越逼近真實的值。
例子2. 求解最優化問題
牛頓法可用於求解非線性優化問題,假設任務優化乙個目標函式,求f的極大極小問題,可轉為求解函式的導數f`(x)=0問題, 這樣就可以把優化問題視為求解方程根(f』=0).
由於求最值,由極值必要條件可知,f』(x)=0, 利用產生序列xk
逼近f(x)的極小點。
為了求解f』=0 ,把函式f(x)泰勒展開到2階形式: f(
x):=f
(x0)
+f′(
x0)(
x−x0
)+1/
2f′′(
x0)(
x−x0
)2 f
′(x)
=f′(
x0)+
f′′(x
0)(x
−x0)
=0 x
=xk−
f′(x
k)/f
′′(xk
) 牛頓法中用到了二階導數,二階收斂速度更快,相當於使用曲面去擬合原函式。
對於高維問題,牛頓的迭代公式為: xk
+1=x
k−h−
1f′(
xk)
其中dk=
−h−1
f′(x
k)為迭代搜尋的牛頓方向
阻尼牛頓法
原始牛頓法為定長步迭代,對於非二次函式,可能有時會使函式值上公升,即出現f(
xk+1
)>f(
x),嚴重情況下還會造成迭代點列xk
發散。λk
=arg
minf
(xk+
λdk)
三. 擬牛頓法
由於利用牛頓法求解最優問題,在計算過程中要求函式一階,二階可導,其二階導數對於高維函式,即海森矩陣可逆;且對矩陣求逆計算量比較大。 令f
′(xk
)=gk
, 擬牛頓法條件為: gk
+1−g
k=h−
1(xk
+1−x
k) 令
yk=g
k+1−
gk,δ
k=xk
+1−x
k : yk
=h−1
δk這裡是使用矩陣b近似表示海森矩陣: yk
=bk+
1δk
bk+1
=bk+
pk+q
k yk
=bk+
1δk=
bkδk
+pkδ
k+qk
δk令,yk
=pkδ
k,−b
kδk=
qkδk
,得:
找到合適的p與q,得到迭代公式: bk
+1=b
k+yk
ytky
tkδk
−bkδ
kδtk
bkδt
kbkδ
k 演算法流程如下:
1. 給定初始值x0
與閾值ϵ , bk
=i,k
=02. 確定牛頓搜尋方向:dk
=−b−
1kgk
3. 根據一維搜尋確定步長
λ ,xk
+1=x
k+λd
k 4. 計算gk
+1,若||
gk+1
||<
ϵ , 演算法停止
5. 否則計算yk
=gk+
1−gk
, 進而計算得到bk
+16. k = k+1
l-bgfs演算法
由於bgfs演算法需要用到乙個n*n的矩陣,在計算機中儲存或計算非常不便,為此,不再儲存完整的矩陣,而是僅訪問當前計算中所需要的最新的m個δi
和yi 向量,這樣儲存由原來的o(
n2) 變為o(
mn)
思考與總結
梯度下降與牛頓法
a. 梯度下降法利用目標函式的一階偏導數資訊,以負梯度方向作為搜尋方向,只考慮目標函式在迭代點的區域性性質;
b. 牛頓法不僅利用一階導數資訊,還進一步利用了目標函式的二階偏導數,這樣就考慮了梯度變化的趨勢。
牛頓法與擬牛頓法
然而牛頓法有一些缺點:
a . 函式必須具有連續的
一、二階偏導數,海森矩陣必須正定,若不正定則優化方向會「跑偏」,
b. 計算複雜度高,計算導數矩陣和它的逆矩陣,尤其隨著維數的增加,計算量與儲存量都會變大。
擬牛頓法避免了每次迭代都要計算海森矩陣的逆,收斂速度介於梯度下降法和牛頓法之間。同時擬牛頓法每次迭代不能保證最優的方向,但是迭代生成的近似矩陣都是正定的,因此演算法總是朝著最優值的方向搜尋。
機器學習方法 機器學習中的優化方法
機器學習是離不開優化方法的,pedro domingos這樣概括機器學習和優化方法的關係 machine learning representation optimization evaluation 後面三項對應於三步 建立模型,求解模型,驗證模型。首先介紹一下機器學習中常見的優化問題 1.分類回...
《機器學習實戰》小結
最近一段時間讀了peter harrington 的machine learning in action,對機器學習有個大致的了解,做個總結。全書分為4部分 監督學習 分類 回歸 無監督學習 其他工具。包含演算法原理解釋,並講解python實現演算法的流程。讀完能對機器學習方法有個大致了解。我主要細...
機器學習知識小結
機器學習方法從數學的角度來看其實就是 模型 策略 演算法。模型就是對乙個實際業務問題進行建模,將其轉化為乙個可以用數學來量化表達的問題。策略就是定義損失函式來描述 值與理論值之間的差距,將其轉化為乙個使損失函式最小化的優化問題。演算法指的是求解最優化問題的方法,我們一般將其轉化為無約束優化問題,然後...