台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
来源:互联网 发布:dnf无限网络中断2017 编辑:程序博客网 时间:2024/06/05 08:20
上节课我们主要介绍了SVM的对偶形式,即dual SVM。Dual SVM也是一个二次规划问题,可以用QP来进行求解。之所以要推导SVM的对偶形式是因为:首先,它展示了SVM的几何意义;然后,从计算上,求解过程“好像”与所在维度
Kernel Trick
我们上节课推导的dual SVM是如下形式:
其中
其实问题的关键在于
如果从x空间来看的话,
我们先来看一个简单的例子,对于二阶多项式转换,各种排列组合为:
这里提一下,为了简单起见,我们把
其中
至此,我们发现如果把特征转换和z空间计算内积这两个步骤合并起来,有可能会简化计算。因为我们只是推导了二阶多项式会提高运算速度,这个特例并不具有一般推论性。但是,我们还是看到了希望。
我们把合并特征转换和计算内积这两个步骤的操作叫做Kernel Function,用大写字母K表示。例如刚刚讲的二阶多项式例子,它的kernel function为:
有了kernel function之后,我们来看看它在SVM里面如何使用。在dual SVM中,二次项系数
所以,直接计算出
这样得到的b就可以用kernel function表示,而与z空间无关。
最终我们要求的矩
至此,dual SVM中我们所有需要求解的参数都已经得到了,而且整个计算过程中都没有在z空间作内积,即与z无关。我们把这个过程称为kernel trick,也就是把特征转换和计算内积两个步骤结合起来,用kernel function来避免计算过程中受
那么总结一下,引入kernel funtion后,SVM算法变成:
分析每个步骤的时间复杂度为:
我们把这种引入kernel function的SVM称为kernel SVM,它是基于dual SVM推导而来的。kernel SVM同样只用SV(
Polynomial Kernel
我们刚刚通过一个特殊的二次多项式导出了相对应的kernel,其实二次多项式的kernel形式是多种的。例如,相应系数的放缩构成完全平方公式等。下面列举了几种常用的二次多项式kernel形式:
比较一下,第一种
不同的转换,对应到不同的几何距离,得到不同的距离,这是什么意思呢?举个例子,对于我们之前介绍的一般的二次多项式kernel,它的SVM margin和对应的SV如下图(中)所示。对于上面介绍的完全平方公式形式,自由度
通过改变不同的系数,得到不同的SVM margin和SV,如何选择正确的kernel,非常重要。
归纳一下,引入
所以,使用高阶的多项式kernel有两个优点:
得到最大SVM margin,SV数量不会太多,分类面不会太复杂,防止过拟合,减少复杂度
计算过程避免了对
d^ 的依赖,大大简化了计算量。
顺便提一下,当多项式阶数Q=1时,那么对应的kernel就是线性的,即本系列课程第一节课所介绍的内容。对于linear kernel,计算方法是简单的,而且也是我们解决SVM问题的首选。还记得机器学习基石课程中介绍的奥卡姆剃刀定律(Occam’s Razor)吗?
Gaussian Kernel
刚刚我们介绍的Q阶多项式kernel的阶数是有限的,即特征转换的
先举个例子,简单起见,假设原空间是一维的,只有一个特征x,我们构造一个kernel function为高斯函数:
构造的过程正好与二次多项式kernel的相反,利用反推法,先将上式分解并做泰勒展开:
将构造的K(x,x’)推导展开为两个
通过反推,我们得到了
更一般地,对于原空间不止一维的情况(d>1),引入缩放因子
那么引入了高斯核函数,将有限维度的特征转换拓展到无限的特征转换中。根据本节课上一小节的内容,由K,计算得到
通过上式可以看出,
总结一下,kernel SVM可以获得large-margin的hyperplanes,并且可以通过高阶的特征转换使
值得注意的是,缩放因子
从图中可以看出,当
Comparison of Kernels
目前为止,我们已经介绍了几种kernel,下面来对几种kernel进行比较。
首先,Linear Kernel是最简单最基本的核,平面上对应一条直线,三维空间里对应一个平面。Linear Kernel可以使用上一节课介绍的Dual SVM中的QP直接计算得到。
Linear Kernel的优点是计算简单、快速,可以直接使用QP快速得到参数值,而且从视觉上分类效果非常直观,便于理解;缺点是如果数据不是线性可分的情况,Linear Kernel就不能使用了。
然后,Polynomial Kernel的hyperplanes是由多项式曲线构成。
Polynomial Kernel的优点是阶数Q可以灵活设置,相比linear kernel限制更少,更贴近实际样本分布;缺点是当Q很大时,K的数值范围波动很大,而且参数个数较多,难以选择合适的值。
对于Gaussian Kernel,表示为高斯函数形式。
Gaussian Kernel的优点是边界更加复杂多样,能最准确地区分数据样本,数值计算K值波动较小,而且只有一个参数,容易选择;缺点是由于特征转换到无限维度中,w没有求解出来,计算速度要低于linear kernel,而且可能会发生过拟合。
除了这三种kernel之外,我们还可以使用其它形式的kernel。首先,我们考虑kernel是什么?实际上kernel代表的是两笔资料x和x’,特征变换后的相似性即内积。但是不能说任何计算相似性的函数都可以是kernel。有效的kernel还需满足几个条件:
K是对称的
K是半正定的
这两个条件不仅是必要条件,同时也是充分条件。所以,只要我们构造的K同时满足这两个条件,那它就是一个有效的kernel。这被称为Mercer 定理。事实上,构造一个有效的kernel是比较困难的。
总结
本节课主要介绍了Kernel Support Vector Machine。首先,我们将特征转换和计算内积的操作合并到一起,消除了
注明:
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记2 -- Dual Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记6 -- Support Vector Regression
- 机器学习技法-Kernel Support Vector Machine
- 机器学习技法 笔记三 Kernel Support Vector Machine
- 机器学习技法-3-Kernel Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记5 -- Kernel Logistic Regression
- 机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 机器学习技法课程学习笔记2 -- Dual Support Vector Machine
- 机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 台湾国立大学机器学习技法.听课笔记(第三讲) :Kernel Support Vector Machine
- 机器学习技法课程学习笔记6-- Support Vector Regression
- 机器学习技法 笔记一 linear support vector machine
- 机器学习技法 笔记二 dual support vector machine
- 机器学习技法 笔记四 Soft-Margin Support Vector Machine
- android开发之seekBar与ratingBar
- 在jenkins服务器上部署一个工程
- 基于jsp+javabean开发的登录模块
- 栅栏的使用
- Part 1 – Reverse engineering using Androguard
- 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 各大公司面视中问到过的问题
- 【JZOJ100019】A 题解
- Flex 布局教程:语法篇
- 洛谷 P1328 生活大爆炸版石头剪刀布
- 常见的路由表生成算法
- POST和GET的区别!
- BZOJ2753 滑雪与时间胶囊 (洛谷P2573)
- eclipse 全局替换文件中的内容