支持向量機淺析

有一個二維平面,平面上有兩種不同的數據,分別用圈和叉表示。由於這些數據是線性可分的,所以可以用一條直線將這兩類數據分開,這條直線就相當於一個超平面,超平面一邊的數據點所對應的y全是-1 ,另一邊所對應的y全是1。

    這個超平面可以用分類函數表示,當f(x) 等於0的時候,x便是位於超平面上的點,而f(x)大於0的點對應 y=1 的數據點,f(x)小於0的點對應y=-1的點,如下圖所示:

 

    注:有的資料上定義特徵到結果的輸出函數,與這裏定義的實質是一樣的。爲什麼?因爲無論是,還是,不影響最終優化結果。下文你將看到,當我們轉化到優化的時候,爲了求解方便,會把yf(x)令爲1,即yf(x)是y(w^x + b),還是y(w^x - b),對我們要優化的式子max1/||w||已無影響。

    換言之,在進行分類的時候,遇到一個新的數據點x,將x代入f(x) 中,如果f(x)小於0則將x的類別賦爲-1,如果f(x)大於0則將x的類別賦爲1。

    接下來的問題是,如何確定這個超平面呢?從直觀上而言,這個超平面應該是最適合分開兩類數據的直線。而判定“最適合”的標準就是這條直線離直線兩邊的數據的間隔最大。所以,得尋找有着最大間隔的超平面。

 

函數間隔Functional margin與幾何間隔Geometrical margin 


    在超平面w*x+b=0確定的情況下,|w*x+b|能夠表示點x到距離超平面的遠近,而通過觀察w*x+b的符號與類標記y的符號是否一致可判斷分類是否正確,所以,可以用(y*(w*x+b))的正負性來判定或表示分類的正確性。於此,我們便引出了函數間隔(functional margin)的概念。

    定義函數間隔(用表示)爲:

    而超平面(w,b)關於T中所有樣本點(xi,yi)的函數間隔最小值(其中,x是特徵,y是結果標籤,i表示第i個樣本),便爲超平面(w, b)關於訓練數據集T的函數間隔:

     = mini  (i=1,...n)

    但這樣定義的函數間隔有問題,即如果成比例的改變w和b(如將它們改成2w和2b),則函數間隔的值f(x)卻變成了原來的2倍(雖然此時超平面沒有改變),所以只有函數間隔還遠遠不夠。

    事實上,我們可以對法向量w加些約束條件,從而引出真正定義點到超平面的距離--幾何間隔(geometrical margin)的概念。

    假定對於一個點 x ,令其垂直投影到超平面上的對應點爲 x0 ,w 是垂直於超平面的一個向量,爲樣本x到超平面的距離,如下圖所示:

根據平面幾何知識,有

    其中||w||爲w的二階範數(範數是一個類似於模的表示長度的概念),是單位向量(一個向量除以它的模稱之爲單位向量)。

    又由於x0 是超平面上的點,滿足 f(x0)=0,代入超平面的方程,可得,即

    隨即讓此式的兩邊同時乘以,再根據和,即可算出γ: 

  爲了得到的絕對值,令乘上對應的類別 y,即可得出幾何間隔(用表示)的定義:

    從上述函數間隔和幾何間隔的定義可以看出:幾何間隔就是函數間隔除以||w||,而且函數間隔y*(wx+b) = y*f(x)實際上就是|f(x)|,只是人爲定義的一個間隔度量,而幾何間隔|f(x)|/||w||纔是直觀上的點到超平面的距離。

 

最大間隔分類器Maximum Margin Classifier的定義


    對一個數據點進行分類,當超平面離數據點的“間隔”越大,分類的確信度(confidence)也越大。所以,爲了使得分類的確信度儘量高,需要讓所選擇的超平面能夠最大化這個“間隔”值。這個間隔就是下圖中的Gap的一半。

    通過由前面的分析可知:函數間隔不適合用來最大化間隔值,因爲在超平面固定以後,可以等比例地縮放w的長度和b的值,這樣可以使得的值任意大,亦即函數間隔可以在超平面保持不變的情況下被取得任意大。但幾何間隔因爲除上了,使得在縮放w和b的時候幾何間隔的值是不會改變的,它只隨着超平面的變動而變動,因此,這是更加合適的一個間隔。換言之,這裏要找的最大間隔分類超平面中的“間隔”指的是幾何間隔。

   於是最大間隔分類器(maximum margin classifier)的目標函數可以定義爲:

    同時需滿足一些條件,根據間隔的定義,有

    其中,s.t.,即subject to的意思,它導出的是約束條件。

    回顧下幾何間隔的定義,可知:如果令函數間隔等於1(之所以令等於1,是爲了方便推導和優化,且這樣做對目標函數的優化沒有影響,因爲函數間隔本來就可以按照w與b成比例變化,我們的目標是求w而不是γ,這裏γ的大小不會對w關於函數的取值產生影響,所以我們去一個合適的值來簡化運算,我們可以令分類函數 f(x)=wTx+b , 顯然,如果 f(x)=0 ,那麼 x 是位於超平面上的點。我們不妨要求對於所有滿足 f(x)<0 的點,其對應的 y 等於 -1 ,而 f(x)>0 則對應 y=1 的數據點。),則有 = 1 / ||w||且,從而上述目標函數轉化成了

因爲定義了函數間隔爲1,所以相應的式子中的約束條件也要相應的改變。

    相當於在相應的約束條件下,最大化這個1/||w||值,而1/||w||便是幾何間隔。   

    如下圖所示,中間的實線便是尋找到的最優超平面(Optimal Hyper Plane),其到兩條虛線邊界的距離相等,這個距離便是幾何間隔,兩條虛線間隔邊界之間的距離等於2,而虛線間隔邊界上的點則是支持向量。由於這些支持向量剛好在虛線間隔邊界上,所以它們滿足(還記得我們把 functional margin 定爲 1 了嗎?上節中:處於方便推導和優化的目的,我們可以令=1),而對於所有不是支持向量的點,則顯然有

    OK,今天到此爲止。
 

參考:

https://blog.csdn.net/v_july_v/article/details/7624837

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