三个角度看SVM(1)——最大间隔分类器
来源:互联网 发布:网络语555… 编辑:程序博客网 时间:2024/06/11 17:04
“横看成岭侧成峰,远近高低各不同。”
支持向量机(Support Vector Machine, SVM)作为一个被广泛应用的有监督机器学习算法,网络上对它的介绍数不胜数,其中更有不少好文佳作。本文与它们的区别在于:并不着重于“教程式”地对SVM进行系统性介绍,而是希望从三个不同的角度对这个算法进行探究。我相信经过这番“把玩”,看过你会跟我一样觉得:机器学习真的是好玩!
1、引言
最大化类间间隔分类器(maximum margin classifier),估计是最为直观,也是最为人们所熟悉的对于SVM的理解。我们不妨也先从这个角度切入,看看为什么SVM能给我们带来优良的泛化能力。这一部分的路线图如下:
2、线性可分和线性分类器
对于一个二分类问题,如果存在至少一个超平面能够将不同类别的样本分开,我们就说这些样本是线性可分的(linear separable)。所谓超平面,就是一个比原特征空间少一个维度的子空间,在二维情况下就是一条直线,在三维情况下就是一个平面。
线性分类器(linear classifier)是一类通过将样本特征进行线性组合来作出分类决策的算法,它的目标就是找到一个如上所述能够分割不同类别样本的超平面。这样在预测的时候,我们就可以根据样本位于超平面的哪一边来作出决策。
用数学语言来描述,一个线性函数可以简单表示为:
即分类的结果由
下图展示了几个线性可分/不可分的例子,并且画出了一个可能的分类超平面:
3、最大化间隔
在样本线性可分的情况下,可行的分类超平面可能会有很多,如下图的
那么怎么选择一个最好的呢?从上图我们可以直观看出,
SVM正是基于这种直观思路来确定最佳分类超平面的:通过选取能够最大化类间间隔的超平面,得到一个具有高确信度和泛化能力的分类器,即最大间隔分类器。
3.1、间隔
既然SVM的目标是最大化间隔,我们便要先对“间隔”进行定义。所谓间隔,就是分类超平面与所有样本距离的最小值,表示为:
假设任意一个样本点
综上所述,我们可以得到对于分类超平面
3.2、最大化
有了上述定义的间隔,接下来的事情就很直接了——求解能使间隔最大化的参数
我们定义
4、松弛变量
以上我们都只关心一个目的:寻找能够最大化间隔的分类超平面。然而,由于样本点中异常点的存在,只考虑这一个因素往往无法得到一个最佳的分类器。我们来看下图的例子:
从上图可以看出:若我们严格遵守“间隔”的限制,由于蓝色异常点的存在,最终只能得到一个间隔很小的分类超平面。反之,如果我们能够放宽对于间隔的限制,便可以一定程度的忽略异常点的影响,反而能得到间隔更大的分类超平面。
上述容忍异常点的思路可以通过引入“松弛变量”(slack variable)实现。在原优化问题中,我们对“间隔”的限制表现在
松弛变量的引入有助于增强模型对异常点的容忍能力,还能解决一定的数据线性不可分的问题。然而,如果不对松弛变量进行限制,得到的分类器又会变得没有用处(大量的错误分类)。因此,我们需要同时对两个目标进行优化:最大化间隔和容忍异常样本,并且引入一个平衡参数
最后,我们再来分析一下平衡参数
C 取无穷:ζi 只能为零,代表无法容忍任何误判样本的出现,即严格遵守“间隔”的限制,得到没有引入松弛变量时的分类超平面C 取零:ζi 可以任意大,即任何误判结果都可以被容忍,得到分类超平面没有意义C 较大:ζi 不能很大,因此限制条件难以被忽略,会得到较为狭窄间隔的分类超平面C 较小:ζi 影响较小,因此限制条件可以被忽略,会得到较为宽间隔的分类超平面
5、结语
作为最直观简单的角度,最大化间隔的思想不仅带我们一步步走向SVM背后的原理,更让我们理解到SVM具有的良好泛化能力的原因。虽然我们现在得到的SVM只能处理线性的情况,但我觉得从最大间隔分类器的角度去看,走到这一步已经足够了。SVM还蕴含着很多有趣的性质和优点,我们会在其他角度的探寻中一一发现。
Reference
1、本校AI课课件及参考资料:http://www.cs.rochester.edu/~jliu/CSC-242/svm.pdf, http://www.robots.ox.ac.uk/~az/lectures/ml/lect2.pdf
2、July博客:支持向量机通俗导论
3、PRML Chapter 7.
- 三个角度看SVM(1)——最大间隔分类器
- SVM 软间隔分类器
- 最优间隔分类器-SVM
- 最大间隔多超平面分类器(多线性SVM分类器)介绍及Matlab实现
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- 如何通过git协作开发
- [Java]学习笔记,随笔【十】
- 漂亮的C++控制台界面(格式化输入输出)
- 浏览线上图片
- 20150702_UI之UIViewController的生命周期
- 三个角度看SVM(1)——最大间隔分类器
- Efficiently traversing InnoDB B+Trees with the page directory--slot
- BAT面试题 转载自DERRANTCM http://blog.csdn.net/derrantcm/article/details/46658823
- Ubuntu 开机自动运行一个command
- 终止数据库连接进程SQL
- linux 使用SSD
- 人人都是产品经理
- php下phalcon 日志类Logger
- WDM驱动程序学习