SVM屬於一種前饋神經網絡,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢。對於兩類分類問題,有訓練樣本{(X1,y1),(X2,y2),...,(Xn,yn)},y是分類標記,取值於+1和-1。
a和b都可以作為分類超平面,但最優超平面只有一個,最優分類平面使間隔最大化。
統一起來就是
分離邊緣可表示為,要使分離邊緣最大化,就要使||W0||最小化。於是我們要求解的問題數學表達形式為:
這是個帶約束的最優化問題。目標函數是二次的,約束條件是一次的----二次規划。可以用Lagrange系數法解決此類優化問題。引入Lagrange函數如下
ai是Lagrange系數,非負。上式中第一項為代價函數,第二項為正,於是最小化代價函數轉化為最小化Lagrange函數。分別對W和b求偏導,令導數為0。
把上面結果代回(2)式,得到Lagrange對偶問題,即原來的最小化L(W,b,a)變為最大化Q(a)
要解這個最優化問題,由KKT條件得,最優分類超平面的斜率
最優分類平面的權向量是支持向量的線性組合。這意味着其他非支持向量對分類超平面沒有影響。
松馳變量
在實際問題中總會有少數幾個點越過了分類平面,我們的數學模型應該對這些噪聲數據有一定的容忍性。此時(1)式變為
代價函數變為
雖然加入了松馳變量,但是按照上面的推導方法,最終得出的W0和b0都上面上完全一樣的!
核函數
SVM顯然是線性分類器,但數據如果根本就線性不可分怎么辦?不用着急,數據在原始空間(稱為輸入空間)線性不可分,但是映射到高維空間(稱為特征空間)后很可能就線性可分了。這同時帶來一個問題:在高維空間上求解一個帶約束的優化問題顯然比在低維空間上計算量要大得多,這就是所謂的“維數災難”。於是就引入了“核技巧”。假如X映射到高維空間后是Φ(X),定義核函數:
K(X,Y)=<Φ(X),Φ(Y)>
<,>表示內積運算。我們看到核函數將m維高維空間的內積運算轉化為n維低維輸入空間的核函數計算,從而巧妙地解決了在高維特征空間中計算的“維數災難”等問題,從而為在高維特征空間解決復雜的分類或回歸問題奠定了理論基礎。
常用的核函數可分為兩類,即內積核函數和平移不變核函數,如:
- 多項式核函數
,采用該核函數的支持向量機是一個q階多項式分類器,參數q由用戶決定。
- 高斯核函數
,采用該核函數的支持向量機是一種徑向基函數分類器。
- Sigmoid核函數
,其中tanh是雙曲正切函數,
,采用該核函數的支持向量機是一個單隱層感知器神經網絡。
使用內積核函數在特征空間建立的最優超平面定義為
SVM學習算法的一般步驟
准備一組訓練樣本{(X1,d1),(X2,d2),...,(Xp,dp),...,(XP,dP)}
如果能夠選擇變換函數Φ(這取決於設計者在這方面的知識),就按下面的步驟來。
- 使用變換函數Φ將輸入向量映射到高維特征空間。
- 解下列最優化問題,求出Lagrange系數a0
(加入了松弛變量的) 或
- 計算最優權值
- 對於待分類的模式X,計算分類判別函數
若能夠選擇一個內積函數K(Xp,X),則可避免向高維空間的映射。此時算法步驟為:
- 解下列最優化問題,求出Lagrange系數a0
或
- 計算最優權值
- 對於待分類的模式X,計算分類判別函數
解決像(5)、(6)這樣的最優化問題,一種流行的方法是SMO(Sequential Minimal Optimzation)算法。