核技巧

非线性分类问题

用线性分类的方法求解非线性分类问题分为两步
首先使用一个变换将原空间的数据映射到新空间;
然后在新空间里利用线性分类学习方法从训练数据中学习分类模型。核技巧就是这种方法。
核技巧应用到SVM,基本想法是通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间中的超曲面模型对应于特征空间中的超平面模型(SVM)。这样,分类问题的学习任务通过在特征空间中求解线性SVM就可以完成。

核函数的定义

<nobr> K(x,z)=ϕ(x)ϕ(z) </nobr>
<nobr> K(x,z) </nobr>为核函数, <nobr> ϕ(x) </nobr>为映射函数。
核技巧的想法是,在学习和预测中只定义核函数 <nobr> K(x,z) </nobr>,而不显式地定义映射函数 <nobr> ϕ </nobr>。通常,直接计算 <nobr> K(x,z) </nobr>比较容易。

核技巧在SVM中的应用

在线性SVM的对偶问题中,目标函数和决策函数都只涉及输入实例与实例之间的内积。对偶问题的目标函数中的内积 <nobr> xixj </nobr>可以用和函数 <nobr> K(xi,xj)=ϕ(xi)ϕ(xj) </nobr>代替。
目标函数变为
<nobr> W(a)=12i=1Nj=1NaiajyiyjK(xi,xj)i=1Nai </nobr>
分类决策函数成为
<nobr> f(x)=sign(i=1NaiyiK(xi,x)+b) </nobr>
当映射函数是非线性函数时,学习到的含有核函数的SVM就是非线性分类模型。
在核函数给定的条件下,可以利用解线性分类的方法求解非线性分类问题的SVM。学习是隐式地在特征空间中进行的,不需要显式地定义特征空间和映射函数

正定核



常用核函数

多项式核函数

<nobr> K(x,z)=(xz+r)d </nobr>
对应的SVM是一个d次多项式分类器。

高斯核函数

<nobr> K(x,z)=exp(γ||xz||22σ2) </nobr>
对应的SVM是高斯径向基函数(radial basis function)分类器。
<nobr> γ </nobr>定义了了当个样本对整体分类超平面的影响,当 <nobr> γ </nobr>比较小时,单个样本对整个分类超平面的影响比较大,更容易被选择为支持向量。
如果把惩罚系数C和RBF核的 <nobr> γ </nobr>一起看,当C比较大, <nobr> γ </nobr>比较小时,会有更多支持向量,模型比较复杂。

sigmoid核函数

<nobr> K(x,z)=tanh(γ<xz>+r) </nobr>

字符串函数

核函数不仅可以定义在欧式空间上,还可以定义在离散数据的集合上。

非线性SVM算法

参考文献

《统计学习方法》第7章
机器学习 小象学院