機器學(xué)習(xí)中,梯度下降算法的問題引入
今天講解的內(nèi)容是梯度下降算法。
梯度下降算法在機器學(xué)習(xí)中的應(yīng)用十分廣泛,該算法的最主要目的是通過迭代的方法找到目標(biāo)函數(shù)的最小值,經(jīng)常用來解決線性回歸和邏輯回歸等相關(guān)問題。本節(jié)課主要講解梯度下降算法解決一元線性回歸問題,包括四個部分,問題引入、數(shù)學(xué)理論、算法實現(xiàn)、上機實驗。
1、問題引入
來看一個生活中的例子。在買房的時候,房屋價格是人們最關(guān)心的問題,都希望買到性價比高的房子。有很多特征影響房屋的價格,例如面積、地理位置、交通、樓層、綠化程度等等。其中面積與房價最為相關(guān)。
2、數(shù)學(xué)理論
來看一組數(shù)據(jù),數(shù)據(jù)包括8套房屋的面積和成交價格的對應(yīng)關(guān)系。
例如,0號房子面積為50平米,成交價為280萬。那么是否可以根據(jù)這組數(shù)據(jù),找到房子面積和成交價格的對應(yīng)關(guān)系,從而未來利用這個關(guān)系,根據(jù)面積,計算出價格呢?為了更明顯的觀察出面積和價格之間的關(guān)系,將這組數(shù)據(jù)標(biāo)記在坐標(biāo)系中,其中橫坐標(biāo)表示面積,縱坐標(biāo)表示價格。
可以發(fā)現(xiàn),這些離散的點之間存在著線性關(guān)系,我們可以使用一條直線來描述這種線性關(guān)系,使得這些點盡量均勻的分布在直線兩側(cè)。因為通過一條直線近似表示自變量與因變量的關(guān)系,所以被稱為線性回歸。而只有一個自變量,面積影響因變量價格,所以是一元線性回歸。
我們使用平面上的直線來描繪一元線性回歸的線性關(guān)系。直線方程hθ(x)=θ0 + θ1x,其中x代表面積,hθ(x)代表預(yù)測的房價,方程有兩個參數(shù),截距θ0和斜率θ1,當(dāng)θ0和θ1 取不同的值時,可以得到不同的直線方程hθ(x)。后面就要找出最合適的θ0和θ1,使得直線hθ(x)最好的描繪出面積和價格的關(guān)系。
3、算法實現(xiàn)
嘗試畫出幾組直線表示房屋面積和房價。例如,當(dāng)θ0 = 0 ,θ1 = 4 時,得到圖像1,很明顯,斜率偏小,截距偏小。修改θ0 = 10,θ1 = 5,得到圖像2,這條直線就基本符合面積和價格的關(guān)系了。
在此基礎(chǔ)上,我們可以繼續(xù)調(diào)整,挑選出一條最合適的直線。但是這時又出現(xiàn)一個問題,在調(diào)整過程中,直線變化不大,很難通過直觀感受判斷哪條直線最符合面積和房價之間的關(guān)系。
這時就需要使用均方誤差來精確的選出最合適的直線,即最合適的θ0和θ1。
均方誤差,MSE,mean square error,是反映真實值與預(yù)測值之間差異程度的一種度量。在樣例數(shù)據(jù)中,真實房價與預(yù)測房價之間的差異程度,就可以使用均方誤差來衡量。均方誤差越小,說明用來預(yù)測的直線就越合適。
假如有m個樣本,每個樣本為平面中的一個點,第i個樣本表示為xi,yi。例如,表中有8個樣本,m=8,x代表面積,y代表價格,x0=50,y0=290,x1=60,y1=305。預(yù)測直線為hθ(x)=θ0+θ1x,那么hθ(x0),hθ(x1),hθ(xi)分別為第0個,第1個,第i個樣本的預(yù)測值。這里如果我們選定了某個預(yù)測直線,那么θ0,θ1也就確定了,從而根據(jù)直線公式和房屋面積,也可以將樣本的預(yù)測值計算出來。
均方誤差的公式為,m分之sigema i= 1累加至m h θ xi 減 yi 差的平方,其中m為樣本的個數(shù), h θ xi 為第i個樣本的直線預(yù)測值,yi為第i個樣本的真實值。那么均方誤差公式即求m個樣本的直線預(yù)測值與真實值差的平方和,再取平均。
4、上機實驗
例如,假如預(yù)測直線的θ0 =10,θ1 = 5,即h(x) = 5x +10。那么8個樣本,根據(jù)面積,可以計算預(yù)測價格為260,310,360,410,460,510,560,610。通過均方誤差公式,得到均方差為268.75。不同的θ0和θ1會計算得到不同的均方差,均方差越小,θ0和θ1就越合適。
在此基礎(chǔ)上,定義代價函數(shù)J(θ)為1/2倍的均方誤差,由于樣本的個數(shù)m,每個樣本的橫坐標(biāo)x和縱坐標(biāo)y都是已知的,所以代價函數(shù)J(θ)中的未知數(shù)為直線方程的截距θ0與斜率θ1。那么問題就轉(zhuǎn)化為,求出一組θ0和θ1,使得代價函數(shù)J(θ)取得最小值。
例如,表格中有3個樣本,x0,y0,x1,y1,x2,y2。預(yù)測直線為hθ(x)=θ0+θ1x,那么將J(θ)展開得到關(guān)于θ0與θ1的二元表達式。即求J(θ0,θ1)中使取得最小值θ0,θ1。
那么如何求出θ0和θ1呢?就可以使用本節(jié)課要講的梯度下降算法了。至此,梯度下降算法的引入就講完了,我們下節(jié)課再見。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。