核函数

在逻辑回归中,我们会通过多项式扩展来处理非线性分类问题:
hθ(x)=θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+θ5x22+⋯
假设我们令:
f1=x1,f2=x2,f3=x1x2,f4=x12,f5=x22
则预测函数为:
hθ(x)=θ0+θ1f1+θ2f2+θ3f3+⋯
但多项式回归所带来的高阶项不一定作用明显,针对这一问题,SVM 不会引入高阶项来作为新的特征,而是会选择一些标记点(landmark),并将样本 x 与标记点 l(i) 的相似程度作为新的训练特征 fi :
fi=similarity(x,l(i))

距离度量的方式就称之为核函数(Kernel),最常见的核函数是高斯核函数(Gaussian Kernel):
fi=exp(2δ2−∣∣x−l(i)∣∣2)
在高斯核中,注意到:
这一关系可以被如下的热力图所反映:

在使用高斯核函数前,需要做特征缩放(feature scaling),以使 SVM 同等程度地关注到不同的特征。
标记点选取
假定我们有如下的数据集:
(x(1),y(1)),(x(2),y(2)),(x(3),y(3)),⋯,(x(m),y(m))
我们就将每个样本作为一个标记点:
l(1)=x(1),l(2)=x(2),l(3)=x(3),⋯,l(m)=x(m)
则对于样本 (x(i),y(i)) ,我们计算其与各个标记点的距离:
f1(i)=sim(x(i),l(1))f2(i)=sim(x(i),l(2))⋮fm(i)=sim(x(i),l(3))
得到新的特征向量: f∈Rm+1
f=⎝⎜⎜⎜⎜⎜⎛f0f1f2⋮fm⎠⎟⎟⎟⎟⎟⎞其中f0=1
则具备核函数的 SVM 的训练过程如下:
θminC[i=1∑my(i)cost1(θTf(i))+(1−y(i))cost0(θTf(i))]+21j=1∑nθj2