支持向量機概述
支持向量機(support vector machinc,SVM)是在高維特徵空間使用線性函數假設空間的學習系統,在分類方面具有良好的性能。在自然語言處理中,SVM廣泛應用於短語識別、詞義消歧、文本自動分類和信息過濾等方面。
線性分類
二分類問題通常用實數函數f:X⊆Rn→R(n爲輸入維數)判別:當f(x)≥0時,將輸入x=(x1,x2,…,xn)T判爲正類;否則,爲負類。當f(x)(x∈X)是線性函數時,f(x)可寫成如下形式:
f(x)=⟨w,x⟩+b=i=1∑nwixi+b(1)
其中,(w,b)∈Rn×R是控制函數的參數,決策規則由符號函數sgn(f(x))給出,通常sgn(0)=1。參數學習意味着要從訓練數據中獲得這此參數。
該分類方法的幾何解釋是:方程⟨w,x⟩+b=0定義的超平面將輸入空間X分成兩半,一半爲負類,一半爲正類,
圖中黑斜線表示超平面,對應地,超平面上面爲正區域,用符號+
表示,下面爲負區域,用符號-
表示。w是超平面的法線方向。當b的值變化時,超平面平行移動。因此,如果要表達Rn中所有可能的超平面,一般要包括n+1個可調參數的表達式。
如果訓練數據線性,則以最大間隔分開數據的超平面稱爲最優超平面,
對於多類分類問題,輸出域是Y={1,2,…,m},線性學習器推廣到m(m∈N,m≥2)類問題:對於m類中的每一類關聯一個權重向量wi和偏置bi,即(wi,bi),i∈{1,2,…,m},定義決策函數:
c(x)=1≤i≤margmax⟨wi,x⟩+bi(2)
其幾何意義是:給每個類關聯一個超平面,然後將新點x賦予超平面離其最遠的那一類。輸入空間被劃分爲m個簡單相連的凸區域。
P.S.:方程(2-44)相當於one-verse-rest
方式。
線性不可分
對於非線性問題,可以把樣本x映射到某個高維特徵空間,在高維特徵空間中使用線性學習器。因此,假設集是如下類型函數:
f(x)=⟨w,φ(x)⟩+b(3)
其中,φ:X→F表示從輸人空間X到特徵空間F的映射。即建立非線性分類器分爲兩步:首先使用一個非線性映射函數將數據變換到一個特徵空間F,然後在這個特徵空間上使用線性分類器。
線性分類器的一個重要性質是可以表示成對偶形式,這意味着假設可以表達爲訓練點的線性組合。 因此,決策規則(分類函數)可以用測試點和訓練點的內積來表示:
f(x)=i=1∑lαiyi⟨φ(xi),φ(x)⟩+b(4)
其中,l是樣本數目;αi爲正值導數,可通過學習獲得;yi爲樣本i的類別標籤。如果有一種方法可以在特徵空間中直接計算內積⟨φ(xi),φ(x)⟩,就像在原始輸入點的函數中一樣,則有可能將兩個步驟融合到一起,建立一個非線性分類器。在高維空間中實際上只需要進行內積運算,而這種內積運算是可以利用原空間中的函數實現的,我們甚至沒有必要知道變換的形式。這種直接計算的方法稱爲核(kernel)函數方法。
構造核函數
定義:核是一個函數K,對所有x,z∈X,滿足
K(x,z)=⟨φ(x),φ(z)⟩(5)
其中,φ表示從輸入空間X到特徵空間F的映射。有了核函數,決策規則就可以通過對核函數的l次計算得到:
f(x)=i=1∑lαiyiK(xi,x)+b(6)
這種方法的關鍵是如何找到一個可以高效計算的核函數。
爲適合某個特徵空間,核函數必須是對稱的,即
K(x,z)=⟨φ(x),φ(z)⟩=⟨φ(z),φ(x)⟩=K(z,x)(7)
並且滿足柯西不等式:
K2(x,z)=⟨φ(x),φ(z)⟩2≤∥φ(x)∥2∥φ(z)∥2=⟨φ(x),φ(x)⟩2⟨φ(z),φ(z)⟩2=K2(x,x)K2(z,z)(8)
其中,∥⋅∥表示歐氏模函數。但這些條件對於保證特徵空間的存在是不充分的,還必須滿足Mercer
定理的條件:對X的任意有限子集,相應的矩陣是半正定的。即令X是有限輸入空間,K(x,z)是X上的對稱函數,則K(x,z)是核函數的充分必要條件爲矩陣
K=(K(xi,xj))i,j=1n(9)
是半正定的(即特徵值非負)。
根據泛函的有關理論,只要一種核函數滿足Mercer
條件,它就對應某一空間中的內積。
支持向量機中常用的核函數主要有:多項式核函數、徑向基函數、多層感知機、動態核函數等。