從梯度降低法、最大間隔法兩種角度理解SVM

 

1、機器學習算法的常見流程

通常的機器學習分類算法,咱們能夠一般從三個步驟獲得,以SVM算法爲例,這裏規定正例的y爲1,負例的y爲-1html

Step 1: Function Set(Model)算法

 

Step 2: Loss function機器學習

理想狀況下的loss function(ideal loss)是當g(x)和y不相等的狀況下的樣本相加,可是這種狀況下的損失函數是不可微分的,因此沒法用梯度降低法訓練。ide

 

Step 3:Gradient descent函數

第三步就是用梯度降低法訓練模型了,咱們如今的目標是尋找一種適合SVM的loss function。學習

2、Hinge Loss

接下來咱們來分析SVM採用哪一種損失函數比較合適,此座標系橫座標表示y*f(x),縱座標表示loss。測試

首先分析Square loss的狀況,從圖像上能夠看出y*f(x)的值越接近於1越好,但y*f(x)很大的時候,loss越大,顯然不合理idea

sigmod+square loss的狀況:函數曲線變化太平緩,梯度降低的performance比較差spa

Sigmod + cross entropy(邏輯迴歸採用的損失函數)rest

hinge loss(SVM採用的損失函數)

假設此時的樣本是正例,即yn爲1。其實f(x)大於0就已經能正確分類了,但hinge loss裏仍是強調f(x)>1,圖中penalty的部分就是margin,此時的margin爲1,爲何是1呢,由於此時的hinge loss與Ideal loss最接近,都通過(0,1)點。

3、梯度降低法訓練SVM

  按照咱們在一中的定義,咱們能夠獲得SVM的定義

 

因爲hinge loss是凸函數,L2範數是凸函數,因此他倆之和仍然是凸函數,仍然能夠用梯度降低法訓練

從下面的公式推導能夠看出,hinge loss從幾何意義上看就是傳統的SVM,保證yn,f(x)同號的同時,須要大於間隔減去鬆弛變量,此時的1是間隔(margin)。

 

4、傳統的最大間隔法訓練SVM

  支持向量機是一種二類分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器(有別於LR,只是尋找一個能將樣本點分開的決策邊界,SVM強調間隔最大化),因此它的基本學習策略就是間隔最大化。該問題可形式化求解一個凸二次規劃問題,進一步利用拉格朗日對偶性,可將原始問題轉換爲對偶問題,經過求解對偶問題(dual problem)獲得原始問題(primal problem)的最優解。引入對偶問題一是能使問題容易求解,二是天然引入核函數,進而推廣到非線性分類問題。

  支持向量機的基本想法就是求解可以正確劃分訓練數據集而且幾何間隔最大的分離超平面。

  接下來是線性可分支持向量機算法的詳細推導過程:

 

 

  對於線性不可分的分類問題,一個基本思路——向高維空間轉化,使其變得線性可分。可使用一個變換,將元空間的數據映射到新空間;而後再新空間裏用線性分類學習方法訓練數據中學習分類模型,核技巧就是屬於這樣的方法。核技巧應用到SVM,其基本想法就是經過一個非線性變換將輸入空間對應於一個特徵空間,使得在輸入空間中的超曲面模型對應於特徵空間的超平面模型,這樣,分類問題的學習任務經過在特種空間中求解線性支持向量機就能夠完成。

  咱們注意到線性支持向量機的對偶問題中,不管是目標函數仍是決策函數(分離超平面)都只涉及到輸入實例與實例之間的內積。在對偶問題中的目標函數中的內積能夠用核函數來代替,此時對偶問題的目標函數就變爲:

 

5、SVM多分類

SVM應用於多分類問題有常見的三種方法:一對一法、一對其他法、DAG法。

  • 一對其他法:

一類對餘類法(One versusrest,OVR)是最先出現也是目前應用最爲普遍的方法之一,其步驟是構造k個兩類分類機(設共有志個類別),其中第i個分類機把第i類同餘下的各種劃分開,訓練時第i個分類機取訓練集中第i類爲正類,其他類別點爲負類進行訓練。判別時,輸入信號分別通過k個分類機共獲得k個輸出值fi(x)=sgn(gi(x)),若只有一個+1出現,則其對應類別爲輸入信號類別;實際狀況下構造的決策函數老是有偏差的,若輸出不僅一個+1(不僅一類聲稱它屬於本身),或者沒有一個輸出爲+1(即沒有一個類聲稱它屬於本身),則比較g(x)輸出值,最大者對應類別爲輸入的類別。

這種方法的優勢是,對k類問題,只須要訓練k個兩類分類支持向量機,故其所獲得的分類函數的個數(k個)較少,其分類速度相對較快。

  • 一對一法:

該方法在每兩類問訓練一個分類器,所以對於一個k類問題,將有k(k-1)/2個分類函數。當對一個未知樣本進行分類時,每一個分類器都對其類別進行判斷.併爲相應的類別「投上一票」,最後得票最多的類別即做爲該未知樣本的類別。決策階段採用投票法,可能存在多個類的票數相同的狀況,從而使未知樣本同時屬於多個類別,影響分類精度。

  • DAG法(有向無環圖)

DAG-SvMS是由PIatt提出的決策導向的循環圖DAG導出的,是針對「一對一"SvMS存在誤分,拒分現象提出的。這種方法的訓練過程相似於「一對一」方法,k類別問題須要求解k(k-1)/2個支持向量機分類器,這些分類器構成一個有向無環圖。該有向無環圖中含有k(k-1)/2個內部節點和k個葉結點,每一個節點對應一個二類分類器。

DAG-SVMS簡單易行,只須要使用k一1個決策函數便可得出結果,較「一對一"方法提升了測試速度,並且不存在誤分、拒分區域;另外,因爲其特殊的結構,故有必定的容錯性,分類精度較通常的二叉樹方法高。然而,因爲存在自上而下的「偏差積累」現象是層次結構固有弊端,故DAG-SVMS也逃脫不掉。即若是在某個結點上發生了分類錯誤,則會把分類錯誤延續到該結點的後續結點上.

 

 

參考書籍及連接:

李宏毅機器學習

《統計學習方法》——李航

http://blog.sina.com.cn/s/blog_5eef0840010147pa.html

相關文章
相關標籤/搜索