支持向量機原理(二)線性支持向量機的軟間隔最大化模型

        上一節當中我們對線性可分,即硬間隔情況進行了介紹,本節繼續介紹一下支持向量的軟間隔模型。

1.線性分類SVM面臨的問題      

      我們在討論線性支持向量機的時候,就假定數據是線性可分的,也就是說可以找到一個可行的超平面可以將數據完全分開,但是有的時候會在可分類的樣本中混入異常點,我們稱之爲outlier,存在這種outlier導致樣本不能線性可分,比如下面的這張圖,本來所有的樣本都是可以線性分類的,但是由於一個橙色和一個藍色的異常點導致了我們沒法按照之前的線性支持向量機中的方法來進行分類。

                                                            

                                                                               圖1:混入異常點的樣本

       或者還有這樣一種情況,如下圖所示,其中的異常點並沒有那麼嚴重的不可分,但是會嚴重影響預測效果,如果我們不考慮左上角的藍色異常點,那麼超平面會是圖中的紅線,但是由於存在這樣的一個異常點,導致了我們的超平面是下圖中的粗虛線,這樣會嚴重影響我們的分類模型預測效果。

                                                             

                                                                                 圖2:SVM中的outlier

2.線性分類SVM的軟間隔最大化

        這裏的軟間隔(soft margin)是相當於上一節的硬間隔而言的,回顧一下硬間隔最大化的條件:

                                                                               min \frac{1}{2}\left\|w\right\|^{2}

                                                                 \begin{matrix} s.t. &y_i(w^{T}x_i+b)\geq1(i=1,2,3,...n) \end{matrix}                                              (2.1)

         SVM對訓練集裏面的每個樣本(x_{i},y_{i})引入了一個鬆弛變量\xi _i\geq0,使函數間隔加上鬆弛變量大於等於1,即:

                                                                          y_i(w^Tx_i+b)\geq1-\xi_i                                                                  (2.2)

          鬆弛變量\xi_i對應着數據點x_i允許偏離函數間隔的量,當然\xi_i也不是無限大的,每一個鬆弛變量都對應這一個代價,所以要在原來的目標函數後面加上一項,使得這些\xi_i的總和也要最小,即得到軟間隔最大化的學習條件:

                                                                       min\frac{1}{2}\left\|w\right\|+C\sum_{i=1}^{n}\xi_i

                                                               \begin{matrix} s.t. &y_i(w^{T}x_i+b)\geq1-\xi_i&(i=1,2,3...n) \end{matrix}                                      (2.3)

                                                                        \begin{matrix} \xi_i\geq0 & (i=1,2,3,...,n) \end{matrix}

         這裏的C作爲懲罰參數,C越大,對誤分類的懲罰越大,C越小,對誤分類的懲罰越小。也就是說,我們希望1/2*\left\|w\right\|^2儘量小,誤分類的點儘可能少,用於控制目標函數中兩項之間的權重,在實際應用當中,需要調參數來選擇。在這裏\xi_i是需要優化的變量,這個目標函數的優化和上一篇線性可分的SVM方式類似,接下來就對線性分類的SVM的軟間隔最大化進行學習優化。 

3.線性分類SVM的軟間隔最大化目標函數的優化 

       和之前的方法類似將限制或約束條件加入到目標函數當中去,運用拉格朗日函數將原約束問題轉化爲無約束問題,如下:

                                    L(w,b,\xi,\alpha,r)=\frac{1}{2}\left\|w\right\|+C\sum_{i=1}^{n}\xi_i-\sum_{i=1}^{n}\alpha_i(y_i(w^Tx_i+b)-1+\xi_i)-\sum_{i=1}^{n}r_i\xi_i                 (3.1) 

      其中r_i\geq0,\alpha_i\geq0均爲拉格朗日系數。現在我們要優化的目標函數是:

                                                                        \begin{matrix} \underset{w,b,\xi}{min} & \underset{\alpha_i\geq0,r_i\geq0}{max}L(w,b,\xi,\alpha,r) \end{matrix}                                                            (3.2)

      這個優化目標同樣滿足KKT條件,我們可以通過拉格朗日對偶將要優化的目標轉化爲等價的對偶問題來求解:

                                                                       \begin{matrix} \underset{\alpha_i\geq0,r_i\geq0}{max}&\underset{w,b,\xi}{min}L(w,b,\xi,\alpha,r) \end{matrix}                                                              (3.3)

     先求優化函數對w,b,\xi的極小值,然後在求拉格朗日乘子\alpha,r的極大值。首先來求對於w,b,\xi的極小值,這個可以通過求偏導數來求得:

 

                                                                      \frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^{n}\alpha_iy_ix_i

                                                                       \frac{\partial L}{\partial b}=0\Rightarrow \sum_{i=1}^{n}\alpha_iy_i=0                                                                      (3.4)

                                                                      \frac{\partial L}{\partial \xi}=0\Rightarrow C-\alpha_i-r_i=0

