支持向量機(三)——深入理解核函數,軟間隔SVM

本章我們來介紹一下對核函數的理解。在先講核函數之前,我們先來看一下非線性分類問題。

1.非線性分類問題

簡要概述之前我們講到的都是可以直接通過一條直線將樣本分成兩類,現在的問題是數據樣本無法用一條直線線性區分正負樣本,如圖所示:

這裏寫圖片描述
但是我們可以用一條橢圓曲線來將他們正確區分,如圖:
這裏寫圖片描述
我們可以發現,非線性問題往往不好求解,所以我們希望能用線性問題來解決。採取的方法是進行一個非線性變換,即將非線性問題變換爲線性問題,通過解變換後的線性問題來間接求解原來的非線性問題。如下圖所示,左邊的線性不可分問題轉換到高維空間中就變成了線性可分的問題。
這裏寫圖片描述
假設我們要變換到的空間爲Z,原空間爲χ ,那麼從原空間到新空間的變換(映射):Z=Φ(χ) ,則原空間中的點相對應地變換到新空間中,原空間中的橢圓就可以變換成新空間中的直線。因此非線性分類問題的解決方法爲首先將原空間的特徵映射到新空間中;然後用線性分類方法從訓練數據中學習到分類模型。因此支持向量機中核函數就有此作用。

2.核函數

2.1核函數定義

例如在Ng之前將線性迴歸的篇幅中,有一個預測房價的問題,輸入x是房子的面積,假設我們用三次函數擬合數據,這是一個非線性的問題,用ϕ 表示特徵映射,會得到:

ϕ(x)=[xx2x3]

我們希望用ϕ 即特徵映射後的特徵來應用於SVM分類,爲什麼要用映射後的特徵而不是最初的特徵,原因是1.希望用更過的特徵來更好的擬合。2.樣例中如果有線性不可分的情況,將特徵映射到高維空間後,往往就可分了。
我們來看看核函數的定義(參考李航《統計學習方法》中的定義):
這裏寫圖片描述
由定義中我們可以看到核函數爲另外兩個函數的內積,如果按照先求映射函數Φ(χ) ,然後計算Φ(χ)Φ(z) ,這樣的計算效率非常低。例如最初的特徵是n維的,我們將其映射到n2 ,然後再計算,需要O(n2) 的時間。因此,核函數的想法是,在學習與預測中值定義核函數K(x,z),而不顯示地定義映射函數。因爲通常計算K(x,z)比較容易。ϕ 是輸入空間到特徵空間的映射,特徵空間一般是高維的,甚至是無限維。
來看一個例子假設x,z∈R,K(x,z)=(xTz)2 ,即:
這裏寫圖片描述
我們可以發現,只用計算原始特徵x和z的內積的平方,時間複雜度僅爲O(n),時間更短了,這就是核函數的優勢。假設n=3時,根據上面公式可得到:
這裏寫圖片描述

2.2核函數的表示形式

核函數通常的表達形式爲K(x,z)=(xTz+c)2 ,對應的映射後特徵維度爲[n+dn] ,(個人也不能理解)
此外還有另外一種核函數的表達方式:K(x,z)=exp(||xz||22σ2) 這種表達方式考慮x和z的相似性,如果x和z很相近,即分子接近0,那麼核函數值接近1,如果x和z相差很遠,那麼核函數約等於0。這個形式類似高斯分佈,因此稱爲高斯核函數,也就做徑向基函數(RBF)。它能夠把原始特徵映射到無窮維。
所以說當我們遇到一個新的機器學習問題,如果我們希望學習算法認爲x和z是相似的,那麼我們可以使K(x,z) 取一個較大的值;如果我們希望學習算法認爲x和z不一樣,那麼我們可以使K(x,z) 取一個較小的值(注意:K(x,z) 是內積,大於0)。
當然核函數還有其他的表現形式,那麼如何判定一個選擇的核函數是否有效呢?

2.3核函數有效性判定

我們通常假設K是一個合理的核函數,考慮對於一個有限集m=x(1),...,x(m) ,再定義一個mm 的矩陣K使得Ki,j=K(x(i),x(j)) ,將K叫做核矩陣。則有:

