機(jī)器學(xué)習(xí)——回歸

什么是回歸?

達(dá)爾文的某個(gè)親戚Galton于1877年在生物學(xué)領(lǐng)域完成了第一次回歸預(yù)測。根據(jù)西瓜書中的描述:預(yù)測的結(jié)果是連續(xù)值,則稱之為回歸。

此外,不妨提一下分類:與回歸問題一樣,分類問題同屬于監(jiān)督學(xué)習(xí),與之不同的是,分類問題預(yù)測的結(jié)果輸出是離散的值,比如判斷一個(gè)人得的腫瘤是良性的還是惡性的,這就是0/1離散輸出問題。

單變量線性回歸

單變量的線性回歸是回歸問題的一種,它的模型表達(dá)式為:hθ(x)=θ0+θ1x? 。由于它只有一個(gè)特征/輸入變量x,同時(shí)它擬合的曲線是一條直線,所以該問題叫做單變量線性回歸問題。 如果不好理解就暫時(shí)往下看。

一個(gè)回歸問題的流程:

首先我們通過適當(dāng)?shù)膶W(xué)習(xí)算法對數(shù)據(jù)集進(jìn)行處理,得到h。h代表擬合的曲線,也稱為學(xué)習(xí)算法的解決方案或函數(shù)或假設(shè)。假設(shè)這是一天內(nèi)溫度關(guān)于電量的單變量線性回歸問題,這時(shí)通過面積大小就能預(yù)測出價(jià)格。如果不好理解可以看看下圖:?


怎么處理一個(gè)回歸問題?

對回歸問題來說,假設(shè)的選擇是一個(gè)關(guān)鍵問題。在只有數(shù)據(jù)的情況下,如何確定h的形式?假設(shè)用電量的問題是線性回歸的。那么θ0和θ1在這個(gè)例子中便是直線的斜率和在y軸上的截距。那好吧,問題又來了:怎么選擇θ0和θ1,從而使得到的線性擬合更加準(zhǔn)確呢?這時(shí)就需要引入另一個(gè)概念:均方誤差代價(jià)函數(shù)(也叫作平方誤差代價(jià)函數(shù))。

代價(jià)函數(shù)(cost function)

上面說了,代價(jià)函數(shù)是為了讓模型更加準(zhǔn)確。代價(jià)函數(shù)是解決回歸問題最常用的手段,該函數(shù)的表達(dá)形式如下:


我們的目標(biāo)就是使得J(θ0,θ1)最?。ú灰洣?和θ1分別表示直線的斜率和在y軸上的截距)。

因?yàn)樾甭屎孟癫⒉挥绊懸粭l直線的最小值,所以我們可以把公式化簡一下,把θ0去掉:


假設(shè)有三組數(shù)據(jù),數(shù)據(jù)分別為(1,1),(2,2),(3,3)?

當(dāng)θ1=0.5時(shí),hθ(x)=0.5x,這三個(gè)點(diǎn)分別預(yù)測為:?

(1,0.5),(2,1),(3,1.5)?

則此時(shí)的損失函數(shù)的值為((1-0.5)^2+(1-2)^2+(3-1.5)^2)/(2*3)=0.583?

當(dāng)θ1=1時(shí),hθ(x)=x這三個(gè)點(diǎn)分別預(yù)測為:?

(1,1),(2,2),(3,3)?

則此時(shí)的損失函數(shù)的值為((1-1)^2+(2-2)^2+(3-3)^2)/(2*3)=0?

以此類推,推出多個(gè)θ1θ1值下的損失函數(shù)的值,然后繪制θ1和J(θ1)的曲線,找到使得J(θ1)取得最小值時(shí)的θ1的值。繪制的曲線為:?

從中可以看出當(dāng)θ1=1θ1=1時(shí)損失函數(shù)最小,所以h的表達(dá)形式為: hθ(x)=x。此時(shí)對于一個(gè)待測試的樣本,最終的預(yù)測值就可以通過確定的h表達(dá)式來獲得。這就是完整的回歸問題。

上述的問題已經(jīng)將其進(jìn)行了簡化,若不是簡化形式,求解形式相同,只不過原來θ1和J(θ1)的曲線,轉(zhuǎn)化為θ0,θ1和J(θ1,θ0)曲面,代價(jià)函數(shù)的圖形模樣變成了下圖所示:?


數(shù)據(jù)少的時(shí)候我們也許可以在復(fù)雜的形式中人工計(jì)算,但是如果數(shù)據(jù)量過于龐大叫我算那應(yīng)該是不可能的。這個(gè)時(shí)候又想找到最有參數(shù)怎么辦?可以通過梯度下降法來達(dá)到目的。

梯度下降法

