1. 程式人生 > >Coursera機器學習基石筆記week11

Coursera機器學習基石筆記week11

Linear Models for Classification

嚴謹一點來說,PLA並不是一種“模型”,PLA (Perceptron Learning Algorithm) 是一種“演算法”,用來尋找在“線性可分”的情況下,能夠把兩個類別完全區分開來的一條直線,所以我們簡單的把PLA對應的那個模型就叫做Linear Classification。
在這裡插入圖片描述

  • Linear Classification模型:取s的符號作為結果輸出,使用0/1 error作為誤差衡量方式,但它的cost function,也就是 E
    i n ( w ) E_{in}(w)
    是一個離散的方程,並且該方程的最優化是一個NP-hard問題。
  • Linear Regression模型:可直接計算出結果,使用平方誤差作為誤差衡量方式,好處是其 E i n ( w )
    E_{in}(w)
    是一個凸二次曲線,非常方便求最優解(可通過矩陣運算一次得到結果)。
  • Logistic Regression模型:輸出的方程是經過sigmoid的結果,使用cross-entropy作為誤差衡量方式,其 E i n ( w ) E_{in}(w) 是一個凸函式,可以使用gradient descent的方式求最佳解。

Linear Regression和Logistic Regression的輸出是一個實數,而不是一個Binary的值,他們能用來解分類問題嗎?可以,只要定一個閾值,高於閾值的輸出+1,低於閾值的輸出-1就好。既然Linear Regression和Logistic Regression都可以用來解分類問題,並且在最優化上,他們都比Linear Classification簡單許多,我們能否使用這兩個模型取代Linear Classification呢?
在這裡插入圖片描述
這裡y是一個binary的值,要麼是-1,要麼是+1。注意到三個模型的error function都有一個ys的部分,也叫做分類正確性分數 (classification correctness score)。其中s是模型對某個樣本給出的分數,y是該樣本的真實值。

不難看出,當y=+1時,我們希望s越大越好,當y=−1時,我們希望s越小越好,所以總的來說,我們希望ys儘可能大。因此這裡希望給較小的ys較大的cost,給較大的ys較小的cost即可。因此,不同模型的本質差異,就在於這個cost該怎麼給。

既然這三個error function都與ys有關,我們可以以ys為橫座標,err為縱座標,把這三個函式畫出來。
在這裡插入圖片描述
從上圖可以看出 e r r 0 / 1 err_{0/1} 呈階梯狀,ys>0,取0,小於0,取1.而 e r r S Q R err_{SQR} 則呈拋物線狀,在ys=1左右小範圍與 e r r 0 / 1 err_{0/1} 相似。而 e r r C E err_{CE} 是單調遞減函式,但是我們發現 e r r C E err_{CE} 不總是大於 e r r 0 / 1 err_{0/1} ,為了方便起見,利用換底公式( log a b = log c b log c a \log_ab=\frac{\log_cb}{\log_ca} )將 e r r C E err_{CE} 縮放得到 e r r S C E = log 2 ( 1 + e x p ( y s ) ) = 1 ln 2 e r r C E err_{SCE}=\log_2(1+exp(-ys))=\frac{1}{\ln2}err_{CE} ,使之一直在 e r r 0 / 1 err_{0/1} 之上。
在這裡插入圖片描述
由上圖可得:
在這裡插入圖片描述
其實線性迴歸也可以是線性分類的一個上限,只不過隨著ys離1的距離越大,產生的差距越大。但是總的來說線性迴歸和邏輯迴歸都可以用來解決linear classification的問題。

下圖列舉了PLA、linear regression、logistic regression模型用來解linear classification問題的優點和缺點。通常,我們使用linear regression來獲得初始化的 w 0 w_0 ,再用logistic regression模型進行最優化解。
在這裡插入圖片描述

Stochastic Gradient Descent

我們知道PLA與logistic regression都是通過迭代的方式來實現最優化的,即:
f o r    t = 0 , 1 , . . . w t + 1 w t + η v for\ \ t=0,1,...w_{t+1}\leftarrow w_t+\eta v when stop,return last w as g

