【Machine Learning, Coursera】機器學習Week7 核函式
Kernels
本節內容:
核函式(Kernel)是一類計算變數間相似度的函式,它可用於構造新的特徵變數,幫助SVM解決複雜的非線性分類問題。
相關機器學習概念:
相似度函式(Similarity Function)
高斯核函式(Gaussian Kernel)
1. Kernels
對於下圖中的非線性分類問題,常用的思路是構造多項式特徵變數,如果,預測,反之預測0.
然而,將所有高階項納入特徵變數會導致運算成本過高等問題,有沒有更好的選擇特徵變數的方法呢?
核函式就是一種可用於構造新的特徵變數的方法。
把新的特徵變數記作,
的計算方法如下:
其中,是我們事先選擇的一些標記點(選擇方法在下一節會講到),它的維度和樣本點的維度相同,每個標記點定義一個新的特徵變數。這裡的similarity函式是高斯核函式(Gaussian Kernel),它是核函式中的一種。核函式是眾多相似度函式的總稱。
高斯核函式所做的,其實是計算了樣本點和標記點的遠近程度,距離越近,的值越接近1,反之,其值越接近0.
如果,那麼
如果距離很遠,那麼
高斯核函式的表示式中有一個,它是高斯核函式的引數,它控制了下降的速度。
2. Application
2.1 SVM with Kernels
要使用核函式,首先需要選擇一系列標記點。
標記點該如何選擇呢?
在實踐中,一種選擇標記點的方法是將標記點與樣本點完全對應。有m個樣本點,就能得到m個標記點。此外,按照慣例,我們可能還會加入一個額外的標記點,其值始終為1.
這樣我們就得到了帶核函式的SVM模型:
Hypothesis: Given x, compute features
Predict “y=1” if
Objective function:
從原理上看,核函式不僅可以應用於SVM,也可應用於其他演算法,如邏輯迴歸等。但在實踐中我們並不這樣做,原因是用於SVM的計算技巧不能很好地推廣到其他演算法上,核函式和其他演算法結合時運算速度會非常慢。