您的位置:首页 > 其它

机器学习技法-Kernel Support Vector Machine

2017-12-04 19:18 323 查看

大纲



上节课我们主要介绍了SVM的对偶形式,即dual SVM。Dual SVM也是一个二次规划问题,可以用QP来进行求解。之所以要推导SVM的对偶形式是因为:首先,它展示了SVM的几何意义;然后,从计算上,求解过程“好像”与所在维度d̂ 无关,规避了d̂ 很大时难以求解的情况。但是,上节课的最后,我们也提到dual SVM的计算过程其实跟d̂ 还是有关系的。那么,能不能完全摆脱对d̂ 的依赖,从而减少SVM计算量呢?这就是我们本节课所要讲的主要内容。

Kernel Trick

1 Dual SVM Revisited



我们在计算zTnzm的时候,分为两步

1.进行特征转换计算ϕ(xn),ϕ(xm)

2然后计算ϕ(xn)与ϕ(xm)的内积

这种先转换再计算内积的方式,必然会引入d̂ 参数,从而在d̂ 很大的时候影响计算速度。那么,若把这两个步骤联合起来,是否可以有效地减小计算量,提高计算速度呢?

2 Fast Inner Product for Φ2

让我们来看一个二阶多项式转换的例子



我们可以发现,我们可以通过一定形式的转换,把计算复杂度从O(d̂ ),降低到O(d),虽然这只是个别例子,但它让我们看到了减少计算复杂度的希望

3 Kernel: Transform + Inner Product

我们把合并特征转换和计算内积这两个步骤的操作叫做Kernel Function,用大写字母K表示。比如上面这个二阶多项式的例子

Kϕ2(x,x′)=1+(xTx′)+(xTx′)2

有了Kernel Function之后,我们看它是如何在SVM中发挥作用的

qn,m=ynymzTnzm=ynymK(xn,xm),我们可以通过计算K(xn,xm),降低复杂度。

b=ys−wTzs=ys−(∑Nn=1αnynzn)Tzs=ys−∑Nn=1αnyn(K(xn,xs)),这样b的计算复杂度就与d̂ 无关了

gsvm=sign(wTϕ(x)+b)=sign(∑Nn=1αnyn(K(xn,x))+b),这样我们的所求的函数就与d̂ 无关了

核技巧就是利用kernel function来避免计算过程中受d̂ 的影响,从而提高运算速度。

4 Kernel SVM with QP

通过引入Kernel function,我们可以把SVM算法改造成以下形式,并进行时间复杂度分析



Kernel SVM通过SV来得到最佳分类面,并且通过Kernel function来避免计算过程中受到d̂ 的影响,从而提高了运算速度

Polynomial Kernel

1 General Poly-2 Kernel



比较一下,第一种ϕ2(x)(蓝色标记)和第三种ϕ2(x)(绿色标记)从某种角度来说是一样的,因为都是二次转换,对应到同一个z空间。但是,它们系数不同,内积就会有差异,那么就代表有不同的距离,最终可能会得到不同的SVM margin。所以,系数不同,可能会得到不同的SVM分界线。通常情况下,第三种ϕ2(x)(绿色标记)简单一些,更加常用。

2 Poly-2 Kernels in Action



不同的核对应不同的SVs和maigin.从而最佳分离超平面也不同

3 General Polynomial Kernel

更为一般的,我们可以导出Q次多项式的核函数



使用高阶的多项式

可以尽可能的将数据点分开,因为有最大margin的保证,减少过拟合的风险

因为使用了核技巧,所以可以大大减少计算量

4 Special Case: Linear Kernel



实践中,我们可以先尝试liner kernel.然后慢慢的增加复杂度

Gaussian Kernel

1 Kernel of Infinite Dimensional Transform

接下来我们可以考虑一种将特征映射到无限维,而不会带来多余的计算量的核函数



根据上面的公式推导,我们可以看到,通过高斯核函数,我们确实把特征映射到了无限维

2 Hypothesis of Gaussian SVM



通过上式可以看出,gSVM有n个高斯函数线性组合而成,其中n是SV的个数。而且,每个高斯函数的中心都是对应的SV。

3 Gaussian SVM in Action



从图中可以看出,当γ比较小的时候,分类线比较光滑,当γ越来越大的时候,分类线变得越来越复杂和扭曲,直到最后,分类线变成一个个独立的小区域,像小岛一样将每个样本单独包起来了。为什么会出现这种区别呢?这是因为γ越大,其对应的高斯核函数越尖瘦,那么有限个高斯核函数的线性组合就比较离散,分类效果并不好。所以,SVM也会出现过拟合现象,γ的正确选择尤为重要,不能太大。

Comparison of Kernels

1 Linear Kernel



Linear Kernel的优点是计算简单、快速,可以直接使用QP快速得到参数值,而且从视觉上分类效果非常直观,便于理解;缺点是如果数据不是线性可分的情况,Linear Kernel就不能使用了。

2 Polynomial Kernel



olynomial Kernel的优点是阶数Q可以灵活设置,相比linear kernel限制更少,更贴近实际样本分布;缺点是当Q很大时,K的数值范围波动很大,而且参数个数较多,难以选择合适的值。

3 Gaussian Kernel



Gaussian Kernel的优点是边界更加复杂多样,能最准确地区分数据样本,数值计算K值波动较小,而且只有一个参数,容易选择;缺点是由于特征转换到无限维度中,w没有求解出来,计算速度要低于linear kernel,而且可能会发生过拟合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习 svm kernel
相关文章推荐