机器学习:支持向量机SVM

支持向量机(SVM,也称为支持向量网络),是机器学习中获得关注最多的算法没有之一。它源于统计学习理论,与集成算法一样,也是强学习器。从算法的功能来看,SVM几乎囊括了所有常用算法的功能:
有监督学习:
线性二分类与多分类(Linear Support Vector Classification)
非线性二分类与多分类(Support Vector Classification, SVC)
普通连续型变量的回归(Support Vector Regression)
概率型连续变量的回归(Bayesian SVM)
无监督学习:
支持向量聚类(Support Vector Clustering,SVC)
异常值检测(One-class SVM)
半监督学习:
转导支持向量机(Transductive Support Vector Machines,TSVM)
从分类效力来讲,SVM在无论线性还是非线性分类中,都是明星般的存在:
在这里插入图片描述
从实际应用来看,SVM在各种实际问题中都表现非常优秀。它在手写识别数字人脸识别中应用广泛,在文本和超文本的分类中举足轻重,因为SVM可以大量减少标准归纳(standard inductive)和转换设置(transductive settings)中对标记训练实例的需求。同时,SVM也被用来执行图像的分类,并用于图像分割系统。实验结果表明,在仅仅三到四轮相关反馈之后,SVM就能实现比传统的查询细化方案(query refinement schemes)高出一大截的搜索精度。除此之外,生物学和许多其他科学都是SVM的青睐者,SVM现在已经广泛被用于蛋白质分类,现在化合物分类的业界平均水平可以达到90%以上的准确率。在生物科学的尖端研究中,人们还使用支持向量机来识别用于模型预测的各种特征,以找出各种基因表现结果的影响因素。
从学术的角度来看,SVM是最接近深度学习的机器学习算法。线性SVM可以看成是神经网络的单个神经元(虽然损失函数与神经网络不同),非线性的SVM则与两层的神经网络相当,非线性的SVM中如果添加多个核函数,则可以模仿多层的神经网络
当然了,没有算法是完美的,比SVM强大的算法在集成学习和深度学习中还有很多很多。

支持向量机分类器是如何工作的

支持向量机所作的事情其实非常容易理解。
看看下面这一组数据的分布,这是一组两种标签的数据,两种标签分别由圆和方块代表。支持向量机的分类方法,是在这组分布中找出一个超平面作为决策边界,使模型在数据上的分类误差尽量接近于小,尤其是在未知数据集上的分类误差(泛化误差)尽量小。
在这里插入图片描述

超平面

在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。 如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则其超平面是一维的直线。
在二分类问题中,如果一个超平面能够将数据划分为两个集合,其中每个集合中包含单独的一个类别,就说这个超平面是数据的“决策边界”。
决策边界一侧的所有点在分类为属于一个类,而另一侧的所有点分类属于另一个类。如果能够找出决策边界,分类问题就可以变成探讨每个样本对于决策边界而言的相对位置。比如上面的数据分布,很容易就可以在方块和圆的中间画出一条线,并让所有落在直线左边的样本被分类为方块,在直线右边的样本被分类为圆。如果把数据当作训练集,只要直线的一边只有一种类型的数据,就没有分类错误,我们的训练误差就会为0。
但是,对于一个数据集来说,让训练误差为0的决策边界可以有无数条。
在这里插入图片描述
但在此基础上,无法保证这条决策边界在未知数据集(测试集)上的表现也会优秀。对于现有的数据集来说,有B1和B2两条可能的决策边界。可以把决策边界B1向两边平移,直到碰到离这条决策边界最近的方块和圆圈后停下,形成两个新的超平面,分别是b11和b12,并且将原始的决策边界移动到b11和b12的中间,确保B1到b11和b12的距离相等。在b11和b12中间的距离,叫做B1这条决策边界的边际(margin),通常记作d
为了简便,我们称b11和b12为“虚线超平面”,在其他博客或教材中可能有着其他的称呼,但大家知道是这两个超平面是由原来的决策边界向两边移动,直到碰到距离原来的决策边界最近的样本后停下而形成的超平面就可以了。
对B2也执行同样的操作,然后对比一下两个决策边界。现在两条决策边界右边的数据都被判断为圆,左边的数据都被判断为方块,两条决策边界在现在的数据集上的训练误差都是0,没有一个样本被分错。
在这里插入图片描述
引入和原本的数据集相同分布的测试样本(红色所示),平面中的样本变多了,此时可以发现,对于B1而言,依然没有一个样本被分错,这条决策边界上的泛化误差也是0。但是对于而言,却有三个方块被误人类成了圆,二有两个圆被误分类成了方块,这条决策边界上的泛化误差就远远大于
了。这个例子表现出,拥有更大边际的决策边界在分类中的泛化误差更小,这一点可以由结构风险最小化定律来证明(SRM)。如果边际很小,则任何轻微扰动都会对决策边界的分类产生很大的影响。
边际很小的情况,是一种模型在训练集上表现很好,却在测试集上表现糟糕的情况,所以会“过拟合”。
所以我们在找寻决策边界的时候,希望边际越大越好。
在这里插入图片描述
支持向量机,就是通过找出边际最大的决策边界,对数据进行分类的分类器。也因此,支持向量分类器又叫做最大边际分类器。这个过程在二维平面中看起来十分简单,但将上述过程使用数学表达出来,就不是一件简单的事情了。

支持向量机原理的三层理解

目标是"找出边际最大的决策边界",听起来是一个十分熟悉的表达,这是一个最优化问题,而最优化问题往往和损失函数联系在一起。和逻辑回归中的过程一样,SVM也是通过最小化损失函数求解一个用于后续模型使用的重要信息:决策边界

SVM的第一层理解

在这里插入图片描述

SVM的第二层理解

在这里插入图片描述

SVM的第三层理解

能够使用数学完全证明以上两个过程。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值