机器学习——支持向量机:从感知机到线性可分支持向量机

Posted Lyndon_zheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习——支持向量机:从感知机到线性可分支持向量机相关的知识,希望对你有一定的参考价值。

前言

支持向量机(support vector machine)本来是最早接触的机器学习算法,最初自己写的的机器视觉论文也用到了SVM,但和神经网络一样,一直觉得它是比较复杂的机器学习方法,需要深入的学习和研究。因此先是系统推导了李航的《机器学习》,之后学习Andrew Ng的机器学习课程,并看了julypluskid等人的技术博客。也不能说自己完全懂了,只能算是学习笔记,总结一些自己能掌握的东西。
我在接触SVM之初,深度学习已经比较火了,之所以还是运用SVM,一方面是因为SVM本身是现成比较成熟的分类算法,另一方面是之前很多论文都说了SVM的可靠性,在各方面表现都不错,而且有很多现成的资源(代表性有台湾林智仁团队的libsvmliblinear)。为了快速应用机器学习,就选择了SVM。最终发现里面真的是博大精深,包含有太多不同的模型,涉及了大量的数学知识,而且至今仍是很多科研人员的研究方向。

感知机(回顾)

在之前总结感知机(perceptron)时介绍了感知机是神经网络(Neural Networks)和支持向量机(support vector machine, SVM)的基础。首先,我们来看感知机由输入空间到输出空间的映射函数,这与支持向量机是一样的:

f(x)=sign(wTx+b)
其中sign函数的定义为:
sign(x)=+1,1,x0x<0
wTx+b0 时, f(x)=1 ;而当 wTx+b<0 时, f(x)=1
现在我们假设有如下图所示的两组数据,红色表示正样本+1,绿色表示负样本-1,点所在位置为样本特征值 x 。对于二分类问题就是找到如图所示的一条直线(高维对应超平面)能够准确将两类样本进行分类。
对于上面定义的感知机,正样本(红点)在直线上面,则 wTx+b0 ,对应感知机输出结果 f(x)=1 ,即分类为正样本。同理,当样本点在直线下面时, wTx+b<0 ,对应感知机输出结果 f(x)=1 ,即负样本。由此我们可以看出,在二维平面的直线 wTx+b=0 就能够将图中的正负样本正确分类。

当样本被错误分类时,样本真实类别 yi wTx+b 总是异号,则对错分样本 yi(wTx+b)<0 。因此对于感知机来说,定义的损失函数为:
L(w,b)=(xi,yi)Myi(wTx+b)
其中M是错分样本集合,即样本被错分之后就有一定的损失代价。分类器的最终目的也就转为求解使代价函数最小的分类边界,在感知机中,只要求出使所有样本都正确分类的超平面,则损失函数代价就为0。
考虑到上图所示的二分类问题,感知机最终的目的只是将两类样本正确分类,我们可以看出是有多条直线满足该条件的,那么到底哪条才是 最恰当的分类界限呢?这是感知机无法解决的问题。
从几何直观上来看,就上图的二分类的问题 ,最佳决策边界应该是图中最近的红点和黑点连线的中垂线(黑色圈中的两个点),也就是说最佳决策边界主要 由最难分的两个样本点决定。这从感性上也比较好理解,因为对于难分离的样本,决策边界稍微转动一个角度,则有一个样本就可能被错分,即该样本很大程度影响了决策边界的分布,反之,离得较远的样本点则不会有影响。这就是支持向量机中支持向量的直观概念,下面我们先具体介绍线性可分支持向量机的一些知识。

线性可分支持向量机

通过上述介绍我们知道,感知机能够对线性可分样本进行正确分类,但是求得的分类超平面有很多,即决策边界不一定是最优的。通过线性可分支持向量机利用间隔最大化求最优分离超平面,这时决策边界是唯一的。
首先,通过下图我们可以看出,A点离分类平面较远,预测为正样本的确信度很高,C点离分类平面较近,预测为正样本的确信度较低。由此,我们可以看出样本分类的可信度可以通过样本点到分类边界的距离来定义。其中,相对距离可以由 |wTx+b| 给出,则 y(wTx+b) 可以用来表示分类的正确性(同号则分类正确,乘积大于0)及确信度(值越大表示离边界越远,可信度越高)。

因此,我们定义样本点 (xi,yi) 到超平面的函数间隔(functional margin)

γi^=yi(wTxi+b)=yif(xi)
而训练集 T 函数间隔为所有样本点中离超平面最近的点到超平面的函数间隔,即:
γ^=mini=1,2,,Nγi^机器学习——支持向量机:线性可分支持向量机到非线性支持向量机

机器学习——支持向量机:线性可分支持向量机到非线性支持向量机

机器学习基础从感知机到支持向量机&支持向量机的多分类方法

11支持向量机SVM:线性可分支持向量机

机器学习笔记七 支持向量机

机器学习 | 第35讲---支持向量机