11-分類的線性模型

三種線性模型

Paste_Image.png

錯誤衡量

現在如果用這三個方法都用於二值分類的話,那麼它們各自的錯誤衡量就變爲:

Paste_Image.png
s表示用這個模型得出的分數,取值範圍應該跟原來是一樣的,線性迴歸的s=wx取值範圍爲實數R,logistic迴歸的取值範圍爲0-1(一個概率)
ys:合起來表示正確的分數

把三個模型的錯誤衡量表示在同一個座標軸上面。

Paste_Image.png

cross entropy error :CE, logistic regression的error measure. 交叉熵錯誤
我們發現 如果平方錯誤小的時候=>0/1錯誤小 (但0/1錯誤小的時候不一定哦)
而 logistic錯誤小的時候《=》0/1錯誤小 (同時發生)

對交叉熵錯誤的尺度縮放

爲了推導的方法,我們常常會把logistic迴歸的錯誤衡量cross entropy error 進行一個換底的操作。因爲 log_2(1+exp(0))=1, 和0/1錯誤和sqr錯誤的值是一樣的。

Paste_Image.png

scaled的交叉熵一定在0/1錯誤上面,這是0/1錯誤的一個稍微緊緻的上界,使得我們的推導方便。

Ein與Eout的上界

從上面的座標軸我們可以看出,SQR的錯誤和CE的錯誤都是0/1錯誤的上限
Paste_Image.png

用迴歸的方法做分類

從上面可以看出 用迴歸做分類是可行的,比如CE的error小的時候 0/1的Ein和Eout也會很小,這樣就可以進行分類了。
Paste_Image.png

線性迴歸可以給PLA POCKET或者邏輯斯特迴歸做初始值,邏輯斯特迴歸經常會比pocket方法在優化的時候更方便一些。

隨機梯度下降 stochastic gradient descent(SGD)

在PLA算法中,權值矩陣W每次更新的時候考慮一個樣本,所以每次迭代iteration的時間複雜度是0(1),而在邏輯斯特迴歸裏面每次更新都要計算所有樣本用模型計算的Ein的梯度,計算的時間複雜度是o(N),這樣邏輯斯特迴歸的速度就比較慢,我們想辦法讓每次迭代的時間複雜度改爲o(1)。

錯誤衡量

我們這裏隨機的找一個點算的,它的error代替整體的Ein的平均值,然後計算梯度,這樣得到的梯度是隨機梯度。

Paste_Image.png

我們可以認爲在多次迭代後真實的梯度達到的效果和隨機梯度的效果很好
隨機梯度的的有點是比較簡單並且適合大量的數據或者在線學習方式
缺點是在性質上會不穩定

模型更新方式

每次隨機選擇一個編號爲n的樣本做參數更新 。
Paste_Image.png

我們發現這個SGD的邏輯斯特迴歸和PLA的更新方式很接近,PLA是如果某個樣本的真實值和算出來的值不一樣就更新。 SGD表示的是如果錯的多一點就更新得多一點
需要注意的兩個點:
1. 停止條件(以爲邏輯斯提回歸停止條件是梯度爲0) SGD做法是迭代次數要儘量大
2. 更新步長怎麼算,通常方法去η爲0.1

用邏輯斯特迴歸做多類別分類

one-versus-all Decomposition

二分類的分類器組合 combine binary classifiers 但是對於分類器交叉的地方會有問題

Paste_Image.png

所以我們用軟化的迴歸合併方式 根據判斷的類別可能性來分類 (最大後驗概率)

Paste_Image.png

Paste_Image.png

用二分類算法來做多酚類問題

對於邏輯斯特迴歸出現的數據不平衡的問題,這裏我們用二分類的問題,但是針對的不是全部的數據。然後對某個樣本讓這幾個分類器進行投票來決定它是哪一類。

Paste_Image.png

Paste_Image.png

對於k個類 需要創建的分類器的個數爲 k*(k-1)/2

從下面的例子可以看出在某些情況下 OVO比OVA省力氣

Paste_Image.png

其他資料

linear regression for classification +隨機梯度下降+多分類之logistic迴歸+多分類之線性分類投票法

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