电竞比分网-中国电竞赛事及体育赛事平台

分享

詳解梯度下降法求解線性模型參數(shù)

 imelee 2017-02-13

有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)

機器學(xué)習(xí),分為有監(jiān)督學(xué)習(xí)無監(jiān)督學(xué)習(xí)。
有監(jiān)督學(xué)習(xí),就是有訓(xùn)練集,有label,我們是可以知道模型輸出是什么樣子的。而無監(jiān)督學(xué)習(xí),沒有訓(xùn)練集,沒有label,提前無法知道輸出的樣子。
有監(jiān)督學(xué)習(xí)分為兩種:回歸分類。模型輸出若為連續(xù)變量,就是回歸;模型輸出為離散值,就是分類。
無監(jiān)督學(xué)習(xí)常見的是聚類。給定一堆數(shù)據(jù)集,從中找出相似的類簇,這個過程沒有l(wèi)abel。

神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí),SVM和決策樹,都是有監(jiān)督學(xué)習(xí)。下面介紹的方法也只適用于有監(jiān)督學(xué)習(xí)。

模型

機器學(xué)習(xí)最一般的模型就是下面這個圖。

機器學(xué)習(xí)一般模型

給定m個訓(xùn)練集,每個訓(xùn)練集有n個特征。訓(xùn)練集作為X輸入給模型,經(jīng)過訓(xùn)練后模型就是h(x)。
線性模型的求解,就是求解h(x)表達式的過程。

線性模型的表示

線性模型的表達式為

hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
[1]

其中

  • x1~xn就是n個特征,作為模型的輸入
  • θ0~θn,就是線性模型的n+1個參數(shù)

根據(jù)m個訓(xùn)練集,求解θ0~θn的具體數(shù)值的過程,就是所謂的學(xué)習(xí)。求解線性模型,就是求其參數(shù)θ0~θn的解。

線性模型求解思路

我們當(dāng)然是希望求解出來的模型,預(yù)測值盡量逼近真實值。

為了更為直觀的說明線性模型,以最簡單的線性模型hθ(x)=θ0+θ1x為例,用下圖表示,紅色點為訓(xùn)練集。

分類誤差示意

圖中有4(m)個訓(xùn)練集,h(x)是最終求得的模型。

我們希望模型的預(yù)測值與真實值之間的差別,盡量的小。用歐氏距離來表示:

J=(h(x(1))y(1))2+(h(x(2))y(2))2+(h(x(3))y(3))2+(h(x(4))y(4))2
[2]

其中

  • x(1),和y(1)表示第一個訓(xùn)練集的特征,和真實值

J更一般的表達式為

J=14(h(x(i))y(i))2=14(θ0+θ1x(i)y(i))2
[3]

這里的預(yù)測值與真實值之間的歐氏距離之和J,就是所謂的代價函數(shù)。找到能使代價函數(shù)最小值點的參數(shù)θ,就是線性模型的解。

代價函數(shù)

代價函數(shù)的定義如下

J(θ)=12m1m(h(x(i))y(i))2
[4]

它的物理含義就是預(yù)測值與真實值之間的差別。差別越小,就說明我們的模型和真實模型越接近。代價函數(shù)J是其參數(shù)θ的二次函數(shù)。代價函數(shù)的表達式,就是均方差MSE(Mean Square Error)的定義。

這里還是用簡化的線性模型來說明問題,另式[3]中的θ1=0y(i)=1,可得代價函數(shù)的曲線為

代價函數(shù)曲線

這里把代價函數(shù)看成曲線,是最簡單的情況。代價函數(shù)更多情況下是以多維曲面的形態(tài)出現(xiàn)的(曲面也有最低點)。

梯度下降法

圖3中,代價函數(shù)的最小值是其導(dǎo)數(shù)為零的點。

迭代找代價函數(shù)最小值的過程

