本文介紹了用於分類任務的線性模型。主要包括:三種用於線性二分類的模型,隨機梯度下降(SGD),多分類邏輯迴歸和多分類問題的兩種處理方法(OVA,OVO)。
文章目錄
11. Linear Models for Classification
11.1 Linear Models for Binary Classification
前十節課程講了三類模型:線性二元分類,線性迴歸,logistic迴歸。其共同點爲假設函數和誤差函數中都使用了 線性得分函數(linear scoring function),公式爲:
三類模型與得分s之間的關係如下圖所示。
指標\模型 | 線性分類 | 線性迴歸 | 邏輯迴歸 |
---|---|---|---|
假設函數 | |||
誤差函數 | |||
權重向量 求解 | 通過 求解比較困難 | 可求解析解 | 梯度下降求解近似值 |
從上述分析不難看出,線性二元分類問題的求解方式最爲困難,但三類模型的假設函數都與得分s有關,能否利用這兩種模型的算法近似求得二分類問題的最優 呢?首先看一下三個模型的誤差函數:
二元分類模型和線性迴歸模型錯誤函數中的轉換都用到了 性質。上式中, 的物理意義是正確的得分 ,因此 越大越好,表示兩者接近且同號。
下面用圖形化的方式解釋三種模型的誤差函數之間的關係。
-
0/1 誤差(0/1 error):藍色線,當ys>0時, ,反之, ;
-
平方誤差(squared error):紅色線,當ys 0時與 在該範圍內所表現出的特徵相似,但是在ys 時,遠大於 ,因此只有在 很小的情況下,才能用 替代 。
-
交叉熵誤差(cross-entropy error):灰色線,同理,只有在 很小的情況下, 才能用 替代 ,但是還需要縮放 才能替代,於是得到 。因此可以得到:
由上圖可知, 可作爲 的上界,在很小的情況下,可以替代 。
於是得到:
由VC限制理論可得:
其中, 、 均表示模型複雜度。因此得到如下結論:
即較小的 可由較小的 推知,同理可證明也可由較小的 得出。
算法的一般流程如下:
- 在輸出空間 的情況下,通過線性迴歸和邏輯迴歸相對應的求解方法,求出最優的 ;
- 將求得的 代入公式 ,得到最優的假設函數 。
三類模型比較:
通常使用線性迴歸模型來獲得初始化權重 ,然後使用logistic迴歸模型進行優化求解。
習題1:
11.2 Stochastic Gradient Descent
兩種迭代優化方法對比:
對比PLA與logistic迴歸的梯度下降算法,發現PLA只需要通過一個樣本點便可計算出 ,即每次迭代的時間複雜度爲 ;logistic迴歸的梯度下降需要遍歷所有的樣本點才能計算出 ,即每次迭代的時間複雜度爲 。有無可能將logistic迴歸每次迭代時間複雜度降爲 ?
先回顧以下Logistic迴歸的權重更新公式:
由上式可知,梯度更新的方向向量爲 ,該梯度是通過所有的樣本點加權求和再取平均得到的,那麼有沒有辦法使得用一個樣本點的取值來近似整體的平均值呢?
可以將求平均的過程理解爲求期望值。在N個樣本中隨機抽取一個樣本點,用這個點求出的梯度取代原來的期望梯度(整體的梯度看成這個隨機過程的一個期望值),這種隨機選取的梯度稱爲隨機梯度(stochastic gradient),可用符號 表示,隨機梯度與梯度的關係爲:
隨機梯度值可以看做真實的梯度值加上一個噪音,使用隨機梯度取代真實梯度做梯度下降的算法稱作隨機梯度下降算法(stochastic gradient descent),簡稱SGD。這種替代的理論基礎是在迭代次數足夠多的情況下,平均的隨機梯度和平均的真實梯度相差不大。
該算法的優點是簡單,容易計算,適用於大數據或者流式數據;缺點是不穩定,每次迭代並不能保證按照正確的方向前進,而且達到最小值需要迭代的次數比梯度下降算法一般要多。
Logistic迴歸的隨機梯度下降的權重迭代公式爲:
PLA與SGD兩種優化算法對比:
logistic迴歸隨機梯度下降類似於"軟"的PLA,原因是梯度更新公式中 權重更新的方向 的取值並非0或1,而是一個在0~1之間的值。當學習速率 並且 很大的時候,logistic迴歸隨機梯度下降相當於 PLA 。
SGD需要調試兩個參數:迭代步驟 和學習速率 。設置迭代步驟是因爲不知道真實的梯度值是否接近0,只能假設足夠步數後是已經做到足夠好,即通常設置一個大的數值作爲步數;學習速率 通常也很難選定,針對不同的任務和模型,一般有一個公認的參考值,具體還要根據自己的業務需求調整。
習題2:
11.3 Multiclass via Logistic Regression
多分類任務在識別(recognition)領域有很多應用場景。用一個簡單的例子引入本小節要分析的問題:
輸出空間y爲四類,即 。
多類別問題也可以用二元分類 的思路進行分類,如將四類分類問題分解爲是否爲 □,生成一個新的二元分類問題 ,通過此方式得到一個分類超平面,如下圖所示:
同樣的有:
四種分類結果爲:
綜合四種分類結果可得:
可以看到,有一些無法處理的情形。其中,四個邊緣的三角陰影區域爲相鄰兩個類別都爭奪的區域,圖正中的菱形區域不屬於任何類別。這些問題如何解決?
使用“軟”分類,還是關於類別 □ 的二元分類問題,此處不再使用硬劃分,而是使用該樣本點是 □ 的可能性,即 ,如下圖所示:
其餘情況同理,四種類別的“軟”二元分類情況如下圖所示:
綜合四種分類結果有:
那麼應該如何判斷樣本點屬於哪個類別?可以分別計算樣本點在四種軟二元分類情況下概率,選擇其中概率最大的一個作爲所屬類別,計算公式如下:
公式使用logistic函數 求概率 ,k表示類別,由於logistic函數是單調函數,因此可以消去該函數,直接使用類別的得分值 s 作比較。用此種思路設計的算法稱作一對多(One Versue All, OVA),算法流程如下:
- 在整個訓練數據集 上,,其中, 符號 表示取1或取0,當 時爲+1, 時爲-1 ;
- 使用logistic函數計算各個類別的權重向量 ;
- 計算假設函數g(x)。
該算法的優點是簡單有效,易於類似於logistic函數的二元分類問題擴展成多類別分類;缺點是當類別特別多時,產生了不平衡的現象(如類別特別多,則+1的數據量就很少,大部分都是-1,數據量嚴重不平衡)。
習題3:
11.4 Multiclass via Binary Classification
針對OVA(一對多)在類別非常多的情況下訓練數據嚴重失衡的情況,本小節介紹一種應對這類不平衡問題的方法。
還是上小節中使用的四分類問題,不像OVA在整個數據集中計算是否爲□的權值向量w,此種方法是任意選擇四類中的兩類,將兩個類別分別設爲+1和-1,在包含兩類的數據集上計算權值向量w,如下圖所示:
其它情況同理,從四種類別中選取兩種做二元分類,一共可得6種()二分類情況,結果如下:
那麼,如何判斷某新進樣本屬於哪個分類?由上例分析,6次二分類之後,如果數據集中的一個樣本,有三個分類器判斷它是正方形;一個分類器判斷是菱形;另外兩個分類器判斷是三角形;那麼取最多的那個,即判斷它屬於正方形,至此分類完成。
將以上6種二分類組成分類器進行分類,分類結果如下圖所示:
這種分類方式稱爲一對一(One Vervuse One, OVO)。其算法流程如下:
- 從所有類別中任選兩個進行二分類,共產生 種分類情況;
- 在數據集 上求出最佳的權值向量 ;
- 通過投票返回假設函數 。
這種方法的優點是更加高效,每次使用兩類的訓練數據,然後根據投票機制彙總不同的二分類結果,雖然分類次數增加,但是單次分類的數量減少,一般不會出現數據不平衡的情況。缺點是需要分類的次數多() ,時間複雜度()比較高,需要花費更多的存儲空間、計算時間。
習題4:
Summary
本節課首先介紹了分類問題的三種線性模型線性分類、線性迴歸和logistic 迴歸,這三種模型都能處理二分類任務。
然後介紹了比梯度下降算法更加高效的SGD算法來進行logistic 迴歸分析。
最後講解了兩種多分類方法,一種是OVA(一對多),另一種是OVO(一對一)。這兩種方法各有優缺點,當類別數量K不多的時候,建議選擇OVA,以減少分類次數。
參考:
https://www.cnblogs.com/ymingjingr/p/4306666.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning