監督學習的應用與梯度下降
監督學習
如上圖所示,監督學習
:對於給定的訓練集合,按照某一學習演算法學習之後,得到一種好的假設
(hypotheses)
用於**新的資料。
梯度下降已知m
組資料(x1,y1)…(xm, ym)
,其中xi
是具有n
維特徵的向量,此外,我們設定
xi(0) =1(
即截距項
)。我們做如下假設:
h(x) = = (
此為回歸模型的假設模型)
對於給定的訓練集合,如何選擇最優的θ值
(權重或引數)呢
(這裡的x是
n+1*m
維矩陣)
?乙個合理的方法是:至少在訓練集合上,
θ會使**值
h(x)
越接近實際值
y越好。因此,我們定義乙個成本函式
(cost function) j(θ):
j(θ) =
該成本函式使用誤差的平方和,類似於普通最小二乘法
(沒有平均化誤差平方和)。
最小均方演算法
給定的訓練集合,如何選擇最優的θ值使
j(θ)
?這裡我們採用梯度下降法。梯度下降法的基本思想是在起始隨機得到
θ值後,之後每次更新
θ值的方式如下:
θj := θj− α*(其中α
稱之為學習速率
) 即
θ每次以一定的步伐按照
j(θ)
最快速下降的方向更新值。我們進一步分解引數更新公式的右邊。
= = *
= (h(x)-y) * = (h(x)-y)*xi
因此,引數更新的方式如下:
θj := θj + α(y-h(xi))*xj
i該更新方法稱之為
lms演算法
(least mean squares
,最小均方法
),也被稱為
widrow-hoff
學習演算法。該方法顯得很自然和直觀化。比如,當誤差
(y-h(x))
越大的時候,那麼引數更新的步伐就越大。檢測是否收斂的方法:
1) 檢測兩次迭代
θj的改變量,若不再變化,則判定收斂;
2) 更常用的方法:檢驗
j(θ)
,若不再變化,判定收斂。需要注意的是,學習係數一般為
0.01
或者0.005
等,我們可以發現樣本量越大,
(y-h(xi))*xj
i會相對較大,所以在學習係數中用乙個常數除以樣本來定相對合理,即
0.005/m。對於
lms演算法,剛才推導的公式是針對於乙個樣本,如果樣本多於乙個,那麼我們可以有兩種方式更新引數。一種是每一次更新都使用全部的訓練集合,該方法稱之為批量梯度下降
(batch gradient descent)
。需要注意的是,梯度下降法很可能得到區域性最優解,而我們這裡的回歸分析模型僅有乙個最優解,因此區域性最優解就是最終的最優解。
(成本函式為凸函式
)。另外一種是針對訓練集合中每乙個樣本,每次都更新所有的引數值,該方法稱之為隨機梯度下降
(stochastic gradient descent)
。當資料量很大的時候,批量梯度下降法計算量較大,而隨機梯度下降方法往往相對較優。通常情況下,隨機梯度下降比批量梯度下降能更快的接近最優值
(但也許永遠也得不到最優值
),資料量大的情況下,通常選擇使用隨機梯度下降法。
梯度下降法的缺點是
:靠近極小值時速度減慢
(極小值處梯度為
0),直線搜尋可能會產生一些問題
(得到區域性最優等
),可能會
'之字型
'地下降
(學習速率太大導致)。
標準方程組推導
最小化成本函式的方式不只是有梯度下降法,這裡我們採用標準方程組的方式求解得到精確的解。對於成本函式
j(θ)
,我們定義輸入變數x是
m*(n+1)
維矩陣(
包含了截距項
),其中
m表示樣本數,
n表示特徵數。輸出是
m*1維矩陣,引數θ是
n+1*1
維矩陣,則
j(θ)
可以如下表示:
j(θ) = (xθ – )t * (xθ-)
要求解θ使得
j(θ)
最小,那麼只需要求解
j(θ)對θ
的偏微分方程即可。 ∇θ
j(θ) = [(xθ – )t * (xθ-)]
= t]*(xθ – ) + (xθ – )t ]*
= xt*(xθ – ) + xt*(xθ – )
= xt*(xθ – )
= xt*x*θ – xt*
因此,令∇θ
j(θ) = 0
,即可求得使
j(θ)
最小的θ
的值,因此:
xt*x*θ – xt* = 0
,得到θ = (xt*x)-1 * (xt*)
。在求解回歸問題時候,可以直接使用該結果賦值於
θ,不過這裡存在的問題是對矩陣的求逆,該過程計算量較大,因此在訓練集合樣本較大的情況並不適合。
注:∇θj(θ)
表示對j(θ)
中的每乙個
θ引數求偏微分。這裡化簡的方式是矩陣偏微分注意:
at*b) = bt)*a, at = (a)t, at*b = (bt*a)t。
概率解釋
對於回歸問題,我們不禁要問為什麼線性回歸或者說為什麼最小均方法是乙個合理的選擇呢?這裡我們通過一系列的概率假設給出乙個解釋。
(下一講)
監督學習應用 梯度下降
andrew ng 機器學習筆記 這一系列文章文章是我再 andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。參考博文 本節課程內容包括 1 linear regres...
監督學習應用 梯度下降
andrew ng 機器學習筆記 這一系列文章文章是我再 andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。參考博文 本節課程內容包括 1 linear regres...
監督學習應用 梯度下降筆記
第1 2節主要就是講了線性回歸的東西。課程中用了兩種方法來解決引數求解的問題 1是梯度下降的方法 2是稱為隨機 增量 梯度下降的方法。首先我們來看下面這張圖 我們已知一些 x,y 點的分布。現在我假設有一已知的x,想求期望的y是多少。假設現在我能 用y h x 表示x和y的關係。那麼輸入x,輸出y就...