1. 程式人生 > >SVM--深入學習1

SVM--深入學習1

SVM–深入學習1

根據臺灣大學林軒田老師機器學習技法課程整理。
SVM就是要找一條最胖的分類線,最胖的分類線如何確定呢?所有點到分類線都有一定距離,這條最胖的線就是最大的所有點中距離最小的那條線。(有點繞)
如下圖所示,三幅圖中三條線都分類正確,第一幅圖中所有點中距離分類線最近的距離記為a1,第二幅圖中記為a2,第三幅圖記為a3,顯然a3>a2>a1,所以a3的那條分類線就是我們所求的最胖的線(max margin)
這裡寫圖片描述

下面我們來說明如何求每一點到分類線的距離distance(幾何知識)。
(以分類面為例,和分類線同一道理,利用分類面更方便解釋說明)
如下圖所示, x

x′′ 是分類面上的兩個向量,W 是分類面的法向量,於是有WTx=bWTx′′=b。各個點到分類面的距離就可以利用學過的幾何知識求得(圖中最後一個公式),將WTx用-b替換,可得到最終的形式。
這裡寫圖片描述

求得了distance,margin 就是min distance,我們的目標是求max margin,如下圖所示。這裡yn=sign(WTx),yn只能取1或-1,正確分類了所以兩者乘積肯定為正,所以把上面公式中的絕對值換成了現在的形式。
這裡寫圖片描述
再進一步轉化(這個轉化還沒搞特別清楚,先不寫緣由了),得到
這裡寫圖片描述
一般比較方便求最小值,所以再把求最大值轉化為求最小值,約束條件也做一下轉化,得到
這裡寫圖片描述

這個形式其實就是二次規劃,我們用的工具裡面都有現成的二次規劃求解,所以就很容易求解了。
這裡寫圖片描述
這裡寫圖片描述
但是以上這些都是基於線性可分討論的,如果線性不可分呢?