機器學習中常用的核函數

在機器學習中常用的核函數,一般有這麼幾類,也就是LibSVM中自帶的這幾類:
1) 線性:K(v_1,v_2)=<v_1,v_2>
2) 多項式:K(v_1,v_2)=(\gamma<v_1,v_2>+c)^n
3) Radial basis function:K(v_1,v_2)=\exp(-\gamma||v_1-v_2||^2)
4) Sigmoid:K(v_1,v_2)=\tanh(\gamma<v_1,v_2>+c)

舉例:有一個一維的數據分佈是如下圖的樣子,用一個直線來分開,發現不論畫在哪,比如綠色豎線,都不可能把兩個類分開。

使用一個簡單的升維的方法,把原來一維的空間投射到二維中,x->(x, x^2)。
0->(0,0) 
1->(1,1)
2->(2,4)

 


舉例2 多項式核函數中\gamma=1, c=0, n=2的情況。

下面這張圖位於第一、二象限內。我們關注紅色的門,以及“北京四合院”這幾個字下面的紫色的字母。我們把紅色的門上的點看成是“+”數據,紫色字母上的點看成是“-”數據,它們的橫、縱座標是兩個特徵。顯然,在這個二維空間內,“+”“-”兩類數據不是線性可分的。

 

我們現在考慮核函數K(v_1,v_2) = <v_1,v_2>^2,即“內積平方”。
這裏面v_1=(x_1,y_1), v_2=(x_2,y_2)是二維空間中的兩個點。

這個核函數對應着一個二維空間到三維空間的映射,它的表達式是:
P(x,y)=(x^2,\sqrt{2}xy,y^2)
可以驗證,
\begin{align} <P(v_1),P(v_2)> &= \, <(x_1^2,\sqrt{2}x_1y_1,y_1^2),(x_2^2,\sqrt{2}x_2y_2,y_2^2)> \\ &= \, x_1^2x_2^2 + 2x_1x_2y_1y_2+y_1^2y_2^2 \\ &= \, (x_1x_2 + y_1y_2)^2 \\ &= \, \, <v_1,v_2>^2 \\ &= \, K(v_1,v_2) \end{align}

在P這個映射下,原來二維空間中的圖在三維空間中的像是這個樣子:

(前後軸爲x軸,左右軸爲y軸,上下軸爲z軸)

注意到綠色的平面可以完美地分割紅色和紫色,也就是說,兩類數據在三維空間中變成線性可分的了。

參考鏈接:https://www.zhihu.com/question/24627666

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章