連載 | 機器學習基石 Lec 9: 線性回歸

Tips:未進行解釋的符號主要參照lec1,部分需要參照其他lec~


前面幾個Lecture介紹了why can ML?并介紹了一個簡單的model:PLA 。有了理論保障,如何設計algorithm?下面進入How can ML 階段 ^ - ^


Lec 9 :Linear Regression

前面提到的基本是binary classification,如 銀行根據(jù)顧客信息決定是否發(fā)放信用卡……如果換成銀行想得到的是顧客的信用額度,這時就是regression問題了~

這章介紹一個新的model:Linear Regression~

1、Hypothesis & Error Measure

regression 的輸出空間y = R,什么樣的H可以輸出實數(shù)?

已有顧客的data:x = (x0,x1,x2,……,xd),每一維的數(shù)據(jù)有不同的含義,如收入、年齡、性別、工作等等。自然地,顧客的信用額度可以用一個加權分數(shù)來衡量:

所以線性回歸模型的Hypothesis可以表示為:

嗯……你會發(fā)現(xiàn)這個h(x)和perceptron的h(x)很像,只是少了取sigh。

那linear regression的H長什么樣子呢?x是一維向量和二維向量時如圖

這時的關注點不再是 正負 ,而是 距離。g(x)和f(x)的距離,即紅線部分。一般把紅線叫做 誤差 或 residuals(余數(shù),在技法課程中還會看到這個概念)。

這個H的衡量標準是什么?regression通常都會使用squared error ,err(y^,y)= (y^ - y)的平方,則Ein和Eout表示為:

wx 替換 h(x)

注:經(jīng)過上一節(jié)討論,現(xiàn)在的setting是有noise的,x服從一個分布P(x),y也會服從一個分布P(y|x),x、y是聯(lián)合分布。

所以接下來的問題就是 minimize Ein(w),求的w也就求得g。

2、minimize Ein(w)

已經(jīng)有了Ein(w)的表達式,將其轉(zhuǎn)化為矩陣形式,方便后續(xù)計算:

現(xiàn)在優(yōu)化目標是:

這個式子更簡潔,w是唯一變量。Ein(w)是連續(xù)函數(shù)continuous,且可微differentiable,凸函數(shù)convex 。形象點兒就是下圖這樣的:

學過微積分的應該知道,這時候存在最低點,且最低點梯度為0.所以找到使梯度為0的w就是結果。(這個思路很重要)

LIN是線形回歸的意思

那就算算梯度咯……

展開Ein(w):

用A、b、c替換已知項:

得到:

令梯度等于0,可以求得w。

大部分情況下 (XTX)都是可逆的(因為N>>d+1,本人并沒有理解)。如上圖所示,將一部分定義為pseudo-inverse X+,虛假的逆矩陣。在(XTX)不可逆時,線代里面有很多求 pseudo-inverse 的方法,實際應用中,也會有很多實現(xiàn)好的工具可以用來求X+,建議直接計算X+求得w。

至此,我們就得到一個完整的Linear Regression 模型,完整的algorithm:

這是一個simple & efficient的算法,我們只需要計算X+。

3、LR真是一個學習算法嗎???!

似乎我們只是計算了一個X+就得到了結果,既沒有通過迭代優(yōu)化Ein也沒有優(yōu)化Eout,這真的是一個學習算法嗎?其實答案必然是,why?我們已經(jīng)使得Ein最小,dvc有限時則Eout接近Ein。實際上,迭代優(yōu)化的過程隱藏在X+的計算過程中了………只要最后Eout是good,也就可以說 learning happened!

VC理論可以保障Eout會很小,對于LR還有另外一種解釋,這種解釋得益于analytic solution(就是可以輕易分析出結果的意思):

先從Ein 的平均出發(fā),Eout推導與之類似。Ein的平均與VC關注的不一樣,VC關注的是個別的Ein。這里的平均是指多次抽取,計算多個Ein,再取平均。最終得到的結果是Ein的平均與“noise level”、“d + 1”、“N”有關……

