機器學習基石筆記11——機器能夠怎樣學習(3)

轉載請註明出處:http://www.cnblogs.com/ymingjingr/p/4271742.htmlhtml

目錄

機器學習基石筆記1——在什麼時候可使用機器學習(1)

機器學習基石筆記2——在什麼時候可使用機器學習(2)

機器學習基石筆記3——在什麼時候可使用機器學習(3)(修改版)

機器學習基石筆記4——在什麼時候可使用機器學習(4)

機器學習基石筆記5——爲何機器能夠學習(1)

機器學習基石筆記6——爲何機器能夠學習(2)

機器學習基石筆記7——爲何機器能夠學習(3)

機器學習基石筆記8——爲何機器能夠學習(4)

機器學習基石筆記9——機器能夠怎樣學習(1)

機器學習基石筆記10——機器能夠怎樣學習(2)

機器學習基石筆記11——機器能夠怎樣學習(3)

機器學習基石筆記12——機器能夠怎樣學習(4)

機器學習基石筆記13——機器能夠怎樣學得更好(1)

機器學習基石筆記14——機器能夠怎樣學得更好(2)

機器學習基石筆記15——機器能夠怎樣學得更好(3)

機器學習基石筆記16——機器能夠怎樣學得更好(4)

 

11、Linear Models for Classification

用於分類的線性模型。算法

11.1 Linear Models for Binary Classification

用於二元分類的線性模型。機器學習

目前敘述的算法模型主要有3類:線性二元分類,線性迴歸,logistic迴歸,這三個模型的最主要的相同點在假設函數和錯誤函數中都出現了線性得分函數(linear scoring function),如公式11-1所示。函數

 

    (公式11-1)學習

 

三類模型與得分s之間的關係如圖11-1所示。大數據

 

圖11-1 三類模型與得分s的關係優化

 

最左爲線性二元分類,其假設函數爲,通常使用0/1錯誤,經過求解最優權值向量w比較困難;中間爲線性迴歸模型,其假設函數爲,通常使用平方錯誤,可直接經過解析解求解最優w;最右爲logistic迴歸模型,假設函數爲,使用交叉熵錯誤,經過梯度降低法求出近似的w。設計

從上述分析不難看出,線性二元分類問題的求解方式最爲困難,但與另外兩種模型存在着共同點——得分s,可否利用這兩種模型的算法近似求得二分類問題的最優w呢?調試

回顧10.2節,logistic迴歸的錯誤,可用符號 表示,其中CE爲交叉熵(cross-entropy )的縮寫,能夠寫成公式11-2所示。htm

 

    (公式11-2)

 

是否二元分類模型和線性迴歸模型的錯誤函數能夠寫成關於 的形式?答案是能夠的,如圖11-2所示。

 

圖11-2 三類模型的錯誤函數

 

二元分類模型和線性迴歸模型錯誤函數中的轉換都用到了 的性質。接着觀察三類模型的錯誤函數與ys之間的關係。本節開頭回顧了s的物理意義爲得分,此處ys的物理意義是正確的得分 ,所以ys越大越好,表示二者接近且同號。

根據圖11-2中的三類模型的錯誤函數有關ys的公式,能夠得出如圖11-3所示的關係圖。

 

圖11-3 三類模型的錯誤函數與ys的關係圖

 

其中藍色的折線表示0/1錯誤 ,在ys大於0時,,反之;紅色的拋物線表示平方錯誤,在 時與在該範圍內所表現出的特徵類似,可是在時與在該範圍內所表達的效果相去甚遠,所以只有在很小的狀況下,可使用取代;墨綠的曲線表示,一樣如圖11-3所示也只有在很小的狀況下, 可互相取代。可是跟想獲得的錯誤曲線還有一些差距,所以略作轉變,獲得公式11-3。

 

    (公式11-3)

 

其中表示縮放的(scaled),即對作了一個換底,所以能夠獲得圖11-4。

 

圖11-4 關於ys的圖

 

如圖11-4中墨綠色的線表示,從圖中能夠看出,該錯誤函數很適合作的上限,在很小的狀況下, 可互相取代,如公式11-4所示。

 

    (公式11-4)

 

