支持向量機(Support Vector Machine,簡稱 SVM)是 1998 年以統計理論 為基礎所提出的機器學習理論[44]。它不像是傳統的類神經網路方法是基 於經驗風險最小化(Empirical Risk Minimization Principle, ERM)而是一種結 構風險最小化原理(Structural Risk Minimization Principle, SRM)的統計學習 理論,用於分類與回歸問題。SRM 使 VC(Vapnik Cherovnenkis)維數的上限 最小化,這使得 SVM 方法比類神經網路的具有更好的泛化能力。這套演 算法可以歸納如下:他是透過核函數的映射,將原本非線性的特徵空間 mapping 到一個高維的核特徵空間中去訓練一個線性學習器。(而且在這個 高維空間中我們並不需要知道資料當中的特徵向量有什麼性質)而由於 Generalisation Theory 而有對偶表示的形式而成為有效率的演算法。而其 中有幾個條件和理論更完善了『支持向量機』的架構。例如 VC 維的理論,
使得有限集合的分析可以拓展到無限假設集的領域。Lagrange 理論則可以
將學習問題轉化成沒有不等式約束的最佳化問題。再經由 Kuhn-Tucker 條 件的補充,將這個方法進一步推廣到具有不等式條件亦可使用。而 Mercer 條件使得對應的最優化問題變成一個沒有局部最小值的凸二次函數問
Support vector
Margin
Optimal Hyper-plane
X2
而 由 於 要 決 定 支 持 向 量 機 的 最佳 分 類 面 ( optimal separating hyperplane),所以會有權重向量 weight vector 和一個偏移值 bias 分別表示 為
w
ur 為最小,根據 Lagrange 理論(引入 Lagrange 乘子
Lagrange multiplier
α
i,和 Lagrange 函數Ld( )
α 和 Kuhn-Tucker 條件的補充 便稱為支持向量(Support Vector),經由 Training 便可以得出 Lagrange 乘子 與偏移值。而若是輸入資料的噪擾很高(high noise level)則必須增加一個參數,稱 為間隔鬆弛變量(Margin Slack Variable)ξi i=1, 2,...,N,來調整其誤差值能 parameter),所以 Lagrange 函數成為:
( ) ( )
而求解 Lagrange 函數(Lagrangian)Ld
( )
α 之最大值就可以得到最佳分 類面(optimal separating hyperplane)。但是由於輸入的資料在原本的空間中 是呈現非線性分佈的,所以此時必須透過核函數(kernel functions)將輸入資 料映射到一個高維度的線性空間,然後再來求取最佳化平面的最佳化參數 值。而這些核函數比較著名的如公式 4-6~9:
Linear:K x x
(
uur uuri, j)
=uur uurx xi⋅ j (公式 4-6)Polynomial:K x x
(
uur uuri, j) (
= γuur uurx xi⋅ j+coef)
d (公式 4-7)RBF:K x x
(
uur uuri, j)
=exp−γ(
uurxi−uurxj)
2 (公式 4-8)Sigmoid:K x x
(
uur uuri, j)
=tanh(
γuur uurx xi⋅ j +coef)
(公式 4-9)其中的 d、γ 與 coef 皆為常數參數值。
SVM 理論只考慮高維特徵空間的內積運算K x x
(
uur uuri, j)
= Φ( ) ( )
uurxi ⋅ Φ uurxj ,而不直接使用函數Φ,從而巧妙地解決了因Φ未知而 W 無法顯示表達的問 題,稱K x x
(
uur uuri, j)
為核函數,已經証明,只要滿足 Mercer 條件的對稱函數即 可作為核函數。對於兩類問題分類,存在線性可分和線性不可分兩種支持向量機,但 是在實際中,為了將兩類模式儘可能分類開來,一般要構造非線性可分的 支持向量機。一個複雜的模式識別分類問題,在高維空間比低維空間更容 易線性可分。支持向量機就是首先透過核函數把訓練樣本中的低維數據映 射到高維特徵空間,然後在高維特徵空間構造一個最佳分類平面。由於構 造的核函數滿足 Mercer 條件,所以在訓練中只需考慮核函數 K,而不必明 確知道低維向高維的映射函數Φ。
一個二元函數 K(x,y)通常稱為是一個核函數(簡稱核),給定 K(x,y),若
Mercer 核函數很多,如徑向基函數核,雙曲正切函數核等。由已知的 Mercer 核經過某些運算可以生成新的 Mercer 核,特別是由內積定義的核 函數必是 Mercer 核:
(
i, j) ( ) ( )
i jK x x = Φ x ⋅ Φ x uur uur uur uur
(公式 4-11)
在特徵空間 F 中應用線性支持向量機的方法,分類決策函數式變為:
範例一:Polynomial 展開
( ) ( )
範例二:RBF 展開
而實際上我們所應用到的Training演算法為Sequential Minimization Optimization (SMO)[22],以下是SMO演算法的簡介。
i
0 0 ( ) 1 0,
推導出疊代條件後,我們開始尋找違反對(Violating Pair),亦即不符合 上述疊代條件的α。因此我們可以將公式4-17改寫成公式4-21
,
subject to
,