建議看這個,中文的
,這裡面會講解kernel 的基本概念, svm,lda,lr,pca等如何使用kernel版本
本文大致講解核函式的定義,限制,使用等
機器學習中,對於線性可分的情況研究的比較透徹,可以採用svm/lr/感知機等成熟的機器學習模型,但是很多情況是我們希望我們的模型學習非線性的模型。通常的做法就是選擇乙個函式ϕ(
x)將x
對映到另乙個空間中,這裡的核心就是如何選擇ϕ(
x).一般有三種做法
1)通過核函式,比如rbf。如果 φ(x) 具有足夠高的維數,我們總是有足夠的能力來擬合訓練集,但是對於測試集的泛化往往不佳。非常通用的特徵對映通常只基於區域性光滑的原則,並且沒有將足夠的先驗資訊進行編碼來解決高階問題。
2)另一種選擇是手動地設計 φ,在深度學習以前,這種方法對於每個單獨的任務都需要人們數十年的努力,從業者各自擅長特定的領域(如語音識別或計算機視覺),並且不同領域之間很難遷移 (transfer)。
3)深度學習方式是去學習這個函式ϕ(
x)上面這段話來自《深度學習》
假設x是輸入空間,h是特徵空間,存在乙個對映
ϕ 使得x中的點x能夠計算得到h空間中的點h h=
ϕ(x)
對於所有的x中的點都成立,x,z是x空間中的點。函式k(x,z)滿足條件: k(
x,z)
=ϕ(x
)⋅ϕ(
z)都成立,則稱k為核函式,而
ϕ 為對映函式。
舉個例子,如下圖所示:
特徵空間在三維空間中,原空間在二維,我們定義對映函式為,x=
(x1,
x2) : ϕ(
x)=(
x21,
2√x1
⋅x2,
x22)
那麼如圖所示:
原始空間的點x到特徵空間的點為: (x
1,x2
)⇒(z
1,z2
,z3)
=(x2
1,2√
x1⋅x
2,x2
2)同時我們可以驗證, ϕ(
x)⋅ϕ
(z)=
(x⋅z
)2=k
(x,z
),如果
我們取k
(x,z
)=(x
⋅z)2
我們要進行高維空間的線性可分,首先要將原始空間的點通過函式
ϕ 對映到特徵空間中,然後學習,而所謂的學習,其實就是要計算高維空間的點的距離和夾角。那麼能不能不通過對映函式而直接使用核函式計算高維空間的點的距離以及夾角呢?
答案是可以的,核函式的技巧就是不顯示的定義對映函式,而在高維空間中直接使用核函式進行計算。
所以我們在高維空間中進行計算的時候,其實根本不必要進行對映,然後再計算,而是直接先進行內積,然後使用核函式。
首先介紹kernel矩陣,如下圖所示:
核矩陣,就是每個點之間的高維對映之後的內積構成的矩陣。
要稱為核函式,核矩陣必須是半正定的。
常用的核函式有:
在實際計算中,通常會選用高斯核。
核函式帶來的好處很明顯,如果先要對映到高維空間然後進行模型學習,計算量遠遠大於在低維空間中直接直接採用核函式計算
但是也有缺點,如果 φ(x) 具有足夠高的維數,我們總是有足夠的能力來擬合訓練集,但是對於測試集的泛化往往不佳。非常通用的特徵對映通常只基於區域性光滑的原則,並且沒有將足夠的先驗資訊進行編碼來解決高階問題
區域性光滑原則,應該是區分傳統機器學習和深度學習的重要特性。
機器學習 SVM(核函式 高斯核函式RBF)
1 格式 2 多項式核函式 對傳入的樣本資料點新增多項式項 新的樣本資料點進行點乘,返回點乘結果 一維特徵的樣本,兩種型別,分布如圖,線性不可分 為樣本新增乙個特徵 x2 使得樣本在二維平面內分布,此時樣本在 x 軸公升的分布位置不變 如圖,可以線性可分 3 優點 特點 一般將原始樣本變形,通常是將...
機器學習核函式理解
核函式要滿足的條件稱為mercer s condition。核函式的作用就是隱含著乙個從低維空間到高維空間的對映,而這個對映可以把低維空間中線性不可分的兩類點變成線性可分的。在機器學習中常用的核函式,一般有這麼幾類,也就是libsvm中自帶的這幾類 1 線性 k v 1,v 2 v 1,v 2 2 ...
機器學習 SVM(3)核函式
更詳細的講解可以參考原部落格。1 為什麼引入核函式呢?為了回答這個問題,我們先來說明什麼是線性不可分資料。如下左圖所示,如果資料能用一條直線或乙個超平面分開的資料,就是線性不可分資料。那麼什麼是線性不可分資料呢?如下右圖所示,我們無法用一條直線或乙個超平面分開的資料。很不幸的是我們之前介紹的svm是...