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


一. 簡介

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

   簡而言之,最小二乘法同梯度下降類似,都是一種求解無約束最優化問題的常用方法,並且也可以用於曲線擬合,來解決回歸問題。最小二乘法實質就是最小化“均方誤差”,而均方誤差就是殘差平方和的1/m(m為樣本數),同時均方誤差也是回歸任務中最常用的性能度量。

 

二. 對於一元線性模型

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

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

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

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

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

                     

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

為什么要用殘差的平方和最小?用差的絕對值不行么?
以下是一個相對靠譜的解釋: 
我們假設直線對於坐標 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

 


免責聲明!

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



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