1. 程式人生 > >SVM中的核函式

SVM中的核函式

1 核函式本質

​核函式的本質可以概括為如下三點:

1)實際應用中,常常遇到線性不可分的情況​。針對這種情況,常用做法是把樣例特徵對映到高維空間中,轉化為線性可分問題。

2)將樣例特徵對映到高維空間,可能會遇到維度過高的問題​。

3)針對可能的維災難,可以利用核函式。核函式也是將特徵從低維到高維的轉換,但避免了直接進行高維空間中的複雜計算,​可以在低維上進行計算,卻能在實質上將分類效果表現在高維上。

當然,SVM也能處理線性可分問題,這時使用的就是線性核了。​

常用的核函式包括如下幾個:​線性核函式,多項式核函式,RBF核函式(高斯核),Sigmoid核函式

2 線性核

2.1 線性核

​SVM肯定是可以處理線性問題的,這個就是斯坦福課程裡講SVM時候,最開始講解的部分,以線性問題入手進行講解。

線性核計算為​k(x1,x2)=,其實就是在原始空間中的內積。

2.2 線性SVM和邏輯迴歸

當SVM使用線性核時,在處理分類問題時,和邏輯迴歸​比較有哪些異同,如何選擇?

1)線性核SVM和邏輯迴歸本質上沒有區別

2)n=特徵數,m=訓練樣本數目

如果n相對m比較大,使用邏輯迴歸或者線性SVM,例如n=10000,m=10-1000

如果n​比較小,m數值適中,使用高斯核的SVM,例如n=1-1000,m=10-10000

如果n比較小,m很大,構建更多特徵,然後使用邏輯迴歸或者線性SVM​

3 非線性核

常用的非線性核包括多項式核,RBF核(高斯核),sigmoid核。

​RBF核通常是首選,實踐中往往能表現出良好的效能。計算方法如下:

​其中,如果σ選得很大的話,高次特徵上的權重實際上衰減得非常快,所以實際上(數值上近似一下)相當於一個低維的子空間;反過來,如果σ選得很小,則可以將任意的資料對映為線性可分——當然,這並不一定是好事,因為隨之而來的可能是非常嚴重的過擬合問題。不過,總的來說,通過調控引數,高斯核實際上具有相當高的靈活性,也是使用最廣泛的核函式之一。

​多項式核計算方法如下:

​sigmoid核函式計算方法如下:

採用Sigmoid函式作為核函式時,支援向量機實現的就是一種多層感知器神經網路,應用SVM方法,隱含層節點數目(它確定神經網路的結構)、隱含層節點對輸入節點的權值都是在設計(訓練)的過程中自動確定的。而且支援向量機的理論基礎決定了它最終求得的是全域性最優值而不是區域性最小值,也保證了它對於未知樣本的良好泛化能力而不會出現過學習現象。

4 如何選擇

1)可以利用專家先驗知識餘弦選定核函式,例如已經知道問題是線性可分的,就可以使用線性核,不必選用非線性核

2)利用交叉驗證,試用不同的核函式,誤差最小的即為效果最好的核函式

3)混合核函式方法,​將不同的核函式結合起來

​我覺得問題是線性可分和線性不可分其中之一,那在選擇核函式的時候,如果不清楚問題屬於哪一類,就兩類核都嘗試一下,所以可以主要嘗試線性核以及RBF核。

1) Linear核:主要用於線性可分的情形。引數少,速度快,對於一般資料,分類效果已經很理想了。

2) RBF核:主要用於線性不可分的情形。引數多,分類結果非常依賴於引數。有很多人是通過訓練資料的交叉驗證來尋找合適的引數,不過這個過程比較耗時。

至於到底該採用哪種核,要根據具體問題,有的資料是線性可分的,有的不可分,需要多嘗試不同核不同引數。如果特徵的提取的好,包含的資訊量足夠大,很多問題都是線性可分的。當然,如果有足夠的時間去尋找RBF核引數,應該能達到更好的效果。

沒有一種黃金規則可以確定哪種核函式將推匯出最準確的SVM,在實踐中,核函式的選擇一般並不導致準確率的很大差別。SVM總是發現全域性解,而不是區域性解。​

5 其他

SVM的複雜度主要由支援向量數刻畫,而不是資料的維度,因此相比其他方法,SVM不太容易過擬合​。