SVM清晰講解——線性可分問題


轉載作者:liangdas

引言:

       1995年Cortes和Vapnik於首先提出了支持向量機(Support Vector Machine),由於其能夠適應小樣本的分類,分類速度快等特點,性能不差於人工神經網絡,所以在這之后,人們將SVM應用於各個領域。大量使用SVM模型的論文不斷涌現,包括國內和國外。

       但是,直到現在,很少能見到一個能對SVM的原理准確,詳細,通俗,嚴謹闡述的論文或者資料,所以決定查閱很多的資料,結合自己的思考和理解,來寫一篇關於SVM的系列文章。

線性可分問題:

       在分類問題中,最簡單的分類就是二分類問題,而且這個二分類問題是一個線性可分問題。那么對於一個線性二分類問題,它的目標函數是什么呢?確定目標函數之后,我們又用什么方法來求解呢?

       在一維空間,也就是一個坐標軸上面,要分開兩個可以分開的點集合,我們只需要找到一個點,如圖1:

圖1 一維線性可分示意圖

   在二維空間中,要分開兩個線性可分的點集合,我們需要找到一條分類直線即可,如圖2:

圖2 二維線性可分示意圖

 

  在三維空間中,要分開兩個線性可分的點集合,我們需要找到一個分類面:如圖3:

圖3 三維線性可分示意圖

 

   在n維空間中,要分開兩個線性可分的點集合,我們需要找到一個超平面(Hyper Plane)。

為了直觀,我們以上面二維空間為例子來分析:在圖2中分布着兩類點:淡藍色和黑色的點,分別代表着不同的兩個類別,顯然,我們可以找到一條直線來把這兩類點分開,高中的時候,常見的直線方程表達式是y=ax+b,我們現在用向量來表示,就是:,把向量(a,-1)用向量符號w來表示,維數向量(x,y)用向量符號x(此時的x是一個向量)來表示,那么直線方程就變成了wx + b = 0。

目標函數:

       再次觀察圖2,可以知道,在這個二維平面中,可以把兩類點的分開的直線有很多條,如圖4所示,那么這些直線中,哪一條才是最好的呢?也就是如何選擇出一條最好的直線呢?

 

 圖4 多條分類直線

  在圖4中,我們先看淡藍色的點,如果這些點到分類直線的距離越大,分類直線也就越遠離藍色的點,那么再來一個新的點,如果這個點是依照淡藍色點集合的特性產生的(也就是它不是一個相對於藍色點集合很奇異的點),那么這個點也很可能和藍色的點集合一樣,分布在直線的同一側。分布在同一側,表明它和藍色集合點屬於同一個類別。用同樣的思想,圖4中,對於黑色的集合點,這條分類直線離它們的距離也要越遠越好。所以找最優分類線,就是要找到這條一條直線,使它到兩個類別點的距離越大越好。

       回憶一下高中所學的點到直線的距離公式:直線(一般式):Ax+By+C=0另外一個點的坐標(x0, y0),那么這點到這直線的距離就是:

  那么,對於直線wx+b=0的形式,如果有一個點x,那么它到直線的距離公式就是,把向量寫成二范數的形式,即是:

  所以上面的二維線性可分問題的目標函數就可以抽象成如下的數學表達式:

目標函數的簡化:

       對於一個待分類類別,為了自己的類別能准確地分類,都希望分類直線到自己的距離大些,當有兩類的時候,就會形成相互競爭,最后的競爭結果就是讓這條分類直線,到兩個類別的距離相等,在生活中,通常也是這樣達到一種平衡狀態的。

       如圖5,我們作兩條直線,和分類直線平行,讓這兩條直線分別經過下面藍色和黑色集合的邊界,同時,滿足這兩條直線到中間分類直線的距離相等,那么,我們可以假定這兩條直線方程分別是wx+b=c, wx+b=-c。

 圖5 兩類別到分類直線的距離相等

用兩條平行直線的距離計算公式, 那么,兩個類別集合到分類直線的最近距離,這個公式,其實和上面點到直線的距離公式是一樣的。

對於一條直線,wx+b=c,我們相應的成比例的縮小他們的系數,如變成,這條直線和原來的直線還是同一條直線。現在把它變成,新的直線還是和以前直線是同一條直線,也就是說,對於直線wx+b=c,我們總可以找到另外的一條新的 w1=w/c, b1=b/c,使w1*x+b1=1, 而且這兩條直線其實表達的是同一條直線,這樣的話,上面的圖5可以變成如下的圖6:

圖6 兩類別到分類直線的距離相等

   從圖6中,結合我們要尋找的最優分類直線,是到兩類類別點集合的距離最大的直線的思想,我們可以抽象出此時的目標函數: 

        這樣,這個目標函數看起來就比原來簡潔多了。

目標函數的約束條件:

       在圖6中,對藍色樣本點而言,不在w1*x+b1=1直線上的點,一定是在直線上面的點,它們滿足w1*x+b1>1,所以對所有的藍色樣本點而言,它們都滿足w1*x+b1>=1;同理,對所有黑色的樣本點,都是滿足w1*x+b1<=-1。這兩個條件是我們求解的限制條件,也就是我們尋找上面的目標函數的時候,必須滿足上面的兩個不等式約束。

                      滿足條件:

觀察上面的不等式條件表達式,是不是有一種想把兩個式子合並成一個式子的沖動?其實,上面藍色點對應的不等式,我們在不等式兩邊同時乘以一個y=1;同理,黑色點對應的不等式,在式子兩邊同時乘以一個y=-1, 那么上面的兩個式子可以變成

       但是,為什么可以在一個不等式的兩邊乘以一個1,而另外一個乘以-1呢?我們來看藍色點對應的不等式,式子左邊是樣本點的維度向量x的表達式,對於一些訓練樣本點,它們還有一個已知的類別標記量label,這里我們把它叫做y,這樣的話,對藍色點的y值,我們人為將其定為1,而對黑色點的y值,我們將其定為-1,所以,對上面的兩個不等式,分別在不等式的兩邊乘以類別值y,我們就可以自然將兩個不等式合並成上面的那一個不等式了。這也是為什么我們在生成SVM訓練樣本的時候,將兩個類別分別定義成1和-1的原因!

       到這里,我們目標函數可以寫成:

 

       這樣的一個目標函數是一個帶不等式約束條件的優化問題,它怎么來求解呢?后面一章節來繼續講解這個問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM