支持向量機概述

支持向量機概述

支持向量機(support vector machinc,SVM)是在高維特徵空間使用線性函數假設空間的學習系統,在分類方面具有良好的性能。在自然語言處理中,SVM廣泛應用於短語識別、詞義消歧、文本自動分類和信息過濾等方面。

線性分類

二分類問題通常用實數函數f:XRnRf : X \subseteq \R^{n} \rightarrow \Rnn爲輸入維數)判別:當f(x)0f(\mathbf{x}) \geq 0時,將輸入x=(x1,x2,,xn)T\mathbf{x} = (x_{1}, x_{2}, \dots, x_{n})^{\text{T}}判爲正類;否則,爲負類。當f(x)f(\mathbf{x})xX\mathbf{x} \in X)是線性函數時,f(x)f(\mathbf{x})可寫成如下形式:

f(x)=w,x+b=i=1nwixi+b(1)f(\mathbf{x}) = \langle \mathbf{w}, \mathbf{x} \rangle + b = \sum_{i = 1}^{n} w_{i} x_{i} + b \tag {1}

其中,(w,b)Rn×R(\mathbf{w}, b) \in \R^{n} \times \R是控制函數的參數,決策規則由符號函數sgn(f(x))\text{sgn}(f(\mathbf{x}))給出,通常sgn(0)=1\text{sgn}(0) = 1。參數學習意味着要從訓練數據中獲得這此參數。

該分類方法的幾何解釋是:方程w,x+b=0\langle \mathbf{w}, \mathbf{x} \rangle + b = 0定義的超平面將輸入空間XX分成兩半,一半爲負類,一半爲正類,

在這裏插入圖片描述

圖中黑斜線表示超平面,對應地,超平面上面爲正區域,用符號+表示,下面爲負區域,用符號-表示。w\mathbf{w}是超平面的法線方向。當bb的值變化時,超平面平行移動。因此,如果要表達Rn\R^{n}中所有可能的超平面,一般要包括n+1n + 1個可調參數的表達式。

如果訓練數據線性,則以最大間隔分開數據的超平面稱爲最優超平面,

在這裏插入圖片描述

對於多類分類問題,輸出域是Y={1,2,,m}Y = \{ 1, 2, \dots, m \},線性學習器推廣到mmmN,m2m \in N, m \geq 2)類問題:對於mm類中的每一類關聯一個權重向量wi\mathbf{w}_{i}和偏置bib_{i},即(wi,bi)(\mathbf{w}_{i}, b_{i})i{1,2,,m}i \in \{1, 2, \dots, m\},定義決策函數:

c(x)=arg max1imwi,x+bi(2)c(\mathbf{x}) = \argmax_{1 \leq i \leq m} \langle \mathbf{w}_{i}, \mathbf{x} \rangle + b_{i} \tag {2}

其幾何意義是:給每個類關聯一個超平面,然後將新點x\mathbf{x}賦予超平面離其最遠的那一類。輸入空間被劃分爲mm個簡單相連的凸區域。

P.S.:方程(2-44)相當於one-verse-rest方式。

線性不可分

對於非線性問題,可以把樣本x\mathbf{x}映射到某個高維特徵空間,在高維特徵空間中使用線性學習器。因此,假設集是如下類型函數:

f(x)=w,φ(x)+b(3)f(\mathbf{x}) = \langle \mathbf{w}, \varphi(\mathbf{x}) \rangle + b \tag {3}

其中,φ:XF\varphi: X \rightarrow F表示從輸人空間XX到特徵空間FF的映射。即建立非線性分類器分爲兩步:首先使用一個非線性映射函數將數據變換到一個特徵空間FF,然後在這個特徵空間上使用線性分類器。

線性分類器的一個重要性質是可以表示成對偶形式,這意味着假設可以表達爲訓練點的線性組合。 因此,決策規則(分類函數)可以用測試點和訓練點的內積來表示:

