什麼是核函式?核函式是特徵轉換函式。這是非常抽象的描述,這一節的內容就是為了理解這個抽象的概念的。
假設我們有乙個非線性分界線的分類問題,有兩個特徵 x1
,x2 ,回顧邏輯回歸演算法裡的知識,我們可以使用多項式來增加特徵,以便描述出非線性分界線。當:θ0
+θ1x
1+θ2
x2+θ
3x1x
2+θ4
x21+
θ5x2
2+..
.>=0
時,我們**出 y=
1 。上述公式只寫了二階多項式,我們可以寫到更高階的多項式來模擬複雜的分界線。我們改寫一下上面的公式:θ0
+θ1f
1+θ2
f2+θ
3f3+
θ4f4
+θ5f
5+..
.>=0
這裡,f1=
x1,f
2=x2
,f3=
x1x2
,f4=
x21,
f5=x
22..
. 。
那麼問題來了,除了多項式外,有沒有更好地途徑把特徵 x1
,x2 對映到特徵 f1
,f2,
f3,f
4,f5
... 呢?
我們在二維座標上選擇三個標記點 l(
i),針對乙個訓練樣例
x ,我們使用相似性函式來定義新的特徵:fi
=sim
ilar
ity(
x,l(
i))=
exp(
−∥x−
l(i)
∥22σ
2)=e
xp⎛⎝
⎜⎜−∑
nj=1
(xj−
l(i)
j)22
σ2⎞⎠
⎟⎟如下圖所示,當我們選擇三個標記點 l(
1),l
(2),
l(3)
時,針對乙個只有兩個特徵的訓練樣例 (x
1,x2
) ,通過我們的相似性函式對映後,我們將得到 f1
,f2,
f3三個新特徵。
相似性函式的物理意義∥
x−l(
i)∥2
在二維平面上的物理意義是點
x 到標記點 l(
i)的距離。從向量角度來理解,個是向量的範數。
高斯核函式f
i=ex
p⎛⎝⎜
⎜−∑n
j=1(
xj−l
(i)j
)22σ
2⎞⎠⎟
⎟ 我們把上面的相似性函式稱為高斯核函式,它的主要作用就是把輸入特徵對映到另外一組特徵上。當
x 離標記點 l(
i)很近的時候,這兩個點間的距離接近於 0 ,故 fi
接近於 1 。當
x 離標記點 l(
i)很遠的時候,這兩個點間的距離接近於無窮大,故 fi
接近於 0 。
假設我們選擇了三個標識點 l(
1),l
(2),
l(3)
,對映出三個新特徵 f1
,f2,
f3,那麼當:θ0
+θ1f
1+θ2
f2+θ
3f3>=0
時,我們**為 1。假設我們訓練出來的引數為 θ0
=−0.5,θ1
=1,θ
2=1,
θ3=0
,那麼當某個測試樣例點
x 靠近 l(
1),但遠離 l(
2),l
(3) 時,我們可以得出:θ0
+θ1f
1+θ2
f2+θ
3f3=
−0.5+1
+0+0
=0.5
>=0
即我們把測試樣例點
x 歸類到 y=
1這個類別裡。相同的道理,假設某個測試樣例
x 離三個標記點都很遠,那麼:θ0
+θ1f
1+θ2
f2+θ
3f3=
−0.5+0
+0+0
=−0.5<
0這樣我們得出結論,把
x 歸類到 y=
0這個類別裡。使用相同的方法,最終我們針對所有的測試樣例進行歸類。
定義標記點 (landmark) 的乙個很自然的方法是直接把 landmark 定義在訓練資料集的訓練樣例上,即 l(
i)=x
(i) 。那麼給定乙個新的交叉驗證資料集或測試資料集裡的樣例
x ,它與 landmark 的相似性函式,即高斯核函式如下fi
=sim
ilar
ity(
x,l(
i))=
exp(
−∥x−
l(i)
∥22σ
2)針對訓練樣例,也滿足上述核函式。由於我們選擇 landmark 與訓練樣例重合,所以針對訓練樣例 x(
i)有 fi
=1。假如我們已經算出了
θ ,那麼當 θt
f>=
0 時,**值為 1,反之為 0。
根據 svm 的成本函式,由於我們把
f 代替
x作為新的特徵,所以我們可以通過最小化下面的函式來計算得出引數 θ
j(θ)=c[
∑i=1
my(i
)cos
t1(θ
tf(i
))+(
1−y(
i))c
ost0
(θtf
(i))
]+12
∑j=1
nθ2j
針對上述公式,實際上 m=
n ,因為
f 是由訓練資料集 x(
i)定義,即
f 是乙個 m 維的向量。
c 值越大,越容易造成過擬合,即 lower bias, higher variance. 當 c 值越小,越容易造成欠擬合,即 higher bias, lower variance。σ2
越大,高斯核函式的變化越平緩,會導致 higher bias, lower variance。當 σ2
越小,高斯核函式變化越快,會導致 lower bias, higher variance。一般情況下,我們使用 svm 庫 (liblinear, libsvm …) 來求解 svm 演算法的引數
θ ,而不是自己去實現 svm 演算法。在使用這些庫的時候,我們要做的步驟如下
在使用第三方演算法的時候,一般需要我們提供核函式的實現。輸入引數是 x1
,x2 ,輸出為新的特徵值 fi
。另外乙個需要注意的點是,如果使用高斯核函式,在實現核函式時,需要對引數進行縮放,以便加快演算法收斂速度。
這個和邏輯回歸裡介紹的 one-vs.-all 一樣。可以先針對乙個類別和其他類別做二元分類,逐個分類出所有的類別。這樣我們得到一組引數。假如,我們有 k 個類別,那麼我們最終將得到 θ(
1),θ
(2),
θ(3)
...θ
(k) 個引數。
邏輯回歸和 svm 都可以用來解決分類問題,他們適用的場景有些區別。
假設 n 是特徵個數;m 是訓練資料集的樣例個數。一般可以按照下面的規則來選擇演算法。
如果 n 相對 m 來說比較大。比如 n = 10,000; m = 10 - 1000,如文字處理問題,這個時候使用邏輯回歸或無核函式的 svm 演算法。
如果 n 比較小,m 中等大小。比如 n = 1 - 1000; m = 10 - 10,000。那麼可以使用高斯核函式的 svm 演算法。
如果 n 比較小,m 比較大。比如 n = 1 - 1000; m = 50,000+ 。那麼一般需要增加特徵,並且使用邏輯回歸或無核函式的 svm 演算法。
以上的所有情況都可以使用神經網路來解決。但訓練神經網路的計算成本比較高。
支援向量機的核函式
支援向量機是建立在統計學習理論基礎之上的新一代機器學習演算法,支援向量機的優勢主要體現在解決線性不可分問題,他通過引入和函式,巧妙地解決了在高維空間中的內積運算,從而很好的解決了非線性分類問題。構造出乙個具有良好效能的svm,核函式的選擇是關鍵,核函式的選擇包括兩部分工作 一是核函式型別的選擇,二是...
支援向量機3 非線性支援向量機與核函式
本節敘述非線性支援向量機,其主要特點是利用核技巧 kernel trick 1 核技巧 非線性分類問題是指通過利用非線性模型才能很好地進行分類的問題。非線性問題往往不好求解,所以希望能用解線性問題的方法解決這個問題,所採取的方法是進行乙個非線性變換,將非線性問題變換為線性問題。通過解變換後的線性問題...
選擇支援向量機 SVM 核函式
svm核函式通常有四種 1.linear 2.polynomial 3.gaussian rbf 4.sigmoid logistic 不知為何,rbf最常用 ok,很顯然,兩種核函式都能讓我們接受,具有很強的說服力。這時候通常選擇簡單的那個,即線性核函式,因為不論是引數個數上還是複雜度上,還是對映...