在圖中任意取一個θ值作為其初始值,然后不斷迭代最終找到代價函數(shù)導(dǎo)數(shù)為0點(最小值)的過程,就是求解代價函數(shù)參數(shù)θ的過程(學(xué)習(xí)),也就是梯度下降法的物理含義。它的思想為,只要順著梯度方向下降迭代,就能找到代價函數(shù)的最小值。

對于代價函數(shù)是多維曲面的情況,可以把曲面類比成山,想象梯度下降法就是從山上往下走,每一步順著梯度方向,最終肯定就能走到山谷最低點。

無論是曲線還是曲面,會不會有多個局部最低點呢?答案是會的,梯度下降法很可能找不到真正的最低點,它可能只能找到局部最低點。
但好消息是,線性模型的代價函數(shù),在數(shù)學(xué)上已經(jīng)被證明為凸函數(shù),即這種函數(shù)的局部最低點就是其最低點。所以我們在線性模型中用梯度下降思路求解最小值是沒有問題的。

最小均方算法

最小均方算法``LMS(Least Mean Square)是梯度下降思想的具體實現(xiàn),它是由Bernard Widrow和Marcian E. Hoff提出的,所以也叫Widrow-Hoff學(xué)習(xí)規(guī)則。

為什么叫最小均方呢,這是因為代價函數(shù)的表達式,就是均方差``MSE(Mean Square Error)的定義。

LMS算法是這樣的

Repeat until convergence (for every j){

θj:=θjαθjJ(θ)
[5]
}(update θj simultaneously)

其中

  • θj表示線性模型的某一個參數(shù)
  • :=是賦值符號
  • α表示學(xué)習(xí)速率
  • convergence收斂

它說明,為了求得任意一個參數(shù)θj的值,首先我們需要對θj取一個初值,然后順著代價函數(shù)J的梯度方向( θj)不斷迭代,直到θj的值收斂(即本次迭代和上次迭代的值為同一個),就找到了θj的值。

對每一個參數(shù)都一起進行這個迭代過程,就能求得每一個參數(shù)的值。不過這里要注意的是,要結(jié)束一輪迭代后,才對各個參數(shù)的值做更新。

這里要注意的是學(xué)習(xí)速率α,它會把梯度值放大。所以學(xué)習(xí)速率越大,尋找代價函數(shù)最小值過程中迭代的步長也就越大。

  • 學(xué)習(xí)速率太大,有可能導(dǎo)致參數(shù)不收斂,或收斂到最后震蕩較大
  • 學(xué)習(xí)速率太小,則肯定會收斂,但收斂迭代次數(shù)會很大
  • 一般情況下,每一次迭代后,梯度都會變小。所以即便學(xué)習(xí)速率是固定值,學(xué)習(xí)步長也會隨著迭代次數(shù)增加而減小

代價函數(shù)的形狀也與各個特征x的大小相關(guān),為了讓代價函數(shù)形狀均衡,一般要對特征做歸一化(比如-1

最小均方算法的一般化表達推導(dǎo)

將代價函數(shù)的表達式[4]帶入LMS算法式[5]中的αθjJ(θ),用偏微分對表達式化簡,可得

αθjJ(θ)

=αθj(12m1m(h(x(i))y(i))2)

=α12m21m(h(x(i))y(i))θj(h(x(i))y(i))
[6]

將線性模型的表達式[1]帶入[6]中的θj(h(x(i))y(i))

θj(h(x(i))y(i))

=θj(θ0+θ1x(i)1+θ2x(i)2+...+θnx(i)ny(i))

=0+0+...+x(i)j+0+...+0
[7]

所以,式[6]可簡化為

αθjJ(θ)

=α1m1m(h(x(i))y(i))x(i)j
[8]

將式[8]帶入LMS算法表達式[5]中,可得LMS算法的一般化表達式為

Repeat until convergence (for every j){

θj:=θjα1m1m(h(x(i))y(i))x(i)j
[9]

}(update θj simultaneously)

參考

  • Andrew NG. machine learning class at coursera

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多