將(3.4)式帶入到(3.1)式當中消去wb,得:

                                          L(w,b,\xi,\alpha,r)=\frac{1}{2}\left\|w\right\|^2+C\sum_{i=1}^{n}\xi_i-\sum_{i=1}^{n}\alpha_i[y_1(w^Tx_i+b))-1+\xi_i]+\sum_{i=1}^{n}r_i\xi_i            

                                                                    =\frac{1}{2}\left\|w\right\|^2-\sum_{i=1}^{n}\alpha_i[y_i(w^Tx_i+b)-1+\xi_i)]+\sum_{i=1}^{n}r_i\xi_i

                                                                     =\frac{1}{2}\left\|w\right\|^2-\sum_{i=1}^{n}\alpha_i[y_i(w^Tx_i+b)-1)] 

                                                                     =\frac{1}{2}w^Tw-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i-\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i

                                                                      =\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_ix_i-w^T\sum_{i=1}^{n}\alpha_iy_ix_i-b\sum_{i=1}^{n}\alpha_iy_i+\sum_{i=1}^{n}\alpha_i

                                                                      =-\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i

                                                                       =-\frac{1}{2}(\sum_{i=1}^{n}\alpha_iy_ix_i)^T(\sum_{i=1}^{n}\alpha_iy_ix_i)+\sum_{i=1}^{n}\alpha_i

                                                                        =\sum_{i=1}^{n}\alpha_i-\sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j                                                          (3.5) 

          仔細觀察(3.5)式,會發現這個式子和硬間隔SVM的優化目標是一樣的,唯一不一樣的是約束條件,現在把軟間隔得優化目標寫出來:

                                                                      \underset{\alpha}{max}\sum_{i=1}^{n}\alpha_i-\frac{1}{2}\sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j      

                                                                                    s.t. \sum_{i=1}^{n} \alpha_iy_i=0                                                                        (3.6)

                                                                                      C-\alpha_i-r_i=0      

                                                                                \alpha_i\geq0,r_i\geq0 (i=1,2,3,...,n)                

對於C-\alpha_i-r_i=0,\alpha_i\geq0,r_i\geq0,可以先消去r_i,只留下\alpha_i,也就是說0\leq \alpha_i\leq C。這就是軟間隔最大化時的線性可分SVM的優化目標形式,和上一篇的硬間隔最大化的線性可分SVM相比,我們僅僅是多出來了一個約束條件0\leq\alpha_i\leq C,我們依然可以通過SMO算法來求上式極小化時對應的\alpha_向量就可以求出wb了。

 4、軟間隔最大化時的支持向量

       在硬間隔最大化的時候,支持向量滿足y_i(w^Tx_i+b)-1=0就可以了。根據KKT條件中的對偶互補條件\alpha_i^*(y_i(w^Tx_i+b)-1)=0,如果\alpha_i^*>0,則有y_i(w^Tx_i+b)=1,即點在支持向量上,否則如果\alpha_i^*=0,則有y_i(w^Tx_i+b)\geq1,即樣本在支持向量上或者已經被正確分類了。

      類似的對於軟間隔支持向量機,KKT條件是:

                                                                        \left\{\begin{matrix} \alpha_i\geq0,r_i\geq0\\ y_i(w^Tx_i+b)-1+\xi_i\geq0\\ \alpha_i(y_i(w^Tx_i+b)-1+\xi_i)=0\\ \xi_i\geq0,r_i\xi_i=0 \end{matrix}\right.                                                 (3.7)

  在軟間隔最大化時,稍複雜一些,因爲我們每一個樣本(x_i,y_i)引入了鬆弛變量\xi_i,通過下圖來說明軟間隔最大化時支持向量的情況,第i個點對應到類別支持向量的距離爲\xi_i/\left\|w\right\|,根據軟間隔最大化時KKT條件中對偶互補條件\alpha_i^*(y_i(w^Tx_i+b)-1+\xi_i)=0,分類來說明一下:

     1)如果\alpha=0,\xi_i=0,那麼y_i(w^Tx_i+b)-1\geq0,即樣本在間隔邊界上或者已經被正確分類。如圖中所有遠離間隔邊界的點。

     2)如果0<\alpha<C,那麼\xi_i=0,y_i(w^Tx_i+b)-1=0,即點在間隔邊界上。

     3)如果\alpha=C,說明這是一個可能比較異常的點,需要檢查此時的\xi_i

            i)如果0\leq\xi_i\leq1,那麼點被正確分類,但是卻在超平面和自己的類別的間隔邊界之間,比如圖中的樣本2和4。

           ii)如果\xi_i=1,那麼點在分離超平面上,無法被正確分類。

           iii) 如果\xi_i>1,那麼點在超平面的另一側,也就是說,這個點不能被正常分類。如圖中的樣本1和3。

                                                                                             

                                                                                         圖3:軟間隔的支持向量

5、軟間隔最大化的線性可分SVM的算法過程

     和線性可分硬間隔SVM一樣,在這裏我們對軟間隔SVM的算法過程也做一個總結。


輸入:線性可分的m個樣本(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_n,y_n),其中的x是有多維特徵的特徵向量,y爲二元輸出,值爲1或者-1。

輸出:分離超平面的參數w^*,b^*的分類決策函數。

     1)選擇一個懲罰係數C>0,構造約束優化問題

                                                        \underset{\alpha_i\geq0}{max}\sum_{i=1}^{n}\alpha_i-\sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j

                                                                    s.t.\sum_{i=1}^{n}\alpha_iy_i=0                                              

                                                                     0\leq\alpha_i\leq C(i=1,2,3,...,n)    

     2) 用SMO算法求出上式最大時對應的\alpha向量的值\alpha^*

     3) 計算w^*=\sum_{i=1}^{n}\alpha^*y_ix_i   

     4) 找出所有的S個支持向量對應的樣本(x_s,y_s),通過y_s(\sum_{i=1}^{n}\alpha_iy_ix_i^Tx_s+b)=1,計算出每個向量(x_s,y_s)對應的b_s^*,計算出這些b_s^*=y_s-\sum_{i=1}^{n}\alpha_iy_ix_i^Tx_s,所有的b_s^*對應的平均值即爲最終的b^*=\frac{1}{S}\sum_{i=1}^{S}b_s^*

     5)得到最終的分類超平面爲:w^*x+b^*=0,最終的分類決策函數爲:f(x)=sign(w^*x+b^*)


   下一節會繼續介紹線性不可分的SVM模型以核函數。                                              

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章