機器學習筆記——最小二乘法

一. 簡介
html

   首先來看百度百科對最小二乘法的介紹:最小二乘法(又稱最小平方法)是一種數學優化技術。它經過最小化偏差的平方和尋找數據的最佳函數匹配。利用最小二乘法能夠簡便地求得未知的數據,並使得這些求得的數據與實際數據之間偏差的平方和爲最小。最小二乘法還可用於曲線擬合。其餘一些優化問題也可經過最小化能量或最大化熵用最小二乘法來表達。機器學習

   簡而言之,最小二乘法同梯度降低相似,都是一種求解無約束最優化問題的經常使用方法,而且也能夠用於曲線擬合,來解決迴歸問題。最小二乘法實質就是最小化「均方偏差」,而均方偏差就是殘差平方和的1/m(m爲樣本數),同時均方偏差也是迴歸任務中最經常使用的性能度量。函數

 

二. 對於一元線性模型性能

   若是以最簡單的一元線性模型來解釋最小二乘法。迴歸分析中,若是隻包括一個自變量和一個因變量,且兩者的關係可用一條直線近似表示,這種迴歸分析稱爲一元線性迴歸分析。若是迴歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關係,則稱爲多元線性迴歸分析。對於二維空間線性是一條直線;對於三維空間線性是一個平面,對於多維空間線性是一個超平面...學習

   對於一元線性迴歸模型, 假設從整體中獲取了m組觀察值(X1,Y1),(X2,Y2), …,(Xm,Ym)。對於平面中的這m個點,可使用無數條曲線來擬合。要求樣本回歸函數儘量好地擬合這組值。綜合起來看,這條直線處於樣本數據的中心位置最合理。 選擇最佳擬合曲線的標準能夠肯定爲:使總的擬合偏差(即總殘差)達到最小。有如下三個標準能夠選擇:優化

       (1)用「殘差和最小」肯定直線位置是一個途徑。但可能會出現計算「殘差和」存在相互抵消的問題。
        (2)用「殘差絕對值和最小」肯定直線位置也是一個途徑。但絕對值的計算比較麻煩。
        (3)最小二乘法的原則是以「殘差平方和最小」肯定直線位置。用最小二乘法除了計算比較方便外,獲得的估計量還具備優良特性。這種方法對異常值很是敏感。spa

 最經常使用的是普通最小二乘法( Ordinary  Least Square,OLS):所選擇的迴歸模型應該使全部觀察值的殘差平方和達到最小。.net

在講最小二乘的詳情以前,首先明確兩點:1.咱們假設在測量系統中不存在有系統偏差,只存在有純偶然偏差。好比體重計或者身高計自己有問題,測量出來的數據都偏大或者都偏小,這種偏差是絕對不存在的。(或者說這不能叫偏差,這叫錯誤)2.偏差是符合正態分佈的,所以最後偏差的均值爲0(這一點很重要) 。
明確了上面兩點之後,重點來了:爲了計算β0,β1的值,咱們採起以下規則:β0,β1應該使計算出來的函數曲線與觀察值的差的平方和最小。用數學公式描述就是: 3d

                     

其中,yie表示根據y=β0+β1x估算出來的值,yi是觀察獲得的真實值。
htm

爲何要用殘差的平方和最小?用差的絕對值不行麼?
如下是一個相對靠譜的解釋: 
咱們假設直線對於座標 Xi 給出的預測 f(Xi) 是最靠譜的預測,全部縱座標偏離 f(Xi) 的那些數據點都含有噪音,是噪音使得它們偏離了完美的一條直線,一個合理的假設就是偏離路線越遠的機率越小,具體小多少,能夠用一個正態分佈曲線來模擬,這個分佈曲線以直線對 Xi 給出的預測 f(Xi) 爲中心,實際縱座標爲 Yi 的點 (Xi, Yi) 發生的機率就正比於 EXP[-(ΔYi)^2]。(EXP(..) 表明以常數 e 爲底的多少次方)。 
因此咱們在前面的兩點裏提到,假設偏差的分佈要爲一個正態分佈,緣由就在這裏了。 
另外說一點我本身的理解:從數學處理的角度來講,絕對值的數學處理過程,比平方和的處理要複雜不少。搞過機器學習的同窗都知道,L1正則就是絕對值的方式,而L2正則是平方和的形式。L1能產生稀疏的特徵,這對大規模的機器學習灰常灰常重要。可是L1的求解過程,實在是太過蛋疼。因此即便L1能產生稀疏特徵,不到萬不得已,咱們也仍是寧肯用L2正則,由於L2正則計算起來方便得多。。。

明確了前面的cost function之後,後面的優化求解過程反倒變得s容易了。 
樣本的迴歸模型很容易得出:

                    

