支持向量機是建立在統計學習理論基礎之上的新一代機器學習算法,支持向量機的優勢主要體現在解決線性不可分問題,他通過引入和函數,巧妙地解決了在高維空間中的內積運算,從而很好的解決了非線性分類問題。
構造出一個具有良好性能的SVM,核函數的選擇是關鍵,核函數的選擇包括兩部分工作:一是核函數類型的選擇,二是確定核函數類型後相關參數的選擇。因此如何根據具體的數據選擇恰當的核函數是SVM應用領域遇到的一個重大難題,也成爲科研工作者所關注的焦點,即便如此,卻依然沒有得到具體的理論或方法來指導核函數的選取。
1、經常使用的核函數
核函數的定義並不困難,根據泛函的有關理論,只要一種函數K(xi,yi)滿足Mercer條件,他就對應某一變換空間的內積。對於判斷哪些函數是核函數到目前爲止也取得了重要的突破,得到Mercer定理和一下常用的核函數類型:
(1)線性核函數
K ( x , x i ) = x ⋅ x i
(2)多項式核函數
K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d
(3)徑向基核(RBF)
K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 )
Gauss徑向基函數則是局部性強的核函數,其外推能力隨着參數σ的增大而減弱。多項式形式的核函數具有良好的全局性質。局部性較差。
(4)傅里葉核
K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 )
(5)樣條核
K ( x , x i ) = B 2 n + 1 ( x − x i )
(6)Sigmoid核函數
K ( x , x i ) = tanh ( κ ( x , x i ) − δ )
採用Sigmoid函數作爲核函數時,支持向量機實現的就是一種多層感知器神經網路,應用SVM方法,隱含層節點數目(他確定神經網絡的結構)、隱含層節點對輸入節點的權值都是在設計(訓練)的過程中自動確定的。而且支持向量機的理論基礎決定了它最終求得的是全局最優值而不是局部最小值,也保證了他對於未知樣本的良好的泛化性能而不會出現過學習現象。
2、核函數的選擇
在選取核函數解決實際問題的時候,通常採用的方法有:一是利用專家的先驗知識預先選定核函數;二是採用Cross-Validation方法,即在進行核函數選取的時候,分別使用不同的核函數,歸納誤差最小的核函數就是最好的核函數,如針對傅里葉核、RBF核,結合信號處理問題中的函數迴歸問題,通過仿真實驗,對比分析了在相同數據條件下,採用傅里葉核的SVM要比採用RBF核的SVM誤差小很多。三是採用有Smits等人提出的混合核函數方法,該方法較之前兩者是目前選取核函數的主流方法,也是關於如何構造核函數的又一開創性的工作,將不同的核函數結合起來後會有更好的特性,這是混合核函數方法的基本思想。