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