引言
對於SVM的大致原理之前已經講過了,但是對於公式的推導,很多書都並未做要求,而且在實際應用過程中並未涉及過深,但鑒於台大機器學習課程中講到了,自己為了鞏固自己的學習,也梳理一遍SVM中公式的推導
此處考慮了C,也就是懲罰因子,不再是之前的hard-margin
推導過程
如果是soft-margin,那就說明我們能容忍一些錯誤,那么目標問題轉化為
其中C比較大的時候,對離群點重視,越不要犯錯越好,C比較小的時候,不是很看重離群點,重點在於找出margin越大越好
對於上面的問題我們無法求解,那么我們不妨轉變一下思維,不去看犯了多少錯誤,而去看一共犯的錯誤有多大,用ξ記錄違規了多少
此時的問題已經轉換為二次規划問題了,對於二次規划問題又可以用之前的方法轉換為對偶的二次規划問題了
同樣是利用拉格朗日算法,由於有兩組條件,所以需要兩個參數α和β來作為拉格朗日乘子
為了求L的極值,我們得對這些變量求偏微分,首先我們對ξ做偏微分
得到β和C和α的關系,這樣我們可以把β換掉,這樣只考慮α
將β帶進去得到:
這個式子如果不看條件的話跟hard margin的一樣,這樣的話我們可以對b,w做偏微分
這樣我們得到α和yn的關系,以及w和α和yn以及zn的關系,帶入式子中
問題就轉換為跟原來差不多,只是α的條件多了一個C
然后把二次規划問題丟到QP解中可以解得到α,但是b的算法跟原來不一樣,KKT條件已經變了
主要是b怎么算,hard margin SVM中與soft的對比
主要是y和ξ那一項比較麻煩
可以發現用free SV就可以消掉,於是b的計算方式還是用支持向量來算,也就是free SV
α的三種情形