9-4-Linear Regression for Binary Classification

9-4-Linear Regression for Binary Classification

講完了Linear Regression,我們來看看Linear Regression 和我們之前講的Linear Classification 線性的分類到底有什麼一樣或不一樣的地方。

這裏寫圖片描述

線性分類裏面有什麼,線性分類裏面我們又說我們的輸出就是正或負兩種,或者圈(○)和叉(×)兩種,然後我們的 hypothesis 在模型的時候我們長的樣子是 : 我們先算一個分數,然後判斷它是正的還是負的,然後決定我們是要輸出圈圈還是叉叉,我們錯誤衡量的方式是看我們輸出的圈圈叉叉跟我們要的圈圈叉叉是否一樣,那我們有說在線性分類,我門講pocket的時候說,在線性分類的狀況下,這個問題通常很難解,所以要求到一個最小的 E(in) ,通常很難解,Linear Regression 線性迴歸,則不太一樣的地方是什麼,我們的輸出空間是整個實數,所以我們的 hypothesis 不用再去 sign() ,直接把 wTX 算出來,然後把它直接輸出就好了,我們通常用於衡量錯誤的方式是平方的錯誤,然後呢,大家已經看到,它很好解,如果用 matlab 寫程序的話,這個就兩三行就可以求出線性迴歸的理想解,所以這兩個題目或者方向看起來非常的不一樣,那就有同學想了,既然Linear Regression 這麼好解的話,那麼 {+1,-1},{+1,-1}也就是茫茫的實數海里面兩個特殊的值,既然 {+1,-1} 也是實數,那麼我能不能用Linear Regression 來解分類問題,我拿來資料{+1,-1},我就把{+1,-1}當成{+1,-1}實數的{+1,-1},喂進去一個Linear Regression一個算法,Linear Regression用力做,得到一個 w,這個 w 大概會在正的地方告訴我比較正的事情,在負的地方告訴我比較負的事情,也就是說,可能是 +1 的,它應該會給我一個大於 0 的值,可能是 -1 的,它應該會給我一個小於 0 的值,所以我可以直接把 Linear Regression 解出來的W當成一個分類器就好,把它取 sign ,當成一個分類器,是不是我可以這樣做,你也許會說:”還不錯,聽起來還蠻有道理的”,Linear Regression 這麼好解,就把它很快求解,不用跑什麼 Pocket,PLA 算法了,跑那麼久,一路震盪來震盪去的,反正 Linear Regression 這些 X 啊, Y 啊配合上寫好的僞逆矩陣,我很快就可以算出來,聽起來是很有道理,可是目前這個道理不見得完全是數學上的道理,我想問大家,你認爲數學上的道理是什麼?
這裏寫圖片描述

爲了解釋數學上的道理,我們就來看看 Linear Regression 和 Linear Classification之間的差異,Linear Regression 和 Linear Classification 之間最大的差異就是錯誤衡量的方法,它們的error function

這裏寫圖片描述

今天如果是 0/1 的錯誤,我們用藍色來表示,如果是平方的錯誤,我們用紅色來代表,兩個都計算 了wTX 的值,只是在計算完wTX 的值,後續的再做的運算的方法不一樣, 好,我們從一個例子來看,如果今天我想要的 y 是 +1 的話,我把這兩個函數畫出來會長什麼樣,我爲什麼要畫,大家先看,我們的橫軸,我用的是 wTX ,這是兩邊共同都擁有的值,然後呢,我的縱軸就是兩個不同的 err ,畫出來的東西到底是什麼樣的,紅色的是平方的錯誤,藍色是是 zero-one 的錯誤,紅色的線看起來像是拋物線,拋物線的最低點在哪裏,我們剛說,我們想要 y 是 +1 , 拋物線最低點這個地方會在 +1 這個地方,藍色的呢,藍色的說,我今天要是 +1 ,所以我的 wTX 要是大於 0 的話,沒問題,沒有任何錯誤,如果我是小於 0 的話,我就要 show 一個錯誤,所以藍色的畫起來會像一個階梯函數的長相,視覺上,你可以看到,數學上,你可以證明,說紅色的這條曲線會壓在藍色的這條曲線上面。