梯度下降法的思想是:開始隨機(jī)選擇一個(gè)參數(shù)的組合(θ0,θ1,...,θn)(θ0,θ1,...,θn),計(jì)算代價(jià)函數(shù),然后我們尋找下一個(gè)能讓代價(jià)函數(shù)下降最多的參數(shù)組合。我們持續(xù)這樣做,直到到達(dá)一個(gè)局部最小值。由于我們沒有嘗試所有的參數(shù)組合,所以不能確定得到的結(jié)果是局部最小值還是全局最小值。?

梯度下降法的數(shù)學(xué)定義如下:?

其中,α代表學(xué)習(xí)率(learning rate),它決定了沿著能讓代價(jià)函數(shù)下降程度最大方向的步長。 值得注意的是,θ0,θ1是同時(shí)更新,也就是說:?

我們需要先求出一個(gè)步驟后,再去給θ0,θ1新賦值


梯度下降的過程:

?

正如上圖代表兩座山,你現(xiàn)在所處的位置為最上面的那一點(diǎn),你想以最快的速度達(dá)到山下,你環(huán)顧360度尋找能快速下山的方向,這個(gè)過程對應(yīng)于求偏導(dǎo)的過程,你每次移動(dòng)一步,移動(dòng)的步長對應(yīng)于α,當(dāng)你走完這一步,然后接著環(huán)顧360度,尋求最快下山的方法,然后在走出一步,重復(fù)這個(gè)過程,直到走到山下,走到山下對應(yīng)于找到了局部最小值(因?yàn)椴⒉荒艽_定是不是全局的最小值)。

步長α和偏導(dǎo)對梯度下降法的影響:

注意:下圖中討論,都是在θ0=0的簡單形式下討論的。?

步長對梯度下降法的影響:?

1. 當(dāng)步長太小時(shí),每次走的步子很小,導(dǎo)致到達(dá)最小值的速度會(huì)很慢,也就是收斂速度慢,但是能保證收斂到最小值點(diǎn)。?

2. 當(dāng)步長太大時(shí),梯度下降法可能會(huì)越過最小值點(diǎn),甚至可能無法收斂。?

兩種情況的示意圖如下:?



梯度對梯度下降法的影響:?

個(gè)人對梯度的理解:有一些地方比較陡峭(只討論下坡的情況下,上坡太累,就先忽略吧),那么我們就會(huì)說這里的梯度比較大,因此在這里下降得最快。


粉紅色的點(diǎn)為初始點(diǎn),在此點(diǎn)求出導(dǎo)數(shù),然后乘以學(xué)習(xí)率,更新參數(shù)θ1,到達(dá)第二個(gè)點(diǎn),然后再在第二個(gè)點(diǎn)求導(dǎo)數(shù),從斜率上明顯可以看出,第二個(gè)點(diǎn)的斜率明顯比第一個(gè)點(diǎn)的斜率低,也就是說雖然學(xué)習(xí)率固定,但是這一次更新的步長比上一次要小,以此類推,我們能夠得出一個(gè)結(jié)論,當(dāng)接近局部最低時(shí),導(dǎo)數(shù)值會(huì)自動(dòng)變得越來越小,所以梯度下降法會(huì)自動(dòng)采用較小的幅度,這就是梯度下降的做法。所以實(shí)際上沒有必要再另外減小α。

單變量線性回歸模型中的的梯度下降

我們想用梯度下降算法來最小化損失函數(shù),關(guān)鍵問題在于求導(dǎo)(推導(dǎo)過程就省略了)。就是把梯度下降法的算法化成如下:

多變量線性回歸

理解了單變量后,相信多變量也很好解釋:以某地區(qū)的房價(jià)為例,影響價(jià)格的除了面積大小、所在地理位置、物業(yè)管理水平、房屋年齡、樓層數(shù)、戶型等等相關(guān),這些因素都能成為影響房價(jià)的變量。

舉個(gè)栗子??

由訓(xùn)練數(shù)據(jù)所示,房子的價(jià)格是由房子大小、臥室數(shù)量、樓層數(shù)量和房齡確定的。這里,我們設(shè):x1?: 房子大小,?x2?: 臥室數(shù)量,?x3?: 樓層數(shù)量,?x4?: 房齡, y : 房子的價(jià)格,則有:


對于多變量的預(yù)測函數(shù):


多變量和單變量的梯度下降:

多變量梯度下降,是單變量的拓展?,F(xiàn)在,我們就將兩者的數(shù)學(xué)原理進(jìn)行對比。

由上表同樣可以看出,多變量是單變量的拓展。令x0=1同時(shí)n=1,則多變量就會(huì)退化為單變量。


寫累了,有時(shí)間繼續(xù)更····

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容