机器学习入门系列一(关键词:单变量线性回归,梯度下降法)
? ? ? ? 機器學習入門系列一(關鍵詞:單變量線性回歸,梯度下降法)
如上圖所示,我們的目標是希望通過這些數據得到城市人口數和利潤可能的對應關系,并可以通過城市人口數(利潤)來預測它的利潤(城市人口數),在這里我們先規定一下符號記法。
| m | 訓練樣本的個數 |
| x | 訓練樣本中的輸入變量(特征) |
| y | 訓練樣本中的輸出變量(特征) |
| (x(i),y(i)) | 第i個訓練樣本 |
| hθ(x) | 輸入變量x與輸出變量y的映射關系 |
在本例中,訓練樣本個數m為97;輸入變量x為城市人口數,其中x(i)表示第i個城市的人口數;輸出變量y為利潤,其中y(i)表示第i個城市所得利潤。有了訓練樣本,下一步我們需要用一種算法得到一個比較好的映射關系hθ(x),當給定城市人口數x?時,通過映射關系可以得到一個符合訓練樣本規律的合理的利潤y?。由于我們現在討論的是比較簡單的單變量的線性回歸,因此我們假設
hθ(x)=θ0+θ1x(1) 現在我們要選擇一組θ0,θ1,使得在訓練集中對于給定x,hθ(x)盡可能地接近y,因為只有這樣,hθ(x)才能更為接近訓練樣本的規律,才能進行更為準確的預測。漢語言中的“盡可能地接近”非常的抽象,此時我們要把它轉化為數學語言。不妨用數值之差的平方來表示,事實證明用這種表示方法可以更為方便地進行后續的數學處理。 argminθ0,θ112m∑i=1m(hθ(x(i))?y(i))2為方便說明,我們在此定義一個代價函數J(θ0,θ1)。這樣,問題就轉化為尋找一組θ0,θ1使得J(θ0,θ1)最小。 J(θ0,θ1)=12m∑i=1m(hθ(x(i))?y(i))2(3) 那么這個代價函數J(θ0,θ1)到底是什么,長的什么樣子?我們不妨窮舉可能的θ0,θ1,并畫出J(θ0,θ1)的三維圖像。
從圖像可以很直觀地看到,代價函數存在著最小值,但是我們該如何找到這樣的θ0,θ1,難道真的要遍歷所有可能的θ么?其一,我們有可能會找到效果比較好的θ,但是無法找到最優解;其二,當問題變得比較復雜,代價函數變得比較復雜時(hθ(x)不是現在的一元一次),我們甚至不能確定θ的可能范圍,那么我們只能在整個實數范圍內去搜尋,可想而知這是一項多么艱巨的任務。
那么該如何找到最優解,下面介紹一個很重要也很實用的方法,梯度下降法。
什么是梯度下降法?讓我們置身于一望無際的群山之中,現在我們在某個山的半山腰上,現在天快黑了,我們想要下山。忽略一切危險的可能,我們當然要順著最陡的路下山,畢竟這樣比較快。設想一下如果沿著一個非常非常緩的坡下山,我們就要走很久很久的路,無法在天黑之前順利下山。這就是梯度下降法,即朝著梯度最大的方向移動。
在本例中,數學語言描述如下,其中α(正數)為移動的步長,我們首先初始化一組隨機的θ0,θ1,然后對其進行更新。
注意!!梯度下降法是同時更新θ0和θ1,而不是先更新θ0再用更新后的θ0去更新θ1!
梯度下降法有一些很有趣的特征
1.可以找到最優值。
為方便說明,我們設θ0=0,即代價函數J(θ0,θ1)是關于θ1的函數。
- 當初始θ1位于左側,即小于最優θ1時,梯度為負數,由式(4)可知θ1將會增加。
- 當初始θ1位于右側,即大于最優θ1時,梯度為正數,由式(4)可知θ1將會減小。
2.容易陷入局部最優值。
假設代價函數J(θ0,θ1)有多個極值點,如圖所示。不同的初始點,所得的梯度將會不同,迭代很多次后,不同的初始點所走的路線可能會有很大的差異,最終甚至陷入不同的局部最優值。
3.α的選取有一定的講究,過大或過小都無法找到最優值。
為方便說明,我們設θ0=0,即代價函數J(θ0,θ1)是關于θ1的函數。
- α過小。如圖和式(4)可知當逐漸逼近最優解時,梯度會變小,θ1的變化速度將會越來越小,于是需要經過很多很多次迭代才能找到最優解。對于極端情況,θ1甚至永遠也無法得到最優解。
- α過大。如圖和式(4)可知,若初始點距離最優點比較近時,經過一次迭代,θ1將會跨越過最優值,而此時對應的梯度大于初始點的梯度,因而再一次的迭代可能將會更遠離最優值。這樣迭代下去,既無法收斂,也無法找到最優解。
現在我們對梯度下降法有一定的了解,但是該如何去應用在尋找局部最小值?首先我們要求得代價函數J(θ0,θ1)的梯度,求法如下
在本例中對式(1)中的hθ(x)求偏導,結果如下
??θ0hθ(x)=1(6) ??θ1hθ(x)=x(7) 把式(1)(5)(6)(7)代入到(4)中,得
?????????θ0=θ0?αm∑i=1m(θ0+θ1x(i)?y(i))θ1=θ1?αm∑i=1m(θ0+θ1x(i)?y(i))x(i)(8) 因此梯度下降法算法為:
1. 初始化一組隨機的θ0,θ1,選取一個合適的α。
2. 用式(8)循環迭代計算θ0和θ1,直至收斂到局部最小值。
訓練結果如下
總結
以上是生活随笔為你收集整理的机器学习入门系列一(关键词:单变量线性回归,梯度下降法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习入门系列三(关键词:逻辑回归,正
- 下一篇: 机器学习入门系列二(关键词:多变量(非)