1. 程式人生 > >SVM(支援向量機)- 基本思想(一)

SVM(支援向量機)- 基本思想(一)

SVM(支援向量機)- 基本思想(一) 

Reference:

          《convex optimizationSP Boyd, L Vandenberghe – 2004

       說明:本系列純粹是pluskid部落格的狗尾續貂之作,寫下了只是想讓自己踏踏實實學點東西,如果看懂了pluskid的部落格,那就直接Pass,如果有不清楚的地方,說不定我的部落格裡面會給你一些啟發。

1 Basic idear

Figure 1

Question :

       假設樣本為二維的情況,圖中有紅藍兩種點,代表已經有的兩類樣本資料,我們需要在紅、藍之間找一個分介面,使得分介面的一邊是一類,另一邊是另一類。很明顯,會有很多個滿足條件的平面,比如圖中的紫色和深紅色的兩條直線,我們要找的是一個最優的超平面,使得對後續要分類的測試點,也能取得比較準確的分類,即泛化能力要強。例如,現在我們要對黑色和黃色兩個測試點進行分類,我們僅有的資訊就是藍方和紅方的分佈,觀察這兩方的分佈,直觀上我們認為,黑色該屬於藍方,而棕色該屬於紅方。然而,紫色直線把黑色測試點分類為紅方,黃色點分為藍方,因此,相對深紅色直線泛化能力略微遜色了點。那怎樣的一條直線才是泛化能力最好的呢?這就是技術活了,直觀上我們覺得紫色直線靠,兩點太近了將紫色直線順時針旋轉一點點會效果更好,比如轉到紅色直線的位置。那紅色直線具有什麼樣的屬性呢?一般這種問題都會轉化成為一個最優化問題,讓數學來回答這個問題,SVM也不例外。

Answer :

       既然很多直線都能滿足,那我們就找這裡面最特殊的一條,特殊在於距離。在能正確區分訓練集的直線集中,計算它門到最近樣本點的距離,我們選擇使得此距離最大的那條直線

Formulation:

(1)點到直線的距離:

Figure 2

直線方程為 ,求點到該直線的距離

取直線上任意一點,則將向量往法向量投影得到

        

同時滿足代入上式得

        

        但是求出來的距離在直線下方為負,在直線上方為正,而我們一般的類別標號就是取因此,就都統一為正的了。不過實際上每類樣本取正還是負都沒關係。假設為直線上方的樣本點標號為時的解,現在將其變為負,即

取為,要滿足,顯然此時的解。即法向量變換方向,也取反。直接決定了分界直線相對原點的偏移。易得原點到分界直線的距離

(2)滿足條件的直線中使得距離最近的點到直線的距離最大

        

是要找到樣本點到特定直線的最近距離,是要找到使得最近距離最大的直線。

Opotimizing function

      優化(1.3)即得到我們要求的最優分界直線。但是直接優化(1.3)很困難,因為變化,對應的也可能會變化,使得優化過程中要在之間不斷切換,弄得我們手忙腳亂。對於這種好動的函式,我們要像醫生一樣,給它綁起來(回憶下金剛狼的場景)。

注意到對任意都可以通過對等比例縮放使得其為(固定),同時還能保證

(等價)。那麼優化(1.3)可簡化成優化:

        

當然前提是我們能將最近的距離調節為1,於是加上約束條件(感覺像手銬腳鏈……):

        

       優化之後總能使得兩類樣本都有點(向量)到分界線的函式距離:,如Figure 1中紅色和藍色穿直線穿過的點。正是在上的向量(即點)決定了分界線,因此它們被稱為支援向量,而SVM是一個分類器,可以理解成能自動判別的機器,所以合稱支援向量機。

       首先說明下為什麼最終支援向量到分界線函式的距離是相等的,即 。試想下,如果一邊距離遠,一邊距離近,考慮式(1.3)那麼就對距離近的支援向量取,很明顯,它的距離可以向距離遠的這邊移動來達到更大的值。因此,兩類樣本都不會讓步,最終只能本著公平公正的原則取中間。

       為什麼一定是呢?試想下,如果,很明顯,將,那麼也將縮小為1,那麼式(1.4)將增大倍,因而不是最優值,因為就比它更優。因此,最終總能使得

Further

       這裡討論的是二維的情況,對於三維的樣本,可以拓展為分界平面,對於更高維的情況,可以拓展為分界超平面。

      對於線性不可分的情況,即無論如何都找不到一條直線能夠完全區分出兩類樣本,即包容的點。允許它們犯點錯誤,使得

      當錯誤已經大到忍無可忍的時候,我們將對映到高維空間,從而擴充套件成非線性分界曲線/面。

2 Optimizatin solving 待續