1. 程式人生 > >總結一下遇到的各種核函式~

總結一下遇到的各種核函式~

由於之前做了很多核方法相關的子空間學習演算法,本文打算對各種核函式進行一下簡要的介紹,希望對大家能夠有所幫助。

首先,再對核方法的思想進行描述,核函式的思想是一個偉大的想法,它工作簡練巧妙的對映,解決了高維空間中資料量龐大的問題,在機器學習中是對演算法進行非線性改進的利器。如下,如果在原空間中,給定的樣本資料X是線性不可分的,那麼如果我們能夠將資料對映到高維空間中,即

那麼在高維空間中,樣本資料很有可能線性可分,這個特點可以用下圖做一個很好的說明:

如左圖,紅色部分的點為一類資料,黑色部分的點為另一類,在一維空間中,你不可能通過一刀切將兩類資料分開,至少需要兩刀。OK,這就說明資料分佈是非線性的,我們採用高維對映,當然了,例子中只是對映到了二維空間,但已經足夠說明問題了,在右圖中,完全可以通過沿著X軸方向的一刀切將兩類資料分開,說明在二維空間中,資料已經變成線性可分的了。

這個時候,我們就可以採用很多已有的線性演算法對資料進行處理,但是問題來了,對映函式具體形式是什麼?這個問題的答案是,根本不需要知道對映函式的具體形式,直接對高維資料進行操作吧!

PCA在原始空間中的數學模型如下所示:

                                                                                      

在高維空間中的形式就是:

                                                                       

我們對其進行簡單的變換,我們知道,一個空間中的基向量完全可以用所有的訓練樣本線性表示出來,即

見證神奇的時刻到了,上式帶入上上式,就可以得到如下形式:

                                                        

如果你再在等號兩側同時左乘一個東西,就會變成如下形式:

核方法的價值在於如下等式成立,

請注意,這個公式表達的意思只是高維空間中向量的內積等於原空間中向量之間的核函式值,根核函式的具體形式沒有一毛錢的關係。我們繼續,一個樣本是這樣的,那麼矩陣化的形式如下:

那麼PCA就變成了如下形式:

看到沒,核方法借用核函式的性質,將高維對映成功的抹掉了。那麼什麼樣的函式才可以被稱作為核函式呢?這裡大牛們給出了一個著名的定理,稱作mercer定理。

Mercer 定理:任何半正定的函式都可以作為核函式。所謂半正定的函式f(xi,xj),是指擁有訓練資料集合(x1,x2,...xn),我們定義一個矩陣的元素aij = f(xi,xj),這個矩陣式n*n的,如果這個矩陣是半正定的,那麼f(xi,xj)就稱為半正定的函式。

請注意,這個mercer定理不是核函式必要條件,只是一個充分條件,即還有不滿足mercer定理的函式也可以是核函式。所謂半正定指的就是核矩陣K的特徵值均為非負。

本文將遇到的核函式進行收集整理,分享給大家。

1. Linear Kernel

線性核是最簡單的核函式,核函式的數學公式如下:

如果我們將線性核函式應用在KPCA中,我們會發現,推導之後和原始PCA演算法一模一樣,很多童鞋藉此說“kernel is shit!!!”,這是不對的,這只是線性核函式偶爾會出現等價的形式罷了。

2. Polynomial Kernel

多項式核實一種非標準核函式,它非常適合於正交歸一化後的資料,其具體形式如下:

這個核函式是比較好用的,就是引數比較多,但是還算穩定。

3. Gaussian Kernel

這裡說一種經典的魯棒徑向基核,即高斯核函式,魯棒徑向基核對於資料中的噪音有著較好的抗干擾能力,其引數決定了函式作用範圍,超過了這個範圍,資料的作用就“基本消失”。高斯核函式是這一族核函式的優秀代表,也是必須嘗試的核函式,其數學形式如下:

雖然被廣泛使用,但是這個核函式的效能對引數十分敏感,以至於有一大把的文獻專門對這種核函式展開研究,同樣,高斯核函式也有了很多的變種,如指數核,拉普拉斯核等。

4. Exponential Kernel

指數核函式就是高斯核函式的變種,它僅僅是將向量之間的L2距離調整為L1距離,這樣改動會對引數的依賴性降低,但是適用範圍相對狹窄。其數學形式如下:

5. Laplacian Kernel

      拉普拉斯核完全等價於指數核,唯一的區別在於前者對引數的敏感性降低,也是一種徑向基核函式。

6. ANOVA Kernel

      ANOVA 核也屬於徑向基核函式一族,其適用於多維迴歸問題,數學形式如下:

7. Sigmoid Kernel

Sigmoid 核來源於神經網路,現在已經大量應用於深度學習,是當今機器學習的寵兒,它是S型的,所以被用作於“啟用函式”。關於這個函式的性質可以說好幾篇文獻,大家可以隨便找一篇深度學習的文章看看。

8. Rational Quadratic Kernel

      二次有理核完完全全是作為高斯核的替代品出現,如果你覺得高斯核函式很耗時,那麼不妨嘗試一下這個核函式,順便說一下,這個核函式作用域雖廣,但是對引數十分敏感,慎用!!!!

9. Multiquadric Kernel

      多元二次核可以替代二次有理核,它是一種非正定核函式。

10. Inverse Multiquadric Kernel

      顧名思義,逆多元二次核來源於多元二次核,這個核函式我沒有用過,但是據說這個基於這個核函式的演算法,不會遇到核相關矩陣奇異的情況。

11. Circular Kernel

      這個核函式沒有用過,其數學形式如下所示:

12. Spherical Kernel

      這個核函式是上一個的簡化版,形式如下所示

13. Wave Kernel

      這個核函式沒有用過,其適用於語音處理場景。

14. Triangular  Kernel

三角核函式感覺就是多元二次核的特例,數學公式如下:

15. Log Kernel

      對數核一般在影象分割上經常被使用,數學形式如下:

16. Spline Kernel

17. Bessel Kernel

18. Cauchy Kernel

      柯西核來源於神奇的柯西分佈,與柯西分佈相似,函式曲線上有一個長長的尾巴,說明這個核函式的定義域很廣泛,言外之意,其可應用於原始維度很高的資料上。

19. Chi-Square Kernel

      卡方核,這是我最近在使用的核函式,讓我欲哭無淚,在多個數據集上都沒有用,竟然比原始演算法還要差勁,不知道為什麼文獻作者首推這個核函式,其來源於卡方分佈,數學形式如下:

它存在著如下變種:

其實就是上式減去一項得到的產物,這個核函式基於的特徵不能夠帶有賦值,否則效能會急劇下降,如果特徵有負數,那麼就用下面這個形式:

20. Histogram Intersection Kernel

      直方圖交叉核在影象分類裡面經常用到,比如說人臉識別,適用於影象的直方圖特徵,例如extended LBP特徵其數學形式如下,形式非常的簡單

21. Generalized Histogram Intersection

     顧名思義,廣義直方圖交叉核就是上述核函式的拓展,形式如下:

22. Generalized T-Student Kernel

      TS核屬於mercer核,其數學形式如下,這個核也是經常被使用的

23. Bayesian Kernel

貝葉斯核函式還沒有用到過。