How can Machine Learn? - Linear Regression
1. What is Regression
機器學習算法一般是這樣一個步驟:
對於一個問題,用數學語言來描述它,然後建立模型,e.g., 迴歸模型或者分類模型;
建立代價函數: Cost Function, 用最大似然、最大後驗概率或者最小化分類誤差等等數,也就是一個最優化問題。找到最優化問題的解,也就是能擬合我們的數據的最好的模型參數;
求解這個代價函數,找到最優解。求解也就分很多種情況了:
1). 如果這個優化函數存在解析解。例如我們求最值一般是對代價函數求導,找到導數爲0的點,也就是最大值或者最小值的地方了。如果代價函數能簡單求導,並且求導後爲0的式子存在解析解,那麼我們就可以直接得到最優的參數了: Gradient Descent。
2). 如果式子很難求導,例如函數裏面存在隱含的變量或者變量相互間存在耦合,也就互相依賴的情況。或者求導後式子得不到解釋解,例如未知參數的個數大於已知方程組的個數等。這時候我們就需要藉助迭代算法來一步一步找到最有解了。
3). 另外需要考慮的情況是,如果代價函數是凸函數,那麼就存在全局最優解。
迴歸(Regression)問題與分類(Classification)問題類似,關鍵的區別在於,Regression的輸出是實數,是一個範圍,所以不能提前確定所有輸出值;而Classification的輸出是確定的值。換個角度說,假如輸出足夠多的數據的時候:如果輸出的值是連續的,這個問題叫做Regression,而如果輸出的值是離散的,那麼這個問題叫做Classification
用數學符號表示如果公式(1)所示。
2. Linear Regression
1) Introduction of Linear Regression
線性迴歸問題同樣的表示各個屬性(Attribution)對最終結果的貢獻:也就是說每個屬性乘以對應的權值,最後再加上一定的偏移,如公式(2)所示
如果給第一項的偏移
Hypothesis h(x):
從公式(3)的可以看出,與二元分類假設函數的表示只差了一個取正負號的函數
2) Error Measurement of Linear Regression
線性迴歸問題的錯誤如圖一所示。
上一章中,提到了迴歸問題我們用平方誤差來表示(其實還有RMSE, R2等方法,老師上課只講了平方誤差,爲了說明方便,我們只寫這個)
根據圖一的信息,很明顯得到公式(4)(5)。
VC Bound可以約束各種情況的學習模型,當然迴歸類型的模型也被也受此約束,只需要尋找足夠小
3) Linear Regression Algorithm
剛剛上面的Error Meansurement中,我們提到了VC Bound中,在訓練樣本足夠的情況下,我們要用特定的算法,來找到最小的
根據公式(6),那麼
所以接下來,我們需要對
1. 首先我們需要考慮兩種情況:①只有一個w; ②w爲向量
2. 首先我們把公式(6)平方去掉
3. 只有一個w的時候,就按照正常的求導方式求導即可,得到公式(7)
4. 當w爲向量的時候,我們需要對其中一個進行轉置,然後再求導,得到公式(8)
5. 根據公式(7)(8)可以看出,兩種情況的求導的結果非常相似,可以用公式(9)表示
6. 最後我們令公式(9)的值爲0,得到我們需要的
4) Generalization Issue
上一節中,我們得到了最佳的 w 的解,但是,哪個是最小的
結論就是得到了
可以看出在N趨於無窮大時,與兩者都會趨近於noise level的值,即
至此可以表明在線性迴歸中可以尋找到很好的
5) Linear Regression for Binary Classification
這一節,我們主要討論能否通過求解線性迴歸的方式求二元分類問題
首先對比Linear Classification 和 Linear Regression, 如圖四
從求解問題的難度考慮,二元分類的求解是一個NP難問題,只能近似求解,而線性迴歸求解方便,程序編寫也簡單。
直覺告訴我們:因爲二元分類的輸出空間{-1,+1}屬於線性迴歸的輸出空間,即
下面給出證明:
入手點:誤差大小
首先對比兩種方法的曲線圖,如圖五所示。
可以發現,無論期望的y爲-1還是+1,
所以我們可以通過使用 Linear Regression 的方法來求解Linear Classification的問題,雖然通過這種方法,得到的誤差可能更大,但卻是一種更有效率的求解方式。在實際運用中,一般都將通過線性迴歸求得的解析解作爲PLA或者pocket的初始值,達到快速求解的目的 。
Summary
- 首先介紹了Regression。
- 然後通過例子引入Linear Regression,分別介紹Linear Regression的誤差方程,算法流程。
- 接着我們引入VC Bound 解釋了Linear Regression爲什麼可以實現學習。
- 最後我們應用Linear Regression的算法到Classification的問題中:雖然會損失一定的準確度,但是效率提升很大。
Reference
[1] 機器學習基石(臺灣大學-林軒田)\9\9 - 1 - Linear Regression Problem (10-08)
[2] 機器學習基石(臺灣大學-林軒田)\9\9 - 3 - Generalization Issue (20-34)
[3] 機器學習基石(臺灣大學-林軒田)\9\9 - 4 - Linear Regression for Binary Classification (11-23)