標籤:

線性支持向量機(soft-margin SVM)

在理解了上一篇的線性可分支持向量機後,這一篇很好理解,只不過多了幾個概念,正好論述的同時還可以再理解和整理一下svm的求解思路。

我們一般的訓練樣本,很少出現線性可分的情況,總有少部分的噪音點,而將這些噪音點除去後,餘下的樣本則線性可分。

線性不可分意味著某些樣本點不能滿足函數間隔(不是幾何間隔)大於等於1的約束條件,所以我們對每個樣本 (x_i,y_i) 點引入一個鬆弛變數 xi_igeq 0 ,使得函數間隔加上鬆弛變數之後大於等於1,於是約束條件變為: y_i(wx_i+b)+xi_igeq 1\Rightarrow y_i(wx_i+b)geq 1-xi_i

同時每個鬆弛變數需要在目標函數上支付一個代價 xi_i ,則目標函數變為: frac{1}{2}|w|^2+Csum_{i=1}^{N}{xi_i}

C>0稱為懲罰參數,由不同業務決定,當成常數。目標函數的意義是:1、使每個點的間隔最大化,2、所有的鬆弛變數和最小,C調和二者的權重。大C表示不惜選擇窄邊界也要儘可能把更多點正確分類;小C表示希望得到更寬的邊界,即不惜增加錯誤點個數也要選擇更寬的分類邊界。

綜上,我們可以得到線性不可分的線性支持向量機的原始問題: min_{w,b}frac{1}{2}|w|^2+Csum_{i=1}^{N}{xi_i} \ s.t.quad y_i(wx_i+b)geq 1-xi_iquad i=1,2..N\xi_igeq 0quad i=1,2..N

對偶問題

原始問題的拉格朗日函數為:

對偶問題是拉格朗日函數的極大極小問題,極小問題中 w,b,xi 沒有限制條件

令拉格朗日函數在 w,b,xi 處的偏導數值為0,可以得到: w=sum_{i=1}^{N}{alpha_iy_ix_i}\ sum_{i=1}^{N}{alpha_iy_i}=0\ C-alpha_i-mu_i=0

將上式代入拉格朗日函數有:

min_{w,b,xi}L(w,b,xi,alpha,mu)=-frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}{alpha_ialpha_j y_iy_j(x_ix_j)}+sum_{i=1}^{N}{alpha_i}

則對偶問題為:

max_alpha -frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}{alpha_ialpha_j y_iy_j(x_ix_j)}+sum_{i=1}^{N}{alpha_i}\ s.t.quad sum_{i=1}^{N}{alpha_iy_i}=0\ C-alpha_i-mu_i=0\ alpha_igeq 0\ mu_igeq 0 quad i=1,2..N

再優化一下對偶問題(消去 mu ,max轉min),我們就得到最終對偶問題: min_alpha frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}{alpha_ialpha_j y_iy_j(x_ix_j)}+sum_{i=1}^{N}{alpha_i}\ s.t.quad sum_{i=1}^{N}{alpha_iy_i}=0\ 0leqalpha_ileq C quad i=1,2...N

求解 alpha,w,b

原始問題是凸二次規劃問題,滿足KKT條件,我們即有: w^*-sum_{i=1}^{N}{alpha^*_iy_ix_i}=0\ alpha^*_i(y_i(w^*x_i+b^*)-1+xi^*_i)=0\ mu^*_ixi^*_i=0Leftrightarrow(C-alpha^*_i)xi^*_i=0

求得對偶問題的解 alpha^* 後,我們找一個分量 alpha^*_j ,此分量範圍是 0<alpha^*_j<C ,那我們就可以得出w和b的解:

w^*=sum_{i=1}^{N}{alpha^*_iy_ix_i}\ b^*=y_j-sum_{i=1}^{N}{y_ialpha^*_i(x_ix_j)}

注意: 任何一個 0<alpha^*_j<C 都可以求出一個b,所以原始問題對b的解並不一定唯一。

線性支持向量機的支持向量

只要在兩個邊界中間的樣本點,都屬於支持向量

  • 落在邊界上: alpha^*_i<C,xi_i=0
  • 落在區間內並分類正確: alpha^*_i=C,0<xi_i<1
  • 落在區間內並分類錯誤: alpha^*_i=C,xi_i>1
  • 落在超平面上: alpha^*_i=C,xi_i=1

合頁損失函數(暫)

既然都看到這兒了,少年點個贊可好?感謝!

done 2017年11月24日15:53:11


推薦閱讀:

第七周筆記:支持向量機SVM
機器學習演算法實踐-SVM核函數和軟間隔
支持向量機中的函數距離和幾何距離怎麼理解?
想研究下SVM,有什麼好的文章或者經驗之談可以分享下不?
為什麼支持向量機要用拉格朗日對偶演算法來解最大化間隔問題?

TAG:機器學習 | SVM |