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錯誤小 (同時發生)spa

對交叉熵錯誤的尺度縮放

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

Paste_Image.png

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

Ein與Eout的上界

從上面的座標軸咱們能夠看出,SQR的錯誤和CE的錯誤都是0/1錯誤的上限
Paste_Image.pngrem

用迴歸的方法作分類

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

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

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

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

錯誤衡量

咱們這裏隨機的找一個點算的,它的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迴歸+多分類之線性分類投票法

相關文章
相關標籤/搜索