【機器學習】SVM核函數的計算

【機器學習】推導支持向量機SVM二分類中,我們已經推導出線性核SVM的對偶優化問題:

J=iαi12ijαiαjdidjk(xi)Tk(xj)=iαi12ijαiαjdidjK(xi,xj)subject to αidi=0,0αiC

在優化好αi 拉格朗日量後,我們得到的w和b爲:
w=αidixib=(y1+y1)/2
需要注意的是,w 的表達式中有xi
  我們引入核函數K(xi,xj) 到SVM,必須注意到K(xi,xj)=ϕ(xi)Tϕ(xj) ,也就是說理論上核函數應該能拆開。在引入核函數的前提下,w的表達式爲
w=αidiϕ(xi)T

  我們已知幾個常用核函數,比如多項式核函數和徑向基核函數。多項式核函數的的定義爲
K(xi,xj)=(xTixj+1)n
假設n=2,那麼拆開爲
K(xi,xj)=(xTi)2x2j+2xixj+1=[(xTi)2,2xTi,1][(xTj)2,2xTj,1]T
這裏,我們可以確實求出w的值。
  徑向基核函數定義爲
K(xi,xj)=e(xixj)2σ2=ex2iσ2ex2jσ2exTixjσ2=ex2iσ2ex2jσ2k=0(2xTixj/σ2)kk!=[ex2iσ2,1,21xiσ,222!(xiσ)2,...][ex2jσ2,1,21xjσ,222!(xjσ)2,...]T
結果表明,Φ(x) 函數是一個無限維度的函數。這說明,在工程上我們不一定能夠完美地拆開核函數爲K(xi,xj)=ϕ(xi)Tϕ(xj) 。之後還有很多各種類型的核函數,比如使用了tanh函數的核函數,這些核函數在工程上是很難拆分求解的,很難獲取ϕ(x) 函數,亦難以求取w的確切值。
  那麼如何求解引入複雜核函數的SVM呢?在優化求解J之後,我們可以獲取並保存αi 。由於SVM只有少量支持向量(數據)對決策超平面有決定作用,很多拉格朗日參數αi0 ,我們可以只保存足夠大的αi 以及對應的訓練數據xi 、標記di ,不直接計算出w的確切值,這在工程上是確實可行的。
  當我們需要進行預測的時候,我們導入αi ,xidi ,然後把新數據x代入核函數,計算y=iαidiK(xi,x)+b 即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章