机器学习技法-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,而且可能会发生过拟合。
相关文章推荐
- 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- Coursera台大机器学习技法课程笔记03-Kernel Support Vector Machine
- 机器学习技法-3-Kernel Support Vector Machine
- 机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 机器学习技法 笔记三 Kernel Support Vector Machine
- 台湾国立大学机器学习技法.听课笔记(第三讲) :Kernel Support Vector Machine
- 机器学习技法 笔记二 dual support vector machine
- 机器学习技法:01 Linear Support Vector Machine
- 林轩田机器学习技法笔记2:Dual Support Vector Machine
- 机器学习技法-1-Linear Support Vector Machine
- 机器学习笔记八 - SVM(Support Vector Machine,支持向量机)的剩余部分。即核技法、软间隔分类器、对SVM求解的序列最小化算法以及SVM的一些应用
- 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 林轩田--机器学习技法--SVM笔记4--软间隔支持向量机(Soft-Margin Support Vector Machine)
- Coursera台大机器学习技法课程笔记02-Dual Support Vector Machine
- Coursera台大机器学习技法课程笔记04-Soft-Margin Support Vector Machine
- 机器学习技法-2-Dual Support Vector Machine
- 机器学习技法-01-4-Support Vector Machine
- 机器学习技法---(Week2)Dual Support Vector Machine
- 机器学习技法-Linear Support Vector Machine
- 【Linear Support Vector Machine】林轩田机器学习技法