吴恩达《机器学习》学习笔记二——单变量线性回归
吳恩達(dá)《機(jī)器學(xué)習(xí)》學(xué)習(xí)筆記二——單變量線(xiàn)性回歸
- 一、 模型描述
- 二、 代價(jià)函數(shù)
- 1.代價(jià)函數(shù)和目標(biāo)函數(shù)的引出
- 2.代價(jià)函數(shù)的理解(單變量)
- 3.代價(jià)函數(shù)的理解(兩個(gè)參數(shù))
- 三、 梯度下降——求解最優(yōu)參數(shù)
- 1.梯度下降的步驟
- 2.梯度下降的數(shù)學(xué)表達(dá)
- 四、 用梯度下降法求解的線(xiàn)性回歸
課程鏈接: https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118
第二次筆記主要針對(duì)機(jī)器學(xué)習(xí)第一個(gè)模型——線(xiàn)性回歸,首先給出模型的描述,理清楚各個(gè)變量都是什么含義;然后介紹代價(jià)函數(shù)以及目標(biāo)函數(shù),并詳細(xì)生動(dòng)地解釋了參數(shù)優(yōu)化的過(guò)程,也就是梯度下降方法。
一、 模型描述
首先回顧一下筆記一的房?jī)r(jià)預(yù)測(cè)模型,這是監(jiān)督學(xué)習(xí)里回歸問(wèn)題最經(jīng)典的例子,如下圖所示。后面就會(huì)依據(jù)這個(gè)問(wèn)題來(lái)進(jìn)行線(xiàn)性回歸模型的學(xué)習(xí)。
監(jiān)督學(xué)習(xí)有一個(gè)帶標(biāo)注的數(shù)據(jù)集,為后面分析問(wèn)題的方便,先定義一下幾個(gè)變量,如下圖所示。
圖中那個(gè)兩列的表格即為房?jī)r(jià)預(yù)測(cè)數(shù)據(jù)集。數(shù)據(jù)集樣本的數(shù)量用m表示,假如此處有47條數(shù)據(jù)樣本,則m=47;第一列是數(shù)據(jù)的面積屬性(輸入變量),用x來(lái)表示;第二列是價(jià)格(輸出變量),用y來(lái)表示。那么一個(gè)數(shù)據(jù)樣本就可以用(x,y)來(lái)表示,第i個(gè)樣本就可以用(x(i), y(i))來(lái)表示,需要注意的是,這里的上標(biāo)不是指冪次,而是指代第i個(gè)樣本,如x(1) = 2104,x(2) = 1416。。。。。。
下面看一下房?jī)r(jià)預(yù)測(cè)這個(gè)問(wèn)題的解決思路,如下圖所示。
簡(jiǎn)單來(lái)說(shuō),就是將數(shù)據(jù)集送入學(xué)習(xí)算法進(jìn)行訓(xùn)練,用訓(xùn)練好的模型對(duì)輸入x(房屋面積)進(jìn)行預(yù)測(cè),得到預(yù)測(cè)的輸出y(房?jī)r(jià))。而這個(gè)被訓(xùn)練和用于預(yù)測(cè)的關(guān)鍵模型就被稱(chēng)為假設(shè)函數(shù)。在訓(xùn)練階段需要利用數(shù)據(jù)集對(duì)假設(shè)函數(shù)的參數(shù)進(jìn)行不斷更新,在預(yù)測(cè)階段假設(shè)函數(shù)就是做x到y(tǒng)的一個(gè)映射。
在房?jī)r(jià)預(yù)測(cè)這個(gè)問(wèn)題中,我們選擇的模型形式是單變量一次線(xiàn)性函數(shù)形式:
也可以簡(jiǎn)寫(xiě)為h(x)。需要說(shuō)明一下,房?jī)r(jià)預(yù)測(cè)的模型可以有很多種,除了這種一次線(xiàn)性模型以外,如二次、指數(shù)、對(duì)數(shù)等復(fù)雜模型都有可能適用這個(gè)問(wèn)題。但是這里為了方便講解求解目標(biāo)函數(shù)的過(guò)程,選擇了最簡(jiǎn)單的單變量一次線(xiàn)性函數(shù)來(lái)作為假設(shè)函數(shù),便于解釋原理。
二、 代價(jià)函數(shù)
1.代價(jià)函數(shù)和目標(biāo)函數(shù)的引出
用數(shù)據(jù)集對(duì)假設(shè)函數(shù)進(jìn)行訓(xùn)練的過(guò)程,其實(shí)就是求模型參數(shù)θ_0和θ_1的值的過(guò)程,不同的值表示不同的假設(shè)函數(shù),取何值可以最擬合數(shù)據(jù)集是模型優(yōu)化的目標(biāo)。
我們可以這樣理解,當(dāng)假設(shè)函數(shù)與數(shù)據(jù)集最擬合的時(shí)候,就是所有數(shù)據(jù)樣本到假設(shè)函數(shù)的距離平均值最小的時(shí)候。那么反之,所有數(shù)據(jù)樣本到假設(shè)函數(shù)的距離平均值最小的時(shí)候,就是最擬合的時(shí)候,所以我們要求假設(shè)函數(shù)的參數(shù),可以這樣定義:
其中,求和符號(hào)后的部分是各樣本點(diǎn)與假設(shè)函數(shù)的平方距離,求和之后取平均,然后求使得該表達(dá)式最小的θ_0,θ_1的值,即為最合適的假設(shè)函數(shù)。需要注意的是求平均時(shí)不是1/m,而是1/2m,主要是為了后續(xù)梯度下降法求最小值時(shí)求導(dǎo)方便,這點(diǎn)后面會(huì)提到。
在這里,令
并稱(chēng)其為代價(jià)函數(shù)(也稱(chēng)為平方誤差函數(shù)),則目標(biāo)函數(shù)可以簡(jiǎn)寫(xiě)為
總結(jié)一下:
2.代價(jià)函數(shù)的理解(單變量)
首先為了簡(jiǎn)化理解,我們假設(shè)θ_0為0,即只包含θ_1一個(gè)變量,如下圖所示。
下面我們來(lái)看一下假設(shè)函數(shù)h(x)與代價(jià)函數(shù)J(θ)之間的關(guān)系,三個(gè)數(shù)據(jù)樣本為(1,1)、(2,2)、(3,3)。
(1)θ_1=1,h(x)正好經(jīng)過(guò)三個(gè)數(shù)據(jù)樣本,代價(jià)函數(shù)計(jì)算下來(lái)為0。
(2)θ_1=0.5
(3)θ_1=0
以此類(lèi)推,通過(guò)改變?chǔ)萠1的值,可以繪制出代價(jià)函數(shù)J(θ)的曲線(xiàn),如下圖。
可以觀察到,當(dāng)θ_1=1時(shí),代價(jià)函數(shù)最小,此時(shí)假設(shè)函數(shù)也是最擬合數(shù)據(jù)集的,所以利用最小化平方誤差函數(shù)(代價(jià)函數(shù))來(lái)求假設(shè)函數(shù)的參數(shù)是正確的。但這是針對(duì)只有一個(gè)參數(shù)的情況,下面將對(duì)含有θ_0,θ_1兩個(gè)參數(shù)的情況進(jìn)行理解。
3.代價(jià)函數(shù)的理解(兩個(gè)參數(shù))
當(dāng)考慮兩個(gè)參數(shù)時(shí),代價(jià)函數(shù)已經(jīng)不能用二維坐標(biāo)來(lái)繪制了,因?yàn)槎嗔艘粋€(gè)變量,所以可以用三維坐標(biāo)繪制,如下圖所示,有了單個(gè)參數(shù)的經(jīng)驗(yàn),這個(gè)也不難理解,當(dāng)改變?chǔ)萠0,θ_1兩個(gè)參數(shù)的值時(shí),代價(jià)函數(shù)J(θ_0,θ_1)也會(huì)隨之改變。
在課中,因?yàn)槿S坐標(biāo)不便演示變化的過(guò)程,故引入了等高線(xiàn)圖的概念,即將相同高度的J(θ_0,θ_1)畫(huà)成一個(gè)橢圓,在同一橢圓上的J(θ_0,θ_1)值都相同,不同橢圓上的J(θ_0,θ_1)值都不同,僅為方便演示。而所有橢圓的中心就是J(θ_0,θ_1)值最小的地方。
我們來(lái)看一些舉例:圖中紅色的×代表對(duì)應(yīng)的θ_0,θ_1取值及其相應(yīng)的J(θ_0,θ_1),橢圓的中心為J(θ_0,θ_1)值最小的地方,兩者的距離就是差的多少。
綜上,選擇合適的參數(shù),可以最好的擬合數(shù)據(jù)是問(wèn)題的求解目標(biāo),而目前還停留在一組一組數(shù)據(jù)的嘗試,這顯然是不科學(xué)的,下面將介紹一種自動(dòng)求解最優(yōu)參數(shù)解的方法——梯度下降。
三、 梯度下降——求解最優(yōu)參數(shù)
梯度下降是求解最優(yōu)參數(shù)很常用的一種方法,不僅可以使用在線(xiàn)性回歸中,后續(xù)很多模型的求解都可以使用。
1.梯度下降的步驟
其大致的思路如下所示,代價(jià)函數(shù)J(θ_0,θ_1),目標(biāo)是求其最小時(shí)的θ_0,θ_1參數(shù)值,首先給定θ_0,θ_1一組初始值(可以是任意的,比如都設(shè)為0),然后按照一定的規(guī)則去小小地改變?chǔ)萠0,θ_1的值使得代價(jià)函數(shù)J(θ_0,θ_1)的值變小,直到其最小(很可能是局部最小,而不是全局最小),此時(shí)的θ_0,θ_1值就是待求的。顯然,其中的關(guān)鍵,就是按照什么規(guī)則去改變參數(shù)值。
下面用可視化圖來(lái)演示一下梯度下降的上述過(guò)程:
(1) 首先選擇一個(gè)初始點(diǎn)
(2) 然后每次朝下降最快的方向下降一小步,每次都獨(dú)立地尋找下降方向。
需要注意的是,因?yàn)槌跏嘉恢眠x擇的不確定性,下降的路徑可能完全不一樣,如下圖所示,是從另一個(gè)初始位置開(kāi)始下降,最終下降到了不同的最優(yōu)點(diǎn)。這兩個(gè)最優(yōu)點(diǎn)可能是全局最優(yōu)點(diǎn),可能是局部最優(yōu)點(diǎn),無(wú)法保證一定是全局最優(yōu)。
2.梯度下降的數(shù)學(xué)表達(dá)
上面提到,梯度下降方法最關(guān)鍵的是按照什么規(guī)則改變參數(shù)值,也就是可視化圖中朝著哪個(gè)方向下降一小步,它的數(shù)學(xué)表達(dá)式如下所示。
(1):=是賦值的意思,將計(jì)算后的值賦給θ_j。當(dāng)不止一個(gè)參數(shù)需要更新的時(shí)候,注意要使用同步更新的方法,就是將每個(gè)參數(shù)的新值用舊值計(jì)算好后,一次性全部賦值,而錯(cuò)誤的做法是,計(jì)算更新了一個(gè)參數(shù),然后用更新的值去計(jì)算更新別的參數(shù),這樣就沒(méi)有做到同步更新。
(2)表達(dá)式中的α稱(chēng)為學(xué)習(xí)率,它決定了參數(shù)更新的大小,它越大,每次更新的變化就越大,反之則越小。如果學(xué)習(xí)率太小,可能導(dǎo)致梯度下降收斂速度很慢;如果學(xué)習(xí)率太大,可能導(dǎo)致無(wú)法收斂甚至是發(fā)散,如下圖所示。
(3)偏導(dǎo)數(shù)項(xiàng)我們用單變量函數(shù)J(θ)來(lái)說(shuō)明一下原理。
若J(θ)是一個(gè)如下圖所示的函數(shù),在紅色點(diǎn)位置,J(θ)的導(dǎo)數(shù)為正數(shù),θ將減去一個(gè)正數(shù),即減小,從圖中可見(jiàn),θ減小正是朝著使得J(θ)減小的方向變化。
再考慮如下紅色點(diǎn)位置,J(θ)的導(dǎo)數(shù)為負(fù)數(shù),θ將減去一個(gè)負(fù)數(shù),即增大,從圖中可見(jiàn),θ增大正是朝著使得J(θ)減小的方向變化。
推廣到多參數(shù)的情況,雖然不方便可視化,但原理是一樣的,減去這個(gè)偏導(dǎo)數(shù)項(xiàng),就是朝著使得J(θ)減小的方向變化。
如果已經(jīng)下降到局部最優(yōu)點(diǎn),那么導(dǎo)數(shù)將等于0,參數(shù)將不再更新。
四、 用梯度下降法求解的線(xiàn)性回歸
主要就是將梯度下降法中的代價(jià)函數(shù)具體為線(xiàn)性回歸的表達(dá)式。
對(duì)
求偏導(dǎo)。
所以梯度下降表達(dá)式可表示為如下
下面用可視化圖來(lái)演示參數(shù)變化的過(guò)程,先給出初始位置。
補(bǔ)充:梯度下降有時(shí)也稱(chēng)為Batch梯度下降,就是參數(shù)每次更新都用到了整個(gè)數(shù)據(jù)集的數(shù)據(jù)樣本。相應(yīng)的還有隨機(jī)梯度下降,每次更新只用隨機(jī)一個(gè)數(shù)據(jù)樣本,mini-batch梯度下降,每次使用一部分?jǐn)?shù)據(jù)樣本進(jìn)行更新。
總結(jié)
以上是生活随笔為你收集整理的吴恩达《机器学习》学习笔记二——单变量线性回归的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一、绪论
- 下一篇: 吴恩达《机器学习》学习笔记五——逻辑回归