如今須要肯定β0β1,使cost function最小。學太高數的同志們都清楚,求導就OK。對於這種形式的函數求導,根據數學知識咱們知道,函數的極值點爲偏導爲0的點。

                    

將這兩個方程稍微整理一下,使用克萊姆法則,很容易求解得出: 

                     

這就是最小二乘法的解法,就是求得平方損失函數的極值點。須要注意的一點是β0是常數項對應的係數,此處至關於添加了一個特徵值x0且x0恆爲1,也就是目標函數中的β0能夠當作β0x0,這樣的話就不一樣單獨考慮常數項了(在後面的多元線性模型就用到了該性質)

三. 對於多元線性模型

若是咱們推廣到更通常的狀況,假若有更多的模型變量x1,x2,,xn,能夠用線性函數表示以下: 

                            

對於m個樣原本說,能夠用以下線性方程組表示: 

                        

若是將樣本矩陣xij記爲矩陣A,將參數矩陣記爲向量β,真實值記爲向量Y,上述線性方程組能夠表示爲:

                        

 

對於最小二乘來講,最終的矩陣表達形式能夠表示爲: 

                                

 

其中m≥n,因爲考慮到了常數項,故屬性值個數由n變爲n+1。

 

關於這個方程的解法,具體以下:

                    

其中倒數第二行中的中間兩項爲標量,因此兩者相等。而後利用該式對向量β求導:

                      (1)

由矩陣的求導法則:

                

可知(1)式的結果爲:

                                 

令上式結果等於0可得:

                  

                   (2)

上式就是最小二乘法的解析解,它是一個全局最優解

四. 其餘一些想法

1. 最小二乘法和梯度降低

乍一看看β的最終結果,感受很面熟,仔細一看,這不就是NG的ML課程中所講到的正規方程嘛!實際上,NG所說的的正規方程的解法就是最小二乘法求解析解的解法

(1)最小二乘法和梯度降低法在線性迴歸問題中的目標函數是同樣的(或者說本質相同),都是經過最小化均方偏差來構建擬合曲線。

(2)兩者的不一樣點可見下圖(正規方程就是最小二乘法):

                

須要注意的一點是最小二乘法只適用於線性模型(這裏通常指線性迴歸);而梯度降低適用性極強,通常而言,只要是凸函數,均可以經過梯度降低法獲得全局最優值(對於非凸函數,可以獲得局部最優解)。

梯度降低法只要保證目標函數存在一階連續偏導,就可使用。

2.最小二乘法的一些限制和解決方法:

咱們由第三部分(2)式可知道,要保證最小二乘法有解,就得保證ATA是一個可逆陣(非奇異矩陣);那若是ATA不可逆怎麼辦?什麼狀況下ATA不可逆?

關於ATA在什麼狀況下不可逆:

(1)當樣本的數量小於參數向量(即β)的維度時,此時ATA必定是不可逆的。例如:你有1000個特徵,但你的樣本數目小於1000的話,那麼構造出的ATA就是不可逆的。

(2)在全部特徵中若存在一個特徵與另外一個特徵線性相關或一個特徵與若干個特徵線性相關時,此時ATA也是不可逆的。爲何呢?

具體來講假設,A是m*n維的矩陣,若存在線性相關的特徵,則R(A)<n,R(AT)<n,R(ATA)<n,因此ATA不可逆。

若是ATA不可逆,應該怎樣解決?

(1)篩選出線性無關的特徵,不保留相同的特徵,保證不存在線性相關的特徵。

(2)增長樣本量。

(3)採用正則化的方法。對於正則化的方法,常見的是L1正則項和L2正則項,L1項有助於從不少特徵中篩選出重要的特徵,而使得不重要的特徵爲0(因此L1正則項是個不錯的特徵選擇方法);若是採用L2正則項的話,實際上解析解就變成了以下的形式:

                    

λ即正則參數(是一種超參數)後面的矩陣爲(n+1)*(n+1)維,若是不考慮常數項的話,就是一個單位陣;此時括號中的矩陣必定是可逆的。

3.最小二乘法的改進

最小二乘法因爲是最小化均方差,因此它考慮了每一個樣本的貢獻,也就是每一個樣本具備相同的權重;因爲它採用距離做爲度量,使得他對噪聲比較敏感(最小二乘法假設噪聲服從高斯分佈),即便得他它對異常點比較敏感。所以,人們提出了加權最小二乘法,

至關於給每一個樣本設置了一個權重,以此來反應樣本的重要程度或者對解的影響程度。

 

參考:NG《機器學習》

   《矩陣分析與應用》

   http://www.cnblogs.com/iamccme/archive/2013/05/15/3080737.html

   http://blog.csdn.net/bitcarmanlee/article/details/51589143

相關文章
相關標籤/搜索