《機器學習》學習筆記(六)——支持向量機(SVM)

機器學習(Machine Learning)是一門多學科交叉專業,涵蓋概率論知識,統計學知識以及複雜算法知識,使用計算機作爲工具並致力於真實實時的模擬人類學習方式, 並將現有內容進行知識結構劃分來有效提高學習效率。本專欄將以學習筆記形式對《機器學習》的重點基礎知識進行總結整理,歡迎大家一起學習交流!
專欄鏈接:《機器學習》學習筆記

1. 概述

支持向量機(support vector machines, SVM)是一種二分類模型

它的基本模型是定義在特徵空間上的間隔最大的線性分類器,間隔最大使它有別於感知機;
支持向量機還包括核技巧,這使它成爲實質上的非線性分類器。
與之前學習筆記所述的分類問題不同的是:分類問題強調將不同類的樣本點以一條線分隔開,而支持向量機則是強調將不同的兩類樣本點分隔的間隔最大。

★支持向量機的學習策略就是間隔最大化,可形式化爲一個求解凸二次規劃的問題,也等價於正則化的合頁損失函數的最小化問題,支持向量機的學習算法是求解凸二次規劃的最優化算法。
其中,“凸”的含義爲只有單極值點(一元二次函數那樣),而不是有多個極值點;
          “二次”含義爲諸如:y=ax^{2}+bx+c 繪製的圖形樣式。

☆支持向量機學習方法包含構建由簡至繁的模型:
☞線性可分支持向量機——硬間隔支持向量機(硬間隔最大化)——訓練數據線性可分

硬間隔示例圖

☞線性支持向量機——軟間隔支持向量機(軟間隔最大化)——訓練數據近似線性可分

軟間隔示例圖

☞非線性支持向量機——核技巧及軟間隔最大化——訓練數據線性不可分。

☆核方法是比支持向量機更爲一般的機器學習方法。

2.感知機

感知機的模型就是嘗試找到一條直線,能夠把二元數據隔離開。
放到三維空間或者更高維的空間,感知機的模型就是嘗試找到一個超平面,能夠把所有的二元類別隔離開。
對於這個分離的超平面,定義爲w^{T}x+b=0,如下圖。

感知機模型

在超平面w^{T}x+b=0上方的,我們定義爲y=1;
在超平面w^{T}x+b=0下方的,我們定義爲y=−1。
可以看出滿足這個條件的超平面並不止一個。如何判斷哪個超平面的分類效果更好。

接着我們看感知機模型的損失函數優化,它的思想是讓所有誤分類的點(定義爲M)到超平面的距離和最小,即最小化下式:
                               
當w和b成比例的增加,比如,當分子的w和b擴大N倍時,分母的L2範數也會擴大N倍。
在感知機模型中,我們採用的是保留分子,固定分母||w||_{2}=1,即最終感知機模型的損失函數爲:
                               
那麼如果我們不是固定分母,改爲固定分子,作爲分類模型的改進問題進而引入了SVM

3.支持向量機

3.1 引子

線性模型:在樣本空間中尋找一個超平面, 將不同類別的樣本分開。

-Q . 將訓練樣本分開的超平面可能有很多, 哪一個好呢?

-A . 應選擇”正中間”, 對局部擾動容忍性好, 魯棒性高, 對未見示例的泛化能力最強。

在感知機模型中,可以找到多個可以分類的超平面將數據分開,並且優化時希望所有的點都離超平面遠。
但是實際上離超平面很遠的點已經被正確分類,讓它離超平面更遠並沒有意義。
反而最關心是那些離超平面很近的點,這些點很容易被誤分類。
如果可以讓離超平面比較近的點儘可能的遠離超平面,那分類效果會好有一些。
SVM的思想起源正起於此。

3.2 間隔

函數間隔是沒有統一量度,沒有規範化,並不能正常反應點到超平面的距離,在感知機模型裏,當分子成比例的增長時,分母也是成倍增長。爲了統一度量,需要對法向量w加上約束條件,這樣就得到了幾何間隔 \gamma  , 定義爲:
                             
在樣本空間中,劃分超平面可通過如下線性方程來描述:
                                 w^{T}+b=0
其中w=(w_{1};w_{2};...;w_{d})爲法向量,決定了超平面的方向;
        b爲位移項,決定了超平面與原點之間的距離。
劃分超平面可被法向量\omega和位移b確定,並將其記爲(\omega ,b)
樣本空間中任意點x到超平面(\omega ,b)的距離可寫爲
                                  
