Kernel Function
Kernel Trick
李航的《統計學習方法》
在機器學習内,一般說到kernel函數都是在SVM中去介紹,主要原因是SVM必須搭配kernel l函數才能讓SVM可以在分類問題中得到非常好的效能,是以kernel trick是SVM學習内非常重要的部份,當然也會衍生出很多問題(後面會提到)。
Kernel trick在機器學習的角色就是希望當不同類别的特征在原始空間中無法被線性分類器區隔開來時,經由非線性投影後的特征能在更高次元的空間中可以更區隔開。
下圖是一般看到kernel介紹都會看到的圖,我們無法在原始空間(Rd)中适當的找到一個線性分類器将兩類區隔開,這時後此需要找到一個非線性投影(φ)将特征進行轉換到更高次元的空間,此時在高次元的空間中隻需要一個線性分類器/hyperplane就可以完美分類。
而這個更高次元的空間則稱為Hilbert space(H)。
但我們又很難直接去設計一個好的非線性投影(φ)公式,是以需要kernel函數來輔助。
Kernel函數定義:
隻要對所有的特征,有一個函數可以滿足
K(x,y)=φ(x),φ(y)
這個k(x,y)就是一個kernel函數,a, b表示向量a和b做内積。
但我們怎麼知道什麼函數可以滿足這個條件,是以有個定理(Mercer’s theorem)說如果有一個函數(φ)存在,這個k必需滿足Mercer’s condition,k就是kernel函數。
但說法還是很玄,簡化說就是如果所有的特征帶到這個kernel function中的和必須大于等于0:
K就滿足Mercer’s condition。
理論上,一個Kernel matrix(K, Gram matrix)是半正定矩陣(positive semi-definite),這個k就是kernel function。
比較常用的kernel函數:
周志華 《機器學習》
參考:
對核函數(kernel)最通俗易懂的了解
專家坐堂:機器學習中對核函數的了解
核函數分類
常用的核函數
一個Kernel matrix(K, Gram matrix)是半正定矩陣(positive semi-definite),這個k就是kernel function
核函數:如何處理線性不可分的資料集?