經過公式11-4能夠得出的上限,如公式11-5和公式11-6所示。

 

    (公式11-5)

 

    (公式11-6)

 

再經過VC限制理論能夠獲得公式11-7。

 

        (公式11-7)

 

第一個不等號鏈接的是在VC限制下和其上界,概念見7.4節, 其中函數也是在7.4節中提到過的模型複雜度,在二元分類中能夠寫成的形式。

所以獲得以下結論:小的能夠經過小的得出。同理能夠證實小的也能夠經過小的得出,即線性迴歸模型和logistic迴歸模型能夠用做二元分類。

算法流程通常是在輸出空間 的狀況下,經過線性迴歸和logistic迴歸相對應的求解方法求出最優

將求得的代入公式sign,獲得最優假設函數

三類模型作分類的利弊分析如表11-1所示。

 

表11-1 三類模型作分類的利弊分析

 

二元分類

線性迴歸

Logistic迴歸

好處

在線性可分的狀況下能夠保證完成

最容易的優化算法

容易的優化算法

壞處

在線性不可分的狀況,須要使用啓發式pocket

很是大時,相對於是一個很寬鬆的上界

在ys爲負時,是一個寬鬆的上界

 

線性迴歸通常只做爲PLA、pocket、logistic迴歸的初始向量 ;logistic迴歸常常取代pocket算法。

 

11.2 Stochastic Gradient Descent

隨機梯度降低。

如公式11-8爲迭代優化算法的通式,學過的PLA的迭代算法如公式11-9,logistic迴歸中梯度降低的迭代公式如公式11-10。

 

    (公式11-8)

 

    (公式11-9)

 

        (公式11-10)

 

對比以上兩種迭代優化方法,:PLA與logistic迴歸的梯度降低。發現PLA只須要經過一個樣本點即可計算出,即每次迭代的時間複雜度爲 ;logistic迴歸的梯度降低須要遍歷全部的樣本點才能計算出,即每次迭代的時間複雜度爲。有無可能將logistic迴歸每次迭代時間複雜度降爲

觀察公式11-10,方向向量v,v≈,該梯度是經過全部的樣本點加權求和再取平均獲得的,如何使用一個樣本點的取值近似總體的平均值?

能夠將求平均的過程理解爲求指望值,此處使用在N個樣本中隨機抽取一個樣本點求出的梯度取代原來的指望梯度,這種隨機選取的梯度稱爲隨機梯度(stochastic gradient),可用符號表示,而真實的梯度與隨機梯度的關係如公式11-11。

 

    (公式11-11)

 

隨機梯度值能夠看作真實的梯度值加上一個噪音,使用隨機梯度取代真實梯度作梯度降低的算法稱做隨機梯度降低(stochastic gradient descent),簡稱SGD。這種替代的理論基礎是在迭代次數足夠多的狀況下,平均的隨機梯度和平均的真實梯度相差不大。

該算法的優勢是簡單,容易計算,適用於大數據或者流式數據;缺點是不穩定。

Logistic迴歸的隨機梯度降低的迭代如公式11-12所示。

 

    (公式11-12)

 

是否聯想到了其餘的迭代算法?PLA,如公式11-13所示。

 

    (公式11-13)

 

所以logistic迴歸隨機梯度降低相似於"軟"的PLA,爲何稱爲軟的?緣由是它的以前的權值並無那麼絕對不是1就是0,而是一個在0~1之間的值。在公式11-12中,若是始終是一個很大的值,則logistic迴歸隨機梯度降低至關因而PLA。

SGD須要調試兩個參數:迭代步驟t和學習速率。調試迭代步驟是由於不知道真實的梯度值是否接近0,只能假設足夠步數後是已經作到足夠好,即一般設置一個大的數值做爲步數;學習速率一般也很難選定,林老師推薦的是數字爲0.1126。

 

11.3 Multiclass via Logistic Regression

經過logistic迴歸實現多類別分類。

多類別分類有許多應用場景,特別是在識別(recognition)領域。

如圖11-5爲,輸出空間y爲四類別的狀況,即

 

圖11-5 四分類問題

 

實際多類別問題也可使用二元分類問題 的思路進行分類,如將原四類問題分解爲是否爲 ,即將與其餘的類別分離,生成一個新的二元分類問題,即,經過此方式獲得一個分類超平面,如圖11-6所示。

 

