林軒田之機器學習課程筆記( how can machines learn之linear regression)(32之9)

歡迎轉載,可以關注博客:http://blog.csdn.net/cqy_chen

概要

上節課我們講到了對於任意的存在噪音以及錯誤的數據中,vc界是可以學習的。那麼當我們需要預測的東西不是兩個分類,而是一個實數呢?比如同樣在信用卡授信中,現在的問題不是是否發放信用卡,而是發放多少?有的人發放5W,有的人10W,那麼這個怎麼來確定呢?
這就是本節課要講的問題,迴歸問題。

線性迴歸問題

這裏同樣採用信用卡額度來舉例。
迴歸問題比較直觀的感受是,根據用戶的特徵,比如收入,年齡等。然後分別給一個權重,相乘相加得到一個數字。
這裏寫圖片描述
這個很像PLA算法,只是PLA還需要取正負號,因爲要進行分類。
形象化的圖形如下:
這裏寫圖片描述
因爲我們需要保證預測的值和原始的值儘可能的接近,在X是一維的時候,就是使用一條直線去你和這些點。當X是二維的時候,就是採用這些平面去擬合這些點。這些紅色的線就是實際的值和擬合的值的差,一般稱爲殘差。當然我們希望這些殘差越小越好,yy^ ,這裏用y 表示f 產生的標記,y^ 表示最後h 預測的標記。
一般在迴歸問題中會採用平方和的方式作爲損失函數,如下:

err(y,y^)=(yy^)2

當然具體問題具體分析,還有的用RMSE 。這裏再次強調損失函數是關係演算法如何在假設空間中選取假設的。

回到上面的問題,這個時候,採用均方誤差的時候,計算如下:
這裏寫圖片描述
現在的問題就是要如何最小化Ein(w) ,這就是演算法要去解決的問題嘍。

線性迴歸算法

回到上面,我們要如何最小化:

Ew=1Nn=1N(wTxnyn)2

這裏稍微進行變化下:
這裏寫圖片描述
這個時候損失函數就完全表示爲矩陣的方式:Ein(w)=1N||Xwy||

那麼這個時候損失函數是一個凸函數,對於凸函數,如果可導的話就可以直接求出來了。如下:
這裏寫圖片描述
所以現在的問題就找到一個w使得Ein 在改點處偏導爲0。
那麼如何求解呢?我們將上面的向量乘法改變下:
這裏寫圖片描述
對於向量的求導大家可以參考:
https://pan.baidu.com/s/1pKY9qht
所以要使導數爲0,那麼就是

Ein(w)=2N(XTXwXTy)=0

得到:XTXw=XTy
X 一般是一個n×d 的矩陣,那麼得到XTX 是一個d×d 的矩陣。
所以如果XTX 可逆的話,那麼可以直接得到w=XTX1XTy
如果不可逆的話,我們一般採用僞逆X
一般我們定義僞逆
X=XTX1XT

關於僞逆可以參考:
https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse
所以我們得到
w=Xy

問題推廣

上面我們已經求解了線性迴歸的解,給人的感覺是一下求解了問題的解,不像PLA中一步步的求解。其實我們在求解僞逆的時候也是一步步求解的。像這樣的機器學習算法稱爲閉式解。機器學習的最終目的是Eout 比較小。那麼我們來看看線性迴歸問題求得的閉式解會不會使得Eout 變小呢?這裏先從Ein 出發。
下面的結論:表示Ein 的平均和噪音以及自由度,資料量有關。
這裏寫圖片描述
要證明上面的式子,首先進行替換。
這裏寫圖片描述
這裏稱XX 爲帽子矩陣,因爲它乘以y就使得y>y^
那麼我們看看這個帽子矩陣在空間上是怎麼表現的呢
這裏寫圖片描述
1)粉色的部分是由X 的列向量展開的平面,維度最多是d+1
2)y^ 是在X 的列向量展開的平面中。
3)要使得yy^ 最小,那麼我們需要將y 投影到由X 的列向量展開的平面中。所以帽子矩陣的意義就是做一個變換,將y>y^
4)而IH 也是一個變換,將y投影到垂直的線中。
同時我們還可以證明

trace(IH)=N(d+1)

大致的說明下,由於將y 投影到了最多是d+1維的空間中,那麼還剩下N-(d+1)的自由度.

上面說明了沒有噪音的情況,那麼存在噪音的情況呢?
這裏寫圖片描述

EoutEint2(d+1)Nvc

這個時候可以想象我們也將噪音的部分投影到垂直的直線上,就是也做一個IH 的變換,其實就是yy^ 。因爲噪音的部分投影到直線上和yy^ 是一樣的嘛。
所以得到了
E¯¯¯in=noiselevel(1d+1N)E¯¯¯out=noiselevel(1+d+1N)

至於爲什麼Eout 是做的加法呢?因爲Ein 是爲了更加的擬合,導致會過多的考慮噪音,而在未知樣本中,這就會反彈回來。
根據上面兩個式子,我們得到學習曲線圖。
這裏寫圖片描述

在實際的工作中,在調完參數後,一般會繪畫學習曲線來判斷當前模型是過擬合還是欠擬合。 調參的話一般可以通過繪畫驗證曲線。
關於通過學習曲線可以參考:
https://www.cnblogs.com/nolonely/p/7382287.html

線性迴歸處理二分類問題

我們知道線性迴歸基本可以一步就解出來了,但是在PLA中我們卻是一個NP難問題。
這裏寫圖片描述
那麼這裏我們可不可以將線性迴歸的思想來解線性分類的問題。
假如我們將分類中的-1和+1直接看成數字呢?然後採用迴歸的方式?
這樣是否可行呢?迴歸和分類問題最大的區別在於損失函數的不同,如下:
這裏寫圖片描述
上面的圖形證明,平方的錯誤一定比0/1的錯誤來的大。
根據vc維,我們在第七次課程中講到的:
http://blog.csdn.net/cqy_chen/article/details/78888890
對於分類問題的Eout ,有:
這裏寫圖片描述
所以當我們直接採用了線性迴歸的解去解分類問題,一般來說還算ok。或者我們可以以線性迴歸問題的解作爲分類問題的初始解,這樣加速分類問題的求解速度。

歡迎轉載,可以關注博客:http://blog.csdn.net/cqy_chen

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章