聽課筆記(第十一講): 線性分類模型 (臺大機器學習)

在上一講中,我們瞭解到線性迴歸和邏輯斯蒂迴歸一定程度上都可以用於線性二值分類,因爲它們對應的錯誤衡量(square error, cross-entropy) 都是“0/1 error” 的上界。

1, 三個模型的比較

1.1 分析Error Function
本質上講,線性分類(感知機)、線性迴歸、邏輯斯蒂迴歸都屬於線性模型,因爲它們的核心都是一個線性score 函數:
 
只是三個model 對其做了不同處理:
線性分類對s 取符號;線性迴歸直接使用s 的值;邏輯斯蒂迴歸將s 映射到(0,1) 區間。

爲了更方便地比較三個model,對其error function 做一定處理:
 

這樣,三個error function 都變成只有y*s 這一項“變量”。
通過曲線來比較三個error function (注意:cross-entropy 變爲以2爲底的scaled cross-entropy)
 


很容易通過比較三個error function 來得到分類的0/1 error 的上界:
 

這樣,我們就理解了通過邏輯斯蒂迴歸或線性迴歸進行分類的意義。

1.2 優缺點比較
線性分類(PLA)、線性迴歸、邏輯斯蒂迴歸的優缺點比較:
(1)PLA
優點:在數據線性可分時高效且準確。
缺點:只有在數據線性可分時纔可行,否則需要藉助POCKET 算法(沒有理論保證)。
(2)線性迴歸
優點:最簡單的優化(直接利用矩陣運算工具)
缺點:y*s 的值較大時,與0/1 error 相差較大(loose bound)。
(3)邏輯斯蒂迴歸
優點:比較容易優化(梯度下降)
缺點:y*s 是非常小的負數時,與0/1 error 相差較大。

實際中,邏輯斯蒂迴歸用於分類的效果優於線性迴歸的方法和POCKET 算法。線性迴歸得到的結果w 有時作爲其他幾種算法的初值。

2,隨機梯度下降 (Stochastic Gradient Descent)
傳統的隨機梯度下降更新方法:
 

每次更新都需要遍歷所有data,當數據量太大或者一次無法獲取全部數據時,這種方法並不可行。

我們希望用更高效的方法解決這個問題,基本思路是:只通過一個隨機選取的數據(xn,yn) 來獲取“梯度”,以此對w 進行更新。這種優化方法叫做隨機梯度下降。
 


這種方法在統計上的意義是:進行足夠多的更新後,平均的隨機梯度與平均的真實梯度近似相等。
注意:在這種優化方法中,一般設定一個足夠大的迭代次數,算法執行這麼多的次數時我們就認爲已經收斂。(防止不收斂的情況)

3,多類別分類 (multiclass classification)
與二值分類不同的是,我們的target 有多個類別(>2)。

一種直觀的解決方法是將其轉化爲多輪的二值分類問題:任意選擇一個類作爲+1,其他類都看做-1,在此條件下對原數據進行訓練,得到w;經過多輪訓練之後,得到多個w。對於某個x,將其分到可能性最大的那個類。(例如邏輯斯蒂迴歸對於x 屬於某個類會有一個概率估計)
如果target 是k 個類標籤,我們需要k 輪訓練,得到k 個w。
這種方法叫做One-Versus-All (OVA):
 


它的最大缺點是,目標類很多時,每輪訓練面對的數據往往非常不平衡(unbalanced),會嚴重影響訓練準確性。multinomial (‘coupled’) logistic regression 考慮了這個問題,感興趣的話自學下吧。

4,另一種多值分類方法
這種方法叫做One-Versus-One(OVO),對比上面的OVA 方法。

基本方法:每輪訓練時,任取兩個類別,一個作爲+1,另一個作爲-1,其他類別的數據不考慮,這樣,同樣用二值分類的方法進行訓練;目標類有k個時,需要 k*(k-1)/2 輪訓練,得到 k*(k-1)/2 個分類器。
預測:對於某個x,用訓練得到的 k*(k-1)/2 個分類器分別對其進行預測,哪個類別被預測的次數最多,就把它作爲最終結果。即通過“循環賽”的方式來決定哪個“類”是冠軍。

顯然,這種方法的優點是每輪訓練面對更少、更平衡的數據,而且可以用任意二值分類方法進行訓練;缺點是需要的輪數太多(k*(k-1)/2),佔用更多的存儲空間,而且預測也更慢。
OVA 和 OVO 方法的思想都很簡單,可以作爲以後面對多值分類問題時的備選方案,並且可以爲我們提供解決問題的思路。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章