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