感知機是一個線性分類器腻要,是向量機的基礎复罐。
為了方便敘述,僅考慮2維問題雄家。如果數(shù)據是線性可分的話效诅,那么一定存在一些線,使得線的兩側是兩個不同的類。
1. 感知機模型:
Y={1,-1},如果填帽,則預測
;如果
蛛淋,則預測
。所以篡腌,如果出現(xiàn)誤分類的話褐荷,
。
在這個模型中嘹悼,我們的目標是將誤分類點的個數(shù)->0,所以其實是在最小化一下這個loss function:
min ,其中M是誤分類點的index叛甫,用一些最優(yōu)化方法可以解得:
;
但感知機模型有一些問題:
- 如果一個平面線性可分的話,那一定存在不止一條的線可以劃分這個平面杨伙,但我們顯然是想要找到一條最好的
- 如果這些點線性不可分其监,那這個算法可能不會收斂
為了解決問題1,我們想在模型1的基礎上加一些條件限制限匣,于是有了hard-margin SVM:
2.Hard-Margin SVM
hard-margin SVM是在尋找一條線性分割線的同時抖苦,找到一個可以最大間隔超平面的線。
令 ,如果點
是分類正確的話米死,那么
是點到超平面的距離锌历。如果是誤分類點的話,那么
,所以我們希望
這就保證了所有點到超平面的距離都大于,最大化
使得我們能得到一個最大間隔超平面峦筒。
因為,所以
->
究西,令
,則這個模型的優(yōu)化問題等價于:
要求解這個問題,我們可以把這個優(yōu)化問題寫成最小化以下的拉格朗日方程:物喷,令一階導為0求極值
;
將這些值代入
考慮的對偶問題
至于為什么這個方法要叫做Support Vector Machine,是因為我們會發(fā)現(xiàn)只有在兩條邊界線上的點對應的會大于0卤材,所以其實問題的解僅僅只和訓練集中的一部分點有關,那這些點就被稱為support vector峦失。
求解對偶問題與求解原問題等價扇丛,那為什么要引入對偶問題呢?一個是因為對偶問題的求解一般會比較簡單宠进,而且對偶問題改變了算法復雜度晕拆。
對于原問題藐翎,算法復雜度與feature數(shù)有關材蹬,而對于對偶問題,算法復雜度與樣本數(shù)有關吝镣。因為在SVM中有時會運用核函數(shù)進行升維堤器,并且升維后的樣本維度可能會大于樣本數(shù),所以對偶問題會更容易求解末贾。
而且對偶問題的形式更容易引入核函數(shù)的概念
為了解決問題2闸溃,又可以再hard-margin模型的基礎上加一些容忍度,使得模型可以容忍誤分類點的存在。
3.Soft-Margin SVM
的作用就是給一些容忍度辉川,對于誤判的點表蝙,
,對于正確判斷但在兩線之間的點乓旗,
府蛇,對于其他的點,
我們一般會用cross-validation來選擇C屿愚,C越大汇跨,就會越小。