f(x)=i=1lαiyiφ(xi),φ(x)+b(4)f(\mathbf{x}) = \sum_{i = 1}^{l} \alpha_{i} y_{i} \langle \varphi(\mathbf{x}_i), \varphi(\mathbf{x}) \rangle + b \tag {4}

其中,ll是樣本數目;αi\alpha_{i}爲正值導數,可通過學習獲得;yiy_{i}爲樣本ii的類別標籤。如果有一種方法可以在特徵空間中直接計算內積φ(xi),φ(x)\langle \varphi(\mathbf{x}_i), \varphi(\mathbf{x}) \rangle,就像在原始輸入點的函數中一樣,則有可能將兩個步驟融合到一起,建立一個非線性分類器。在高維空間中實際上只需要進行內積運算,而這種內積運算是可以利用原空間中的函數實現的,我們甚至沒有必要知道變換的形式。這種直接計算的方法稱爲核(kernel)函數方法。

構造核函數

定義:核是一個函數KK,對所有x,zX\mathbf{x}, \mathbf{z} \in X,滿足

K(x,z)=φ(x),φ(z)(5)K(\mathbf{x}, \mathbf{z}) = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle \tag {5}

其中,φ\varphi表示從輸入空間XX到特徵空間FF的映射。有了核函數,決策規則就可以通過對核函數的ll次計算得到:

f(x)=i=1lαiyiK(xi,x)+b(6)f(\mathbf{x}) = \sum_{i = 1}^{l} \alpha_{i} y_{i} K(\mathbf{x}_{i}, \mathbf{x}) + b \tag {6}

這種方法的關鍵是如何找到一個可以高效計算的核函數。

爲適合某個特徵空間,核函數必須是對稱的,即

K(x,z)=φ(x),φ(z)=φ(z),φ(x)=K(z,x)(7)K(\mathbf{x}, \mathbf{z}) = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle = \langle \varphi(\mathbf{z}), \varphi(\mathbf{x}) \rangle = K(\mathbf{z}, \mathbf{x}) \tag {7}

並且滿足柯西不等式:

K2(x,z)=φ(x),φ(z)2φ(x)2φ(z)2=φ(x),φ(x)2φ(z),φ(z)2=K2(x,x)K2(z,z)(8)\begin{aligned} K^{2}(\mathbf{x}, \mathbf{z}) & = \langle \varphi(\mathbf{x}), \varphi(\mathbf{z}) \rangle^{2} \\ & \leq \| \varphi(\mathbf{x})\|^{2} \| \varphi(\mathbf{z}) \|^{2} \\ & = \langle \varphi(\mathbf{x}), \varphi(\mathbf{x}) \rangle^{2} \langle \varphi(\mathbf{z}), \varphi(\mathbf{z}) \rangle^{2} \\ & = K^{2}(\mathbf{x}, \mathbf{x}) K^{2}(\mathbf{z}, \mathbf{z}) \end{aligned} \tag {8}

其中,\| \cdot \|表示歐氏模函數。但這些條件對於保證特徵空間的存在是不充分的,還必須滿足Mercer定理的條件:對XX的任意有限子集,相應的矩陣是半正定的。即令XX是有限輸入空間,K(x,z)K(\mathbf{x}, \mathbf{z})XX上的對稱函數,則K(x,z)K(\mathbf{x}, \mathbf{z})是核函數的充分必要條件爲矩陣

K=(K(xi,xj))i,j=1n(9)\mathbf{K} = \left( K(\mathbf{x}_{i}, \mathbf{x}_{j}) \right)_{i, j = 1}^{n} \tag {9}

是半正定的(即特徵值非負)。

根據泛函的有關理論,只要一種核函數滿足Mercer條件,它就對應某一空間中的內積。

支持向量機中常用的核函數主要有:多項式核函數、徑向基函數、多層感知機、動態核函數等。

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