假設超平面(\omega ,b)能將訓練樣本正確分類,即對於(x_{i},y_{i})\in D
y_{i}=+1,則有w^{T}+b>0;
y_{i}=-1,則有w^{T}+b<0。令
                              \left\{\begin{matrix} \omega ^{T}x_{i}+b\geqslant +1,y_{i}=+1;\\ \omega ^{T}x_{i}+b\leqslant -1,y_{i}=-1. \end{matrix}\right.
如下圖所示,距離超平面最近的這幾個訓練樣本點使上式等號成立,他們被稱爲“支持向量
兩個異類支持向量到超平面的的距離之和爲
                               \gamma =\frac{2}{||\omega ||}
它被稱爲“間隔”。

支持向量與間隔​​​​

欲找到具有“最大間隔”的劃分超平面,也就是要找到能滿足式\left\{\begin{matrix} \omega ^{T}x_{i}+b\geqslant +1,y_{i}=+1;\\ \omega ^{T}x_{i}+b\leqslant -1,y_{i}=-1. \end{matrix}\right.中約束的參數\omegab,使得\gamma最大,即
                                  
顯然,爲了最大化間隔,僅需最大化||\omega ||^{-1},這等價於最小化||\omega ||^{2},於是上式可寫成
                                  
這就是支持向量機(SVM)的基本型 ★★★

3.3 支持向量

如下圖所示,分離超平面爲 w^{T}+b=0,如果所有的樣本不光可以被超平面分開,還和超平面保持一定的函數距離(下圖函數距離爲1),那麼這樣的分類超平面是比感知機的分類超平面優的。
可以證明,這樣的超平面只有一個。  
和超平面平行的保持一定的函數距離的這兩個超平面對應的向量,我們定義爲支持向量,如下圖虛線所示。    
   
★超平面方程:{\color{Red} w^{T}+b=0}

★最大間隔: 尋找參數{\color{Red} \omega}{\color{Red} b}, 使得{\color{Red} \gamma}最大.
                     

3.4 對偶問題


其中f(x)是目標函數,g(x)爲不等式約束,h(x)爲等式約束。

若f(x),h(x),g(x)三個函數都是線性函數,則該優化問題稱爲線性規劃。
若任意一個是非線性函數,則稱爲非線性規劃。

若目標函數爲二次函數,約束全爲線性函數,稱爲二次規劃。

若f(x)爲凸函數,g(x)爲凸函數,h(x)爲線性函數,則該問題稱爲凸優化。
注意這裏不等式約束g(x)<=0則要求g(x)爲凸函數,若g(x)>=0則要求g(x)爲凹函數。

凸優化的任一局部極值點也是全局極值點,局部最優也是全局最優。

對於稍前所述的公式(SVM的基本型
                      

                      
使用拉格朗日乘子法可得到其“對偶問題
對上式的每條約束添加拉格朗日乘子\alpha _{i}\geqslant 0,該問題的拉格朗日函數可寫爲:
                      
我們希望求解SVM的基本型公式來得到大間隔劃分超平面所對應的模型
                         f(x)=\omega ^{T}+b
其中\omegab是模型參數。
注意到SVM的基本型是一個凸二次規劃問題。能直接用現成的優化計算包求解,但我們又更高效的辦法。

拉格朗日乘子法

第一步:引入拉格朗日乘子得到拉格朗日函數
               

                 
第二步:令L(\omega ,b,\alpha )\omegab的偏導爲零可得
                 
                  0=\sum_{i=1}^{m}\alpha _{i}y_{i}=-\frac{1}{2}w^{T}w+\sum_{i=1}^{m}\alpha _{i}
第三步:回代可得
                  
                   
不難發現,這是一個二次規劃問題。
然而,該問題的規模正比於訓練樣本數,這會在實際任務中造成很大的開銷。
爲了避開這個方案,人們提出了很多高效算法,SMO是其中一個著名的代表。

解的稀疏性

求出\omegab後,可得最終模型:
                   

KKT條件
                   
對任意樣本(x_{i},y_{i}),總有\alpha _{i}=0y_{i}f(x_{i})=1
\alpha _{i}=0,則該樣本將不會在式的求和中出現,也就不會對f(x)有任何影響;
\alpha _{i}>0,則必有y_{i}f(x_{i})=1,所對應的樣本點位於最大間隔邊界上,是一個支持向量。
支持向量機解的稀疏性: 訓練完成後, 大部分的訓練樣本都不需保留, 最終模型僅與支持向量有關。
重要性質:模型訓練完後,大部分的訓練樣本都不需要保留,最終模型僅僅與支持向量有關

對偶方法重新求解前面的問題

如下圖所示的訓練數據集,其正實例點是x_{1}=(3,3)x_{2}=(4,3),負實例點是x_{3}=(1,1)
試求其線性可分的支持向量機。
          
:正實例點是x_{1}=(3,3)x_{2}=(4,3)
       負實例點是x_{3}=(1,1)
       根據SVM的基本型
        
       可得:
         

         
         
第一步:轉化爲對偶問題
           由拉格朗日乘子法
            
            可得(求最小化問題添負號,三個樣本故m=3,正樣本y=+1,負樣本y=-1)
          
            即
          
           :這裏贅述一點關於上式中的難點推導:
                    已知正樣本1:(x_{1},y_{1})=(3,3)
                           正樣本2:(x_{2},y_{2})=(4,3)
                            負樣本 :(x_{3},y_{3})=(1,1)
                    那麼\sum_{i=1}^{3}\sum_{j=1}^{3}是將樣本全部遍歷一遍
                    當i=1,j=1時:
                             \alpha _{1}\alpha _{1}(y_{1}\, y_{2})\binom{x_{1}}{x_{2}}=\alpha _{1}\alpha _{1}(3\, 3)\binom{3}{3}=18\alpha _{1}^{2}
                    就這樣將i=1,2,3和y=1,2,3兩兩組合共九種情況結果相加即可
                    算時唯一一點要注意的是負樣本的取值前要添加負號!
第二步:代入約束條件
              
              目標函數變形爲:
                
               接下來分別對\alpha _{1},\alpha _{2}求偏導       
                 
               令上兩式均等於0
              
               由於\alpha _{2}<0,不滿足KKT條件第一條,故不符合要求,從而最小值在邊界達到;
第三步:利用KKT條件,計算向量\omega
              
               又由於-\frac{1}{4}<-\frac{2}{13}
              
               根據公式\omega =\sum_{i=1}^{m}\alpha _{i}y_{i}x_{i}可得:
                                        
                對上式計算具體而言,\frac{1}{4}(3,3)-\frac{1}{4}(1,1)=(\frac{1}{2},\frac{1}{2})
第四步:利用KKT條件,計算b
              
              
              
              
如果樣本變多,人工計算不現實,需要一種高效的計算算法。

3.5 核函數

3.6 軟間隔與正則化

3.7 支持向量迴歸

3.8 核方法

(待更新……)


歡迎留言,一起學習交流~~~

感謝閱讀

END

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