參考文獻:https://blog.csdn.net/Dominic_S/article/details/83002153
1.硬間隔最大化
對於以上的KKT條件可以看出,對於任意的訓練樣本總有ai=0或者yif(xi) - 1=0即yif(xi) = 1
1)當ai=0時,代入最終的模型可得:f(x)=b,樣本對模型沒有貢獻
2)當ai>0時,則必有yif(xi) = 1,注意這個表達式,代表的是所對應的樣本剛好位於最大間隔邊界上,是一個支持向量,這就引出一個SVM的重要性質:訓練完成后,大部分的訓練樣本都不需要保留,最終的模型僅與支持向量有關。
2.軟間隔最大化
如果數據加入了少數噪聲點,而模型為了遷就這幾個噪聲點改變決策平面,即使讓數據仍然線性可分,但是邊際會大大縮小,這樣模型的准確率雖然提高了,但是泛化誤差卻升高了,這也是得不償失的。
或者有一些數據,線性不可分,或者說線性可分狀況下訓練准確率不能達到100%,即無法讓訓練誤差為0。
此時此刻,我們需要讓決策邊界能夠忍受一小部分訓練誤差,而不能單純地尋求最大邊際了。因為邊際越大被分錯的樣本也就會越多,因此我們需要找出一個”最大邊際“與”被分錯的樣本數量“之間的平衡,引入一個松弛系數ζ。
在硬間隔中:決策平面是綠色實線,約束條件是要保證兩類樣本點分別位於兩條綠色虛線的兩側,所有樣本點都被正確分類。
在軟間隔中:決策平面是綠色實線,約束條件變為藍色虛線,且紅色樣本點在紅色箭頭一側即可,紫色樣本點在紫色箭頭一側即可。
由於ζ是松弛量,即偏離綠色虛線的函數距離(綠色虛線到決策平面的距離為1),松弛量越大,表示樣本點離綠色虛線越遠,如果松弛量大於1,那么表示樣本越過決策平面,即允許該樣本點被分錯。模型允許分類錯誤的樣本數越多,模型精確性越低。因此需要對所有樣本的松弛量之和進行控制,因此將所有樣本量之和加入目標函數。
C表示的是在目標函數中松弛量的權重,C越大表示最小化時更多的考慮最小化ζ,即允許模型錯分的樣本越少,C值的給定需要調參。
同硬間隔最大化SVM,構造軟間隔最大化的約束問題對應的Lagrange函數如下:
優化目標函數為:
對偶問題為:
帶入對偶函數得:
再對上式求α的極大值,即得對偶問題:
此處的約束條件由上面求導的2、3式可得。
軟間隔SVM的KKT條件:
根據KKT條件中的對偶互補條件 αi(yi(wTxi+b)-1+ξi)=0 可知αi>0(即ai≠0)的樣本為支持向量,在間隔邊界上、間隔邊界(yi(w*xi+b)=1)與決策超平面之間、或者在超平面誤分一側的向量都有可能是支持向量,因為軟間隔模型中每個樣本的αi、ξi不同,而αi、ξi不同的取值,樣本就有可能落在不同的區域:
(1)αi<C,則μi>0,ξi=0,支持向量xi恰好落在間隔邊界上;
(2)αi=C,則μi=0,則ζ≠0
0<ξi<1,則分類正確,xi在間隔邊界與決策超平面之間;
ξi=1,則xi在決策超平面上;
ξi>1,則xi位於決策超平面誤分一側。
求得的每個樣本點的α和ζ都不同,因此那條有松弛量的藍色虛線超平面只是一個抽象概念,是不存在的,因為各個樣本的松弛量都不同,C只是對總體樣本的松弛量(即誤差進行控制)。
支持向量是滿足yi(w*xi+b)=1-ζi這個式子的樣本,因為每個樣本的ζi不同因此支持向量構不成線。間隔邊界yi(w*xi+b)=1還在原來的地方。
圖中箭頭所指的樣本點都可以是支持向量。
如果給定的懲罰項系數C越小,在模型構建的時候就允許存在越多分類錯誤的樣本,也就是表示此時模型的准確率比較低;如果給定的C越大,表示在模型構建的時候,允許分類錯誤的樣本越少,也就表示此時模型的准確率比較高。