機器學習中的特徵變換(核函數)

在機器學習中,我們提供的數據不一定都是完全線性可分的,很多情況下會存在線性不可分,可是我們需要處理成線性可分,所以我們可以採用特徵變換或者核函數的形式,把數據投影到別的空間。數據在A空間不可分,投影到B空間就可能會線性可分,B空間的維度一般會高於A空間的維度。

1.一般情況下,我們考慮將數據投影到別的空間,比如採用多項式。假設x的維度d,如果投影到別的空間,維度會急劇增大,造成維度災難。維度比較高,在求解過程中就會存在問題,比如你在求解SVM的時候,存在不同元素之間的內積,如果投影過去變成10000維,那麼計算內積就要10000次,在繼續增大的話可能導致無法計算。使得計算效率十分低下。很多情況下無法計算。

2.爲了解決上面的這個問題,我們採用的思路不是先投影,而是把投影和內積和在一起計算,稱爲kernel function(核函數)。計算核函數來替代其他的計算。

以下是幾種常用的核函數表示:

線性核(Linear Kernel)


多項式核(Polynomial Kernel)


徑向基核函數(Radial Basis Function)

也叫高斯核(Gaussian Kernel),因爲可以看成如下核函數的領一個種形式:

徑向基函數是指取值僅僅依賴於特定點距離的實值函數,也就是。任意一個滿足特性的函數 Φ都叫做徑向量函數,標準的一般使用歐氏距離,儘管其他距離函數也是可以的。所以另外兩個比較常用的核函數,冪指數核,拉普拉斯核也屬於徑向基核函數。此外不太常用的徑向基核還有ANOVA核,二次有理核,多元二次核,逆多元二次核。
注意:高斯核函數的變換是無限維的,因爲你用泰勒展開就可以知道。
冪指數核(Exponential Kernel)
 
拉普拉斯核(Laplacian Kernel)
 
ANOVA核(ANOVA Kernel)
 
二次有理核(Rational Quadratic Kernel)
 
多元二次核(Multiquadric Kernel)
 
逆多元二次核(Inverse Multiquadric Kernel)
 
另外一個簡單實用的是Sigmoid核(Sigmoid Kernel)
 
以上幾種是比較常用的,大部分在SVM,SVM-light以及RankSVM中可用參數直接設置。還有其他一些不常用的,如小波核,貝葉斯核,可以需要通過代碼自己指定。(引用:http://blog.csdn.net/qq_27231343/article/details/51817866)
不同kernel function的對比:
線性:簡單,安全,首先嚐試.求解速度快速.線性的好處很容易看出機器如何分類的,並且也知道權重,也可以輕易的計算出支持向量.不過是有限的.
多項式:比線性寬鬆,比線性的限制少,可以解決的問題更多一點,線性沒法解決的這個可以解決.不過計算核函數的值比較難計算,一個數字的n次方會比較難計算,求解二次規劃會有難度.還有就是超參數有點多,比較難選擇.所以這個一般用的時候就是次方比較小的時候.
高斯核函數:就是限制更少,維度是無限維度,可以做出複雜的邊界,數值計算的困難度低一點,超參數只有一個,也稍微簡單點,無法計算出w,需要利用核函數計算結果.求解對偶問題時候比線性慢.參數沒選好會有過擬合的可能性.小心使用,參數選擇小心.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章