核方法 kernel method 的主要思想

2021-06-25 17:10:20 字數 1409 閱讀 9340

本文對核方法(kernel method)進行簡要的介紹。

核方法的主要思想是基於這樣乙個假設:「在低維空間中不能線性分割的點集,通過轉化為高維空間中的點集時,很有可能變為線性可分的」 ,例如下圖

左圖的兩類資料要想在一維空間上線性分開是不可能的,然而通過f(x)=(x-a)(x-b)把一維空間上的點轉化為右圖上的二維空間上,就是可以線性分割的了。

然而,如果直接把低維度的資料轉化到高維度的空間中,然後再去尋找線性分割平面,會遇到兩個大問題,一是由於是在高維度空間中計算,導致curse of dimension問題;二是非常的麻煩,每乙個點都必須先轉換到高維度空間,然後求取分割平面的引數等等;怎麼解決這些問題?答案是通過核戲法(kernel trick)。

(pku, shinningmonster, sewm)

kernel trick:定義乙個核函式k(x1,x2) = , 其中x1和x2是低維度空間中點(在這裡可以是標量,也可以是向量),\phi(xi)是低維度空間的點xi轉化為高維度空間中的點的表示,< , > 表示向量的內積。

這裡核函式k(x1,x2)的表達方式一般都不會顯式地寫為內積的形式,即我們不關心高維度空間的形式。核函式巧妙地解決了上述的問題,在高維度中向量的內積通過低維度的點的核函式就可以計算了。這種技巧被稱為kernel trick。這裡還有乙個問題:「為什麼我們要關心向量的內積?」,一般地,我們可以把分類(或者回歸)的問題分為兩類:引數學習的形式和基於例項的學習形式。

引數學習的形式就是通過一堆訓練資料,把相應模型的引數給學習出來,然後訓練資料就沒有用了,對於新的資料,用學習出來的引數即可以得到相應的結論;

而基於例項的學習(又叫基於記憶體的學習)則是在**的時候也會使用訓練資料,如knn演算法。而基於例項的學習一般就需要判定兩個點之間的相似程度,一般就通過向量的內積來表達。從這裡可以看出,核方法不是萬能的,它一般只針對基於例項的學習。

緊接著,我們還需要解決乙個問題,即核函式的存在性判斷和如何構造? 既然我們不關心高維度空間的表達形式,那麼怎麼才能判斷乙個函式是否是核函式呢?

mercer 定理:任何半正定的函式都可以作為核函式。所謂半正定的函式f(xi,xj),是指擁有訓練資料集合(x1,x2,...xn),我們定義乙個矩陣的元素aij = f(xi,xj),這個矩陣式n*n的,如果這個矩陣是半正定的,那麼f(xi,xj)就稱為半正定的函式。這個mercer定理不是核函式必要條件,只是乙個充分條件,即還有不滿足mercer定理的函式也可以是核函式。常見的核函式有高斯核,多項式核等等,在這些常見核的基礎上,通過核函式的性質(如對稱性等)可以進一步構造出新的核函式。svm是目前核方法應用的經典模型。

上述是目前我所理解到的核方法的主要精神。

核方法原理

1.無力的線性分類器 一般情況下,我們考慮構造乙個線性分類器來解決問題。但是實際中,線性分類器的效果達不到要求,因為大部分資料都不是線性可分的,如下面這幅圖。一種改進的方法是把多個弱的線性分類器組合得到乙個強分類器,如決策樹,booting方法 另乙個種方法就是接下來要說的高維投影。2.高維線性可分...

核光滑方法 二

昨天聽了實驗室師兄的報告,會後詢問他看es l 的事宜。師兄說你不實現書中的演算法就是偷懶,想想確實是這樣。多維空間的表示式 如下 mi n x 0 i 1nk x0 xi yi b xi t x0 2k x0,x d x x0 是歐幾里得範數,也就是 x x1 2 xp 2 書中說分數會趨向於 1...

核方法的主要思想

2012年07月05日 16 31 02 閱讀數 56376 本文對核方法 kernel method 進行簡要的介紹。核方法的主要思想是基於這樣乙個假設 在低維空間中不能線性分割的點集,通過轉化為高維空間中的點集時,很有可能變為線性可分的 例如下圖 左圖的兩類資料要想在一維空間上線性分開是不可能的...