這裏寫圖片描述
可以發現矩陣K應該是個對稱陣。讓我們繼續遐想一下,根據是對稱陣這個形式,我們用ϕk(x) 表示ϕ(x) 的第k個元素,這時對於任意一個m維向量z:
這裏寫圖片描述
從這個推導結果可以看出來,如果K是一個有效的核函數,那麼zTKz0 ,即在訓練集上得到的核函數矩陣應該是半正定的(K0 ),因此我們得出了這樣一個判定核函數有效的方法—即核函數矩陣K是半正定的,這是一個必要條件,但根據Mercer定理我們也可以判斷它是一個充分條件。

3.軟間隔SVM

注意,我們之前討論的都是建立在樣例線性可分的假設下,當樣例線性不可分時,我們可以嘗試使用核函數將原始特徵映射到更高維度的新空間中,再將它線性劃分。但是,如果映射後的特徵我們也不能保證100%可分,那怎麼辦呢?這就需要我們將模型調整,保證在不可分的情況下,我們也能找到分割超平面。
先看這張圖:

這裏寫圖片描述
在圖中我們發現一個離羣點(壞湯的老鼠)造成了超平面的移動,間隔縮小了,可以看到模型對噪聲非常敏感。如果這個離羣點在另外一個類中時,那我們的模型就線性不可分了。
這時候我們就要給原來的模型加一些條件,即允許這些個別離羣點違背限制條件(函數間隔大於),設計的新模型如圖:
這裏寫圖片描述
該模型稱爲軟間隔,引入的非負參數ξi (鬆弛變量),引入了這個參數後,可以發現允許一些樣本點的函數間隔小於1,即在最大間隔區間內,或者函數間隔爲負,即樣本點在另一個類的區域內。
平白無故的放寬了條件,總是要討回一點債的。因此我們將目標函數進行了調整,用來對離羣點進行懲罰,目標函數後面加上的Ci=1mξi ,表示離羣點越多,目標函數值越大,而我們要求的是儘可能小的目標函數值,也就是說我在選擇超平面時,要選擇最合適的超平面使離羣點的數目最小,這樣目標函數的值就會相對離羣點多的時候更小。C是離羣點的權重,C越大表明離羣點對目標函數影響越大,所以我們不希望超平面分離出更多的離羣點。

這個模型是原始問題,是一個凸優化問題,因而在關於(w,b,ξ )的解釋存在的。可以證明w的解釋唯一的,但b的解不唯一,而是在一個區間。模型修改後,對應的拉格朗日公式爲:
這裏寫圖片描述
這裏的αiγi 分別是拉格朗日乘子,原問題的對偶問題爲d=maxα,β:αi0minwι(ω,b,α) ,下面是《統計學習方法》中的推薦對偶問題的過程,首先求L(w,b,ξ,α,μ)對w,b,ξ極小:
這裏寫圖片描述
將上式入原式得:
這裏寫圖片描述
再對 minL(w,b,ξ,α,μ) 求α的極大,即得對偶問題:
這裏寫圖片描述
將約束函數整理一下得到最後的對偶問題形式:
這裏寫圖片描述
我們發現模型與之前的模型相比多了一個αi 小於C的限制,最後我們來看看KKT條件發生了怎樣的變化:
這裏寫圖片描述
分析一下,在間隔邊界外的點αi=0 ,離羣點前面的係數爲C,只有支持向量αi 不爲0,所以軟間隔的支持向量可在間隔邊界上,或者在間隔邊界與分離超平面之間,或者在分離超平面誤分一側。若αi<C ,由KKT條件知ξi =0,表示支持向量xi 恰好在間隔邊界上;αi=C0<ξi<1 ,則也是分類正確,xi 在間隔邊界和分離超平面之間;若αi=Cξi =1,則xi 在分離超平面上;若αi=Cξi >1,則xi 位於超平面誤分類的一側。

4.總結

下一章我們將會介紹座標上升,並採用SMO優化算法來解決我們一直懸而未解的問題——對偶函數最後的優化問題:

這裏寫圖片描述

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