支持向量機(SVM)推導

一、硬間隔支持向量機

        1.基於線性可分訓練集D找到一個劃分超平面,使超平面能夠將不同類別樣本分開。

        2.對於不同類別樣本,令,僅有幾個距離超平面最近的點使得等號成立。通過先調整b能使得超平面恰好在兩個異類支持向量各產生一個平行超平面中間。取只是爲了後面方便計算,其他常量也可以,只是相當於按比例放縮w和b,因爲是依據w、b優化間隔最大,所以w、b的放縮對整體不影響。


        於是兩個異類支持向量到超平面的距離之和爲,被稱爲間隔。

        3.目標:最大化間隔,目標函數:,等價於

          這就是SVM原始問題。

        4.對基本型使用拉格朗日乘子法:得到拉格朗日函數:

          該拉格朗日函數對w和b進行求導並等於0,得到:

          對偶問題就是(根據拉格朗日對偶性):

          再將上面求導結果帶入,可得對偶問題:,                                                                                                                                 

        5.解出後,求出w和b即可得到模型:

          根據拉格朗日對偶性定理,對滿足原始問題和對偶問題中的和x,需要滿足KKT條件:


          可以發現:對任意的訓練樣本,總有,若,則不會在求和求w中出現,也就不會對有任何影響,若,則必有,所對應的樣本點在最大間隔上,是一個支持向量。這顯示支持向量機的一個重要屬性:訓練完成後,大部分的訓練樣本都不需保留,最終模型僅與支持向量有關。(此步和求解最終結果無關)

        6.具體求解對偶問題。這是一個二次規劃問題,使用SMO高效算法來求解。

          SMO不斷執行如下兩個步驟直至收斂:

                1.選取一對需要更新的變量

                2.固定以外的參數,求解4中對偶問題等式方程。

          選取時的技巧:使選取兩變量所對應樣本之間的間隔最大,這樣的兩個變量有很大的差別,與對兩個相似的變量進行更新相比,對它們更新會帶給目標函數更大的變化。

          具體:約束可重寫爲:,其中

                    再用消去對偶問題方程中的,則得到一個關於變量的單變量二次規劃問題,這樣的二次規劃具有閉式解,可高效計算出更新後的

            7.w的確定把求出的帶入可求出

               b的確定:注意到對任意的支持向量都有,即,其中S爲支持向量集。可根據使用所有支持向量求解平均值:

二、核函數

        前面的求解基於一個最基本的條件:訓練數據集線性可分。

        但當數據集並非線性可分時,可將樣本從原始空間映射到一個更高維的特徵空間,使得樣本在這個特徵空間中線性可分。根據定理:如果原始空間是有限維,那麼一定存在一個高維空間使得樣本可分。

        令表示將x映射後的特徵向量,則在特徵空間中劃分超平面所對應的模型表示爲:

        類似地,SVM基本型問題:

        對偶問題:

                        

        直接計算通常比較困難,可設想這樣一個函數:,這個函數就是核函數,這種處理叫做核技巧。將向量內積的計算轉換爲一個函數式的計算,簡化計算複雜性。

        求解後可得到:

        下面核函數的選擇成爲了支持向量機的最大變數,常用的核函數有:


                            高斯核也稱爲RBF核函數(徑向基和函數)

        此外,核函數也可以通過組合得到:

                1.若是核函數,則對於任意的正數,其線性組合:也是核函數。

                2.是核函數,則核函數的直積也是核函數。

                3.若是核函數,則對於任意的函數,也是核函數。

三、軟間隔支持向量機

        在現實任務中往往很難弄確定合適的核函數使得訓練樣本在特徵空間中線性可分,即是確定了某個核函數,也很難確定這個線性可分的結果是否是由於過擬合造成的,因此:允許支持向量機在一些樣本上出錯,即引入軟間隔,使得某些樣本不滿足約束:.

        注:軟支持向量機使用的是hinge損失:

        1.即可引入一個鬆弛變量,使得函數間隔加上鬆弛變量大於等於1,約束條件就變爲

          同時對每個鬆弛變量,要支付一定的代價,SVM原始問題就變爲:

                

                

        2.將原始問題轉化爲拉格朗日函數:

        

        其中是拉格朗日乘子。

        拉格朗日函數對求偏導得零,可得:

                                                                    

        3.將上述偏導爲0的條件帶入拉格朗日函數中,即可得到對偶問題:

        

        

        注:小於等於C是從求偏導第三個式子和得到。

        4.對於軟間隔支持向量機,KKT條件爲:

            

        KKT條件說明:

                       1.若,則對應的該樣本對f(x)沒有影響。

                       2.若,則必有,則該樣本是支持向量(只要不滿足的點都是支持向量):

                                      若,則,進而有,則該樣本恰在最大間隔邊界上。

                                      若,則,此時若,則該樣本落在最大間隔內部,若,則該樣本被錯誤分類。