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