這裏寫圖片描述

如果今天 y 是 -1 的時候,是類似的情形,我差別只是我今天最低的這個點是 -1 不是 +1 ,其他情形是一樣的,我還是可以看到紅色的曲線壓在藍色的曲線上面,好,從這個圖形化的證明,我們常常喜歡圖像化的證明,不一定要跟大家說數學的證明是怎樣的,但是我們可以發現,不管 wTX 的值是什麼,平方的錯誤一定比 0/1 的錯誤來的大,比如說在同一個 wTX 上衡量平方的錯誤和 0/1 的錯誤的話,無論如何,y 在 +1,-1 的狀況,平方的錯誤一定比 0/1 的錯誤來的大。

這裏寫圖片描述

這告訴我們什麼,大家記得我們的好朋友嗎,我們的好朋友VC bound 說我們要做這件事,我們在PLA,Pocket 做了這件事,它說,你今天如果用 Classificaiton 計算 E(out) 的話,它會比 Binary Classification 計算 E(in) 加上某個根號下很複雜的表達式小,這是VC告訴我們的事情。

然後我們現在又知道怎麼樣,我們現在知道平方的錯誤比 0/1 的錯誤來的大,就是我可以把這個不等式再寫下來做什麼,我們把所有的 0/1 錯誤通通換成平方的錯誤好了,所以我把藍色的E(in) 換成了紅色的 E(in) ,紅色的 E(in) 是什麼,紅色的 E(in) 是 Regression ,紅色的 E(in) 是誰可以做的好的 ,是Linear Regression 可以做的好點,所以如果我們把這個 bound 中間的部分不看的話,我們可以看到說什麼,E(out) ,我們有興趣資料分類的那個 E(out) ,會被 Regression 的 E(in) 加上 一個根號下表達式的值所 bound 住

這裏寫圖片描述

也就是說,我們用力的想把紅色的哪一項做好,也是把藍色的 E(in) 做好的一種方法,也就是說我們可以用這個上限的觀念,反正是個上限,我們就把上限盡可能做好,如果我們可以把上限做的非常非常低,我們就可以保證我們的 E(out) 是很好的,所以這解釋了爲什麼我們可以用 Linear Regression 來做 Linear Classification , 或者,用我們上一堂課的講法的話,我們用 errsqr 當做 戴帽子的 err ,我們有興趣的 err 是 err(0/1) , err(0/1) 不好解, 我們換個好解的當 err(0/1) ,我們換平方的錯誤當那個好解一點的,也就是說,我們換了什麼事情,我們換了寬鬆一點的 bound ,這個寬鬆一點的 bound 比較容易找到一個好的結果 , 這是我們這裏做的事情,爲什麼我們可以做 Linear Regression for Classification。所以我用Linear Regression 計算出一個 w ,這個 w 是不是隻能 Linear Regression 用? 如果你今天是一個 Binary Classification 的資料,你也可以拿來用,實際上,大家又興趣的話可以去做一做,很多時候,它的表現還不算太差,另外一方面是什麼呢?它的表現不算太差,如果你想讓它更好,你可以讓它做一件事情,你說,它這麼寬鬆的 bound 它真的會做的好嗎?不過,如果它表現還算不錯,你可以拿它來當 PLA 或者 Pocket 的 w0 , 一開始的那個向量用Linear Regression 來把它做的差不多好,做到差不多好以後,再慢慢的用 PLA 或者 Pocket 做這個修正的動作,做把口袋裏的東西換掉的動作,這樣的話,可能會加速你的 PLA 和 Pocket 過程,因爲從一個好的解開始,修正次數可能會變得少一些,然後 PLA 和 Pocket 會變得有效率一些,這是一些常見的把 
Linear Regression 使用在資料分類的方式

這裏寫圖片描述

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