林軒田機器學習基石課程學習筆記9 — Linear Regression

红色石头發表於2018-07-24

上節課,我們主要介紹了在有noise的情況下,VC Bound理論仍然是成立的。同時,介紹了不同的error measure方法。本節課介紹機器學習最常見的一種演算法:Linear Regression.

一、線性迴歸問題

在之前的Linear Classification課程中,講了信用卡發放的例子,利用機器學習來決定是否給使用者發放信用卡。本節課仍然引入信用卡的例子,來解決給使用者發放信用卡額度的問題,這就是一個線性迴歸(Linear Regression)問題。

令使用者特徵集為d維的X,加上常數項,維度為d+1,與權重w的線性組合即為Hypothesis,記為h(x)。線性迴歸的預測函式取值在整個實數空間,這跟線性分類不同。

h(x)=w^TX

根據上圖,在一維或者多維空間裡,線性迴歸的目標是找到一條直線(對應一維)、一個平面(對應二維)或者更高維的超平面,使樣本集中的點更接近它,也就是殘留誤差Residuals最小化。

一般最常用的錯誤測量方式是基於最小二乘法,其目標是計算誤差的最小平方和對應的權重w,即上節課介紹的squared error:

這裡提一點,最小二乘法可以解決線性問題和非線性問題。線性最小二乘法的解是closed-form,即X=(A^TA)^{-1}A^Ty,而非線性最小二乘法沒有closed-form,通常用迭代法求解。本節課的解就是closed-form的。關於最小二乘法的一些介紹,請參見我的另一篇博文:

[最小二乘法和梯度下降法的一些總結]

二、線性迴歸演算法

樣本資料誤差E_{in}是權重w的函式,因為Xy都是已知的。我們的目標就是找出合適的w,使E_{in}能夠最小。那麼如何計算呢?

首先,運用矩陣轉換的思想,將E_{in}計算轉換為矩陣的形式。

然後,對於此類線性迴歸問題,E_{in}(w)一般是個凸函式。凸函式的話,我們只要找到一階導數等於零的位置,就找到了最優解。那麼,我們將E_{w}對每個w_i,i=0,1,\cdots,d求偏導,偏導為零的w_i,即為最優化的權重值分佈。

根據梯度的思想,對E_{w}進行矩陣話求偏導處理:

令偏導為零,最終可以計算出權重向量w為:

最終,我們推導得到了權重向量w=(X^TX)^{-1}X^Ty,這是上文提到的closed-form解。其中,(X^TX)^{-1}X^T又稱為偽逆矩陣pseudo-inverse,記為X^+,維度是(d+1)xN。

但是,我們注意到,偽逆矩陣中有逆矩陣的計算,逆矩陣(X^TX)^{-1}是否一定存在?一般情況下,只要滿足樣本數量N遠大於樣本特徵維度d+1,就能保證矩陣的逆是存在的,稱之為非奇異矩陣。但是如果是奇異矩陣,不可逆怎麼辦呢?其實,大部分的計算逆矩陣的軟體程式,都可以處理這個問題,也會計算出一個逆矩陣。所以,一般偽逆矩陣是可解的。

三、泛化問題

現在,可能有這樣一個疑問,就是這種求解權重向量的方法是機器學習嗎?或者說這種方法滿足我們之前推導VC Bound,即是否泛化能力強E_{in}\approx E_{out}

有兩種觀點:1、這不屬於機器學習範疇。因為這種closed-form解的形式跟一般的機器學習演算法不一樣,而且在計算最小化誤差的過程中沒有用到迭代。2、這屬於機器學習範疇。因為從結果上看,E_{in}E_{out}都實現了最小化,而且實際上在計算逆矩陣的過程中,也用到了迭代。

其實,只從結果來看,這種方法的確實現了機器學習的目的。下面通過介紹一種更簡單的方法,證明linear regression問題是可以通過線下最小二乘法方法計算得到好的E_{in}E_{out}的。

圖中,y是N維空間的一個向量,粉色區域表示輸入矩陣X乘以不同權值向量w所構成的空間,根據所有w的取值,預測輸出都被限定在粉色的空間中。向量\hat y就是粉色空間中的一個向量,代表預測的一種。y是實際樣本資料輸出值。

機器學習的目的是在粉色空間中找到一個\hat y,使它最接近真實的y,那麼我們只要將y在粉色空間上作垂直投影即可,投影得到的\hat y即為在粉色空間內最接近y的向量。這樣即使平均誤差\overline E最小。

從圖中可以看出,\hat y是y的投影,已知\hat y=Hy,那麼H表示的就是將y投影到\hat y的一種操作。圖中綠色的箭頭y-\hat y是向量y與\hat y相減,y-\hat y垂直於粉色區域。已知(I-H)y=y-\hat y那麼I-H表示的就是將y投影到y-\hat y即垂直於粉色區域的一種操作。這樣的話,我們就賦予了H和I-H不同但又有聯絡的物理意義。

這裡trace(I-H)稱為I-H的跡,值為N-(d+1)。這條性質很重要,一個矩陣的 trace等於該矩陣的所有特徵值(Eigenvalues)之和。下面給出簡單證明:

trace(I-H)=trace(I)-trace(H)
=N-trace(XX^+)=N-trace(X(X^TX)^{-1}X^T
=N-trace(X^TX(X^TX)^{-1})=N-trace(I_{d+1})
=N-(d+1)

介紹下該I-H這種轉換的物理意義:原來有一個有N個自由度的向量y,投影到一個有d+1維的空間x(代表一列的自由度,即單一輸入樣本的引數,如圖中粉色區域),而餘數剩餘的自由度最大隻有N-(d+1)種。

在存在noise的情況下,上圖變為:

當N足夠大時,\overline E_{in}\overline E_{out}逐漸接近,滿足\overline E_{in}\approx \overline E_{out},且數值保持在noise level。這就類似VC理論,證明了當N足夠大的時候,這種線性最小二乘法是可以進行機器學習的,演算法有效!

四、Linear Regression方法解決Linear Classification問題

之前介紹的Linear Classification問題使用的Error Measure方法用的是0/1 error,那麼Linear Regression的squared error是否能夠應用到Linear Classification問題?

下圖展示了兩種錯誤的關係,一般情況下,squared error曲線在0/1 error曲線之上。即err_{0/1}\leq err_{sqr}.

根據之前的VC理論,E_{out}的上界滿足:

從圖中可以看出,用err_{sqr}代替err_{0/1}E_{out}仍然有上界,只不過是上界變得寬鬆了。也就是說用線性迴歸方法仍然可以解決線性分類問題,效果不會太差。二元分類問題得到了一個更寬鬆的上界,但是也是一種更有效率的求解方式。

五、總結

本節課,我們主要介紹了Linear Regression。首先,我們從問題出發,想要找到一條直線擬合實際資料值;然後,我們利用最小二乘法,用解析形式推導了權重w的closed-form解;接著,用圖形的形式得到E_{out}-E_{in}\approx \frac{2(N+1)}{N},證明了linear regression是可以進行機器學習的,;最後,我們證明linear regressin這種方法可以用在binary classification上,雖然上界變寬鬆了,但是仍然能得到不錯的學習方法。

註明:

文章中所有的圖片均來自臺灣大學林軒田《機器學習基石》課程

更多AI資源請關注公眾號:AI有道(ID:redstonewill)

相關文章