圖11-6 以是否爲進行二元分類

 

同理能夠以是否爲生成一個新的二元分類問題,即,該分類超平面如圖11-7所示。

 

圖11-7 以是否爲進行二元分類

 

另外兩種狀況就不一一列舉,最終以是否爲每一個類別獲得的二元分類如圖11-8。

 

圖11-8 四個類別各自的二元分類狀況

 

當將圖11-8的四種狀況合併在一個圖中會發現有一些沒法處理的情形,如圖11-9所示。

 

圖11-8 四種狀況合併圖

 

其中四個邊緣的三角陰影所在的區域爲相鄰兩個類別都爭奪的區域,如最上方的三角區域是類別和類別重疊的區域;還有圖正中的區域又不屬於任何類別。這些問題如何解決?

使用之前學過的軟性分類,仍是關於類別的二元分類問題,此處再也不使用硬劃分,而是使用該樣本點是的可能性,即 ,如圖11-9所示。

 

圖11-9 關於類別的軟化分

 

餘下三種狀況再也不一一舉例,最終獲得的四種類別的分類狀況和合並後的狀況分別如圖11-10和圖11-11所示。

 

圖11-10四個類別各自的軟二元分類狀況

 

圖11-11四個類別軟二元分類合併後狀況

 

如何判斷樣本點屬於哪一個類別,能夠分別計算樣本點在四種軟二元分類狀況下機率,選擇其中機率最大的一個做爲所屬類別,如公式11-14所示。

 

    (公式11-14)

 

其中求機率的公式使用logistic函數 ,k表示類別,注意到logistic函數是一個單調函數,所以能夠消去該函數,直接使用個類別的得分值做比較,如公式11-5所示。

 

    (公式11-15)

 

用此種思路設計的算法稱做一對多(One Versue All),簡稱爲OVA,表示一個類別對其餘全部類別,算法流程以下:

在整個訓練數據集D上, (在y=k時爲+1,y≠k時爲-1,符號取1或者0 ),使用logistic函數計算各個類別的權值向量

返回假設函數g,

該算法的優勢是簡單有效,易於相似於logistic函數的二元分類問題擴展成多類別分類;缺點是當類別特別多時,產生了不平衡的現象(如類別特別多,則+1的數據量就不多,大部分都是-1,數據量嚴重不平衡)。

 

11.4 Multiclass via Binary Classification

經過二元分類實現多類別分類。

上一節的最後提到OVA的方式在類別很是多的狀況下,出現了訓練數據嚴重失衡的現象,因而本節介紹一種應對這類不平衡問題的方法。

仍是上節中使用的四分類問題,不像OVA在整個數據集中計算是否爲的權值向量w,此種方法是任意選擇四類中的兩類,如類別和類別,將兩個類別分別設爲+1和-1,形式如,在包含兩類的數據集上計算權值向量w,如圖11-12。

 

圖11-12類別和類別的二分類

 

如上述狀況相同,從四種類別中選取兩種作二元分類,一共可得6種對比( ),各對好比圖11-13所示。

 

圖11-13 6種對比狀況

 

如圖11-13獲得6個不一樣的權值向量w,如何判斷某新進樣本屬於哪一個分類?如11-14中紫色的樣本點在6中狀況下所屬的類別,前三種屬於,第4種屬於,後兩種屬於,只須要找出在全部對比中勝利次數最多的類別,所以該點屬於。這種方式如同投票選舉,樣本點屬於全部類別對比中贏得次數最多的那種類別。

 

 

圖11-14 某點在6種情形下的隸屬狀況

 

這種分類方式稱爲一對一(one vervuse one),簡稱OVO。其算法流程以下:

全部類別的任意兩個類別作對比,使用二元分類算法,在數據集D, 求出最佳的權值向量

經過投票返回假設函數g。

其優勢是簡單有效,在作兩兩對比時,每次使用的不是所有訓練數據,而是僅屬於當前兩類的訓練數據,能將全部相似於二元分類的算法擴展成多元分類問題; 缺點是對比次數是 ,即 ,其中K表示類別數,所以就須要花費更多的存儲空間、計算時間。

相關文章
相關標籤/搜索