Linear Regression(線性回歸)(一)—LMS algorithm


(整理自AndrewNG的課件,轉載請注明。整理者:華科小濤@http://www.cnblogs.com/hust-ghtao/

1.問題的引出

    先從一個簡單的例子說起吧,房地產公司有一些關於Portland,Oregon的房子信息,下表是房子的面積和價格的對照表:

Living area(feet^2) Price(1000﹩s)
2104 400
1600 330
2400 369
1416 232
3000 540
…… ……

 

    將點畫在二維坐標下表示:

image

    那么問題就來了,面積為2000的房子,價格是多少呢?表中沒有直接給出答案,考慮能否根據表中給定的數據,得出價格和面積之間的一個函數,對於重新給定的面積來對其價格進行預測,這就是我們要解決的問題。有人說這不是數據擬合嗎?沒錯這就是數據擬合!若為線性擬合,則表達式為:,擬合結果如些圖:

image

    如果給matlab這組數據,再用一個線性擬合的指令,很快便能得到得值。問題是在計算機內部是如何實現這種線性的數據擬合的,沒錯這就是線性回歸的方法。

    為了便於更一般描述線性回歸的問題,也為了更加嚴謹,先對本課程中出現的一些基本符號與概念作出定義:

    :輸入變量(例如本例中的Living area),也稱為輸入特征;

    :輸出變量(例如本例中的Price),也成為目標變量;

    一對數據,稱為一個訓練樣本;我們用來學習的訓練樣本的集合稱為訓練集。這里的上標指的是樣本在訓練集中的序號。

    稱為輸入變量空間,稱為輸出空間變量。

    把我們的問題描述的更加正式:給定訓練集,去學習一個函數,這樣就可以根據給定的來預測了。我們也把這個函數稱為假設。過程用圖表示如下:

image

    當我們要預測的目標變量是連續時,例如本例中的房屋價格,我們把這種學習問題稱為回歸問題(regression problem);當目標變量只能取一些離散的值時,我們稱這種問題為分類問題(classification problem)。

    更一般地,為了使我們的問題更加一般化,假設輸入特征可以多於一個,像在本例中除了Living area,還有#bedrooms、whether each house has a fireplace、#bathrooms,and so on。如果對於一個線性回歸問題,有個輸入輸入變量,則假設可以寫成:就是我們需要確定的參數。為了使表述更加簡潔,我們令,所以假設可以寫成:,等號右側都是向量,是輸入向量的個數(不含)。那么給定一個訓練集,我們應該如何選擇或者學習?有種想法很顯然,就是使更加接近,至少對於訓練樣本來說是這樣的。為了使這個條件公式化,我們需要提出一個衡量標准的函數,我們定義了一個成本函數(cost function):

    至此,線性回歸問題就是學習,使最小。

2 .LMS算法

     既然已經定義了線性回歸問題,那么用什么算法求解呢?在數值分析中,遇到過類似的問題,先給一組初始估計值,通過不斷地改變,使不斷變小,直到收斂。這里我們應用梯度下降法,它的更新規則是:(對同時更新)。其中稱為學習率,通過調整此參數,可以改變迭代速度。在等式右側,需要計算的偏導數:

           

           

           

    所以更新規則變為:

這個規則就是LMS(最小均方規則)。可以看出每次更新的值是和成比例的,當的值較大時,每次改變的值就較大,反之較小。當已經很小時,說明已經達到擬合要求,的值就不變了。當只有一個訓練樣本時,我們得到LMS算法,將LMS算法應用到線性回歸有兩種方式:批處理梯度下降法和隨機梯度下降法。

2.1 批處理梯度下降法

    算法:

   {

                 

}

可以看出,的值每更新一次都要遍歷樣本集中所有的樣本,得到新的,看是否滿足閾值要求,若滿足,則迭代結束,根據此值就可得到;否則繼續迭代。注意到,雖然梯度下降法易受目標函數的局部極小值的影響,但是一般的線性規划問題只有一個極小值,所以梯度下降法一般可以收斂到全局的最小值。例如,是二次凸函數,則梯度下降法的示意圖:

image

圖中,一圈上表示代價函數的函數值相同類似於地理上的等高線哈,從外圈開始逐漸迭代,最終收斂全局最小值。

2.2 隨機梯度下降法

    算法:

    {

           {

                   

           }

  }

    在這個算法中,我們每次更新只用到一個訓練樣本。若根據當前樣本進行迭代得到一個,此時會得到一個,有新樣本進來之后,在此基礎上繼續迭代,有得到一組新的,以此類推。

    總結一下這兩個梯度算法:批處理梯度下降法,每更新一次,需要用到樣本集中的所有樣本;隨機梯度下降法,每更新一次,只用到訓練集中的一個訓練樣本,所以一般來說,隨機梯度下降法能更快的使目標函數達到最小值(新樣本的加入,隨機梯度下降法有可能會使目標函數突然變大,迭代過程中在變小。所以實在全局最小值附近徘徊,但對於實際應用來說,誤差完全能滿足要求。)。另外,對於批處理梯度下降法,如果樣本集中增加了些許訓練樣本,就要重新開始迭代。由於以上原因,當訓練樣本集較大時,一般應用隨機梯度下降法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM