SVM的原理及推導
SVM的原理及推導
我們直接用數學公式來描述我們要解決的問題。假設我有一個數據集 ,總共有m個樣本 。其中。其中 是維的向量,是二類分類問題的標籤,是d維的向量,y是二類分類問題的標籤, 。我們首先假設我們的資料是完美的,即,在維度的平面上,我們的資料是線性可分的,那麼我們就可以畫一條直線。我們首先假設我們的資料是完美的,即,在維度d的平面上,我們的資料是線性可分的,那麼我們就可以畫一條直線 使得我們所有的不同類別的樣本區分開來,即對於所有使得我們所有的不同類別的樣本區分開來,即對於所有 的樣本的樣本 有 ,反之對於所有,反之對於所有 的樣本有的樣本有 。
但是,如果我們只是單純的規定
作為超平面來區分正負樣本,這樣的超平面有很多,任何一個超平面符合上述條件都可以作為解,而這對分類的泛化性並不友好。也就是說,當超平面實際上選取很差時,對於測試資料,一點微小的噪聲就會導致它的錯分。所以SVM定義了另外兩個超平面(支援超平面 Supporting Hyperplane),都與
平行,到超平面的距離(邊際 Margin)分別為
和
,並且保持
。我們將這兩個超平面用公式表示:
我們注意到,如果將公式的左右兩邊同時乘以一個係數,公式仍然成立。而且這個公式存在著過引數化。因此SVM規定了這個
。那麼邊際大小
就等於:
至此我們已經決定了我們所要得到的優化目標,即找到一個超平面
使得它存在兩個與之平行、與之距離為
並分佈兩側的超平面,能夠完美分開所有的訓練資料,使得正樣本在
,負樣本
。我們把問題寫成凸優化問題的形式:(這裡強調一點,源自於Convex Optimization那門課中,很多人把優化公式中的max和maximize,min和minimize混為一談,實際上是不正確的,min/max返回的是一個值,即最小/大值,只有maximize/minimize代表著優化目標函式。)
由於
是個concave的函式,我們便可以通過倒數的方式轉成convex的標準形式,這裡加平方應該是要為了是讓曲線保證平滑來保證處處可導(這裡不是很確定,如果說的不對請大家指出謝謝),即:
對於剛好落在支援超平面上的點,我們就將他們成為支援向量(Support Vector)。
這個問題,可以通過**拉格朗日法(Lagrangian)**轉換成對偶問題求解。
首先,我們將約束條件乘以一個 加入到優化函式