計算Ein時,Ein表示形式轉(zhuǎn)化為上圖,稱XX+為 hat matrix H,為什么?因為y乘上這個矩陣后被戴上了一個帽子 ^……哈哈哈哈哈哈哈哈,這是千真萬確。

hat matrix做了什么事情?用圖解釋。

粉色部分可以看成是各個x組成的一個空間,span of X,X散在一個空間里面。y^ = X W,其實y^就是各個x的線性組合,所以y^會在這個X 的span里面(這里就理解為一個平面就好了,輸入的x都在這個平面上,所以線性組合出的y^也會在這個平面上)。

紫色部分是Y向量,n維。綠色部分則是y-y^的值,我們希望y - y^越小越好,最小的情況就是垂直的時候,即圖中綠色的線。所以其實hat matrix就是把y投影到span of X,得到y(tǒng)^。(I - H)y就是y - y^,算得residual。

直接給出一個結論:trace(I - H) = N - (d + 1),trace是對角線和。why?沒給出。但是其哲學含義為:原本自由度為N,投影到一個 d+1維的平面,自由度減少d + 1.

下面再看一張圖,理解noise做了什么事情?

紅色f(X)是理想中的那個遙不可及的夢,紫色y是加入了noise 的f(X),y = noise + f(X) 。從圖上可以看出,對noise做(I - H)投影同樣是得到 y - y^這條綠色的線!!!沒錯,residual都是noise惹得禍啊……

至此,我們就可以重寫Ein這個式子:

恩,這樣我們就得到了這節(jié)開始給出的結論:

Eout與Ein類似,只是Eout是“加上”。如何理解呢?哲學上,Ein是我們拿在手上的data,得到的結果自然會偏心使得Ein小一些,而Eout如果也偏向于小一些,就會偏兩次!所以,Eout加,再偏回來……哈哈哈哈哈哈,這節(jié)的哲學都很有趣!

Ein和Eout的平均作圖,稱為 Learning Curve (后續(xù)章節(jié)會再提到這里):

σ平方 就是 noise level 。

這里Ein和Eout的平均差異是 2(d+1)/N 。而之前VC是考慮的最壞情況下差多少……

到這里,應該不得不相信LinReg真的是一個學習算法……

個人小結一下:

前面的PLA已經(jīng)感受到即便很直觀很直接的簡單模型也都有著豐富的數(shù)學理論在里面,后面會提到更多更復雜的模型,每一個都有數(shù)學的哲思在里面,但是至于是先有蛋還是先有雞這件事,我也搞不清楚。不得不感慨,數(shù)學萬歲!

另外,這章的整體思路其實和后面介紹model的章節(jié)的思路都是類似的,大概就是 先有一個Hypothesis,然后找到一個error measure,然后你就通過各種數(shù)學手段去最優(yōu)化,就得到了一個學習算法……恩,基本都是這樣的。當然都是說起來容易做起來難啊……

4、LinReg VS LinClassification

線性回歸和線性分類比較下吧……

直接上圖,不解釋:

上面說明了它們之間的區(qū)別,但這不是重點,重點是它們之間微妙的聯(lián)系!

其實{-1,+1} ∈ R,而線性回歸又很好解,那么是不是可以用線性回歸來做分類呢?!可以!

算出regression的分數(shù)后取sign就好了……嘿嘿嘿,理論上怎么解釋呢?上圖!

這個圖是什么意思呢?線性回歸和線性分類的主要區(qū)別就是錯誤衡量標準,這張圖顯示了 err(sqr)是err(0/1)的上限,所以,如果err(sqr)在我們接受的范圍內(nèi),那err(0/1)必然也可以接受。(這個思路很重要)。嗯哼~我們又找到了一個err(0/1)的上限,比VC bound更loose的上限。做回歸效率更高,把err(0/1)換成err(sqr),相當于用上限的loose換取了efficiency!

通常用回歸進行分類表現(xiàn)不會太差,但是一般情況下,是用線性回歸算得的w作為線性分類(PLA or Pocket)的w0 ,這樣可以加速分類的速度。( 這個思路很重要)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容