區別在於,PLA每次迭代只需要針對一個點進行錯誤修正,而logistic regression每一次迭代都需要計算每一個點對於梯度的貢獻,再把他們平均起來:
在這裡插入圖片描述
這樣一來,資料量大的時候,由於需要計算每一個點,那麼logistic regression就會很慢了。

w t + 1   w t + η 1 N n = 1 N θ ( y n w t T x n ) ( y n x n ) w_{t+1}\ \leftarrow w_t+\eta\frac{1}{N}\sum_{n=1}^N\theta(-y_nw^T_tx_n)(y_nx_n)

那麼我們因此可以每次只看一個點,即不要公式中先求和再取平均數的那個部分。隨機選擇一個點n,它對梯度的貢獻為: w e r r ( w , x n , y n ) \nabla_w err(w,x_n,y_n) 這個可以稱之為隨機梯度(stochastic gradient)。而真實的梯度,可以認為是隨機抽出一個點的梯度值的期望。
在這裡插入圖片描述
因此我們可以把隨機梯度當成是在真實梯度上增加一個均值為0的noise:
s t o c h a s t i c   g r a d i e n t = t r u e   g r a d i e n t + z e r o m e a n n o i s e d i r e c t i o n s stochastic\ gradient=true\ gradient+zero-mean 'noise' directions
單次迭代看,好像會對每一步找到正確梯度方向有影響,但是整體期望值上看,與真實梯度的方向沒有差太多,同樣能找到最小值位置。隨機梯度下降的優點是減少計算量,提高運算速度,而且便於online學習;缺點是不夠穩定,每次迭代並不能保證按照正確的方向前進,而且達到最小值需要迭代的次數比梯度下降演算法一般要多。
在這裡插入圖片描述
除此之外,還有兩點需要說明:1、SGD的終止迭代條件。沒有統一的終止條件,一般讓迭代次數足夠多;2、學習速率η。η的取值是根據實際情況來定的,一般取值0.1就可以了。

Multiclass via Logistic Regression

我們現在已經有辦法使用線性分類器解決二元分類問題,但有的時候,我們需要對多個類別進行分類,即模型的輸出不再是0和1兩種,而會是多個不同的類別。那麼如何套用二元分類的方法來解決多類別分類的問題呢?

利用二元分類器來解決多類別分類問題主要有兩種策略,OVA(One vs. ALL)和OVO(One vs. One)。

先來看看OVA,假設原問題有四個類別,那麼每次我把其中一個類別當成圈圈,其他所有類別當成叉叉,建立二元分類器,迴圈下去,最終我們會得到4個分類器。
在這裡插入圖片描述
但是這樣分類可能會帶來一些問題,我們可能會遇到一些邊界都不屬於上述四類的情況,或者出現某些邊界出現都被判斷屬於多個類的情況,那麼這時候使用簡單的binary classification就不能很好的解決問題了。

因此我們考慮使用soft軟性分類,使用logistic regression來計算某類的概率,通過比較概率來分類。
在這裡插入圖片描述
對於OVA來說,優點就是簡單高效,可以使用任何logistic regression類的模型來進行解決。缺點就是如果資料類別太多了,比如100種類別,99種類別做叉叉,1種類別做圈圈,導致兩種類別不平衡,因此略微隨意的切也能切出較高的準確率,那麼就可能會影響分類的效果。

Multiclass via Binary Classfication

所以為了解決這種不平衡問題,我們可以使用OVO策略,即每次只拿兩個類別的資料出來建立分類器,如圖:
在這裡插入圖片描述
這種方法的優點是更加高效,因為雖然需要進行的分類次數增加了,但是每次只需要進行兩個類別的比較,也就是說單次分類的數量減少了。而且一般不會出現資料unbalanced的情況。缺點是需要分類的次數多,時間複雜度和空間複雜度可能都比較高。

總結

本節課主要介紹了分類問題的三種線性模型:linear classification、linear regression和logistic regression。首先介紹了這三種linear models都可以來做binary classification。然後介紹了比梯度下降演算法更加高效的SGD演算法來進行logistic regression分析。最後講解了兩種多分類方法,一種是OVA,另一種是OVO。這兩種方法各有優缺點,當類別數量k不多的時候,建議選擇OVA,以減少分類次數。