支援向量機(三)核函式
7 核函式(Kernels)
考慮我們最初在“線性迴歸”中提出的問題,特徵是房子的面積x,這裡的x是實數,結果y是房子的價格。假設我們從樣本點的分佈中看到x和y符合3次曲線,那麼我們希望使用x的三次多項式來逼近這些樣本點。那麼首先需要將特徵x擴充套件到三維,然後尋找特徵和結果之間的模型。我們將這種特徵變換稱作特徵對映(feature mapping)。對映函式稱作,在這個例子中
我們希望將得到的特徵對映後的特徵應用於SVM分類,而不是最初的特徵。這樣,我們需要將前面公式中的內積從,對映到。
至於為什麼需要對映後的特徵而不是最初的特徵來參與計算,上面提到的(為了更好地擬合)是其中一個原因,另外的一個重要原因是樣例可能存線上性不可分的情況,而將特徵對映到高維空間後,往往就可分了。(在《資料探勘導論》Pang-Ning Tan等人著的《支援向量機》那一章有個很好的例子說明)
將核函式形式化定義,如果原始特徵內積是,對映後為,那麼定義核函式(Kernel)為
到這裡,我們可以得出結論,如果要實現該節開頭的效果,只需先計算,然後計算即可,然而這種計算方式是非常低效的。比如最初的特徵是n維的,我們將其對映到維,然後再計算,這樣需要的時間。那麼我們能不能想辦法減少計算時間呢?
先看一個例子,假設x和z都是n維的,
展開後,得
這個時候發現我們可以只計算原始特徵x和z內積的平方(時間複雜度是O(n)),就等價與計算對映後特徵的內積。也就是說我們不需要花時間了。
現在看一下對映函式(n=3時),根據上面的公式,得到
也就是說核函式只能在選擇這樣的作為對映函式時才能夠等價於對映後特徵的內積。
再看一個核函式
對應的對映函式(n=3時)是
更一般地,核函式對應的對映後特徵維度為。(求解方法參見http://zhidao.baidu.com/question/16706714.html)。
由於計算的是內積,我們可以想到IR中的餘弦相似度,如果x和z向量夾角越小,那麼核函式值越大,反之,越小。因此,核函式值是和的相似度。
再看另外一個核函式
這時,如果x和z很相近(),那麼核函式值為1,如果x和z相差很大(),那麼核函式值約等於0。由於這個函式類似於高斯分佈,因此稱為高斯核函式,也叫做徑向基函式(Radial Basis Function 簡稱RBF)。它能夠把原始特徵對映到無窮維。
既然高斯核函式能夠比較x和z的相似度,並對映到0到1,回想logistic迴歸,sigmoid函式可以,因此還有sigmoid核函式等等。
下面有張圖說明在低維線性不可分時,對映到高維後就可分了,使用高斯核函式。
來自Eric Xing的slides
注意,使用核函式後,怎麼分類新來的樣本呢?線性的時候我們使用SVM學習出w和b,新來樣本x的話,我們使用來判斷,如果值大於等於1,那麼是正類,小於等於是負類。在兩者之間,認為無法確定。如果使用了核函式後,就變成了,是否先要找到,然後再預測?答案肯定不是了,找很麻煩,回想我們之前說過的
8 核函式有效性判定
問題:給定一個函式K,我們能否使用K來替代計算,也就說,是否能夠找出一個,使得對於所有的x和z,都有?
下面來解決這個問題,給定m個訓練樣本,每一個對應一個特徵向量。那麼,我們可以將任意兩個和帶入K中,計算得到。I可以從1到m,j可以從1到m,這樣可以計算出m*m的核函式矩陣(Kernel Matrix)。為了方便,我們將核函式矩陣和都使用K來表示。
如果假設K是有效地核函式,那麼根據核函式定義
可見,矩陣K應該是個對稱陣。讓我們得出一個更強的結論,首先使用符號來表示對映函式的第k維屬性值。那麼對於任意向量z,得
最後一步和前面計算時類似。從這個公式我們可以看出,如果K是個有效的核函式(即和等價),那麼,在訓練集上得到的核函式矩陣K應該是半正定的()
這樣我們得到一個核函式的必要條件:
K是有效的核函式 ==> 核函式矩陣K是對稱半正定的。
可幸的是,這個條件也是充分的,由Mercer定理來表達。
Mercer定理: 如果函式K是上的對映(也就是從兩個n維向量對映到實數域)。那麼如果K是一個有效核函式(也稱為Mercer核函式),那麼當且僅當對於訓練樣例,其相應的核函式矩陣是對稱半正定的。 |
Mercer定理表明為了證明K是有效的核函式,那麼我們不用去尋找,而只需要在訓練集上求出各個,然後判斷矩陣K是否是半正定(使用左上角主子式大於等於零等方法)即可。
許多其他的教科書在Mercer定理證明過程中使用了範數和再生希爾伯特空間等概念,但在特徵是n維的情況下,這裡給出的證明是等價的。
相關文章
- 非線性支援向量機 與核函式函式
- 支援向量機 (二): 軟間隔 svm 與 核函式函式
- 《機器學習_07_03_svm_核函式與非線性支援向量機》機器學習函式
- 核函式 多項式核函式 高斯核函式(常用)函式
- 支援向量機
- cuda 核函式函式
- 支援向量機(SVM)
- 支援向量機之線性可分向量機
- SVM——支援向量機(完整)
- SVM_支援向量機
- 支援向量機(非線性模型)——改寫優化目標函式和限制條件模型優化函式
- 感知機與支援向量機 (SVM)
- webgl內建函式--向量函式與紋理查詢函式Web函式
- 支援向量機(非線性模型)——改寫最佳化目標函式和限制條件模型函式
- [譯] 支援向量機(SVM)教程
- 對SVM支援向量機(1)
- 機器學習——支援向量機(SVM)機器學習
- 機器學習:支援向量機(SVM)機器學習
- Python機器學習筆記:SVM(2)——SVM核函式Python機器學習筆記函式
- 機器學習——支援向量機SVM(一)機器學習
- 【機器學習】支援向量機分類機器學習
- 機器學習演算法(6)用Python實現用核支援向量機求解非線性問題機器學習演算法Python
- 監督學習之支援向量機
- 支援向量機(SVM)之硬閾值
- Hive是否支援in函式Hive函式
- 核函式匯出的核矩陣性質的證明函式矩陣
- SNN 核函式的2種形狀函式
- 三、函式函式
- 微分幾何學習(一)(向量函式)函式
- 支援向量機python實現(簡易版)Python
- 分類演算法-支援向量機 SVM演算法
- 支援向量機|SMO演算法實現演算法
- 支援向量機(SVM)和python實現(二)Python
- 人工智慧-機器學習-支援向量機SVM人工智慧機器學習
- 機器學習之支援向量機的超平面機器學習
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- SVM 的核函式選擇和調參函式
- POI 不支援函式XIRR函式
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習