支持向量机是目前机器学习的众多算法中使用得最为广泛的算法之一,本文主要介绍支持向量机的概念与原理。
目录
- 什么是支持向量机
- 硬间隔线性支持向量机
- 软间隔线性支持向量机
- 非线性支持向量机
一、什么是支持向量机
支持向量机(Support Vector Machine,简称SVM)是一种用来解决二分类问题的机器学习算法,它通过在样本空间中找到一个划分超平面,将不同类别的样本分开,同时使得两个点集到此平面的最小距离最大,两个点集中的边缘点到此平面的距离最大。如下图所示,图中有方形和圆形两类样本,支持向量机的目标就是找到一条直线,将圆形和方形分开,同时所有圆形和方形到这条直线的距离加起来的值最大。
上图中直线H和直线H3都可以将两类样本分开,但所有点到H的距离之和更大,所以H更适合我们的分类任务,距离H最近的几个样本点叫做支持向量。之所以选择距离最大的超平面是因为距离最大的超平面具有最好的泛化性能。
上面讨论的情况是一种理想中的情况,两个类别的样本之间存在着清晰的划分超平面,但我们在实际工作中处理的任务上并不一定都是这种清晰线性可分的,对于这种清晰线性可分的任务,我们学习一个线性分类器,也称为硬间隔支持向量机;当训练数据数据近似线性可分时,也学习一个线性的分类器,即软间隔支持向量机;当训练数据线性不可分时,我们可以通过使用核技巧及软间隔最大化,学习非线性支持向量机。
下面我们本着由简到繁的原则,对这三种支持向量机分别进行介绍。
二、硬间隔支持向量机
现有一个清晰线性可分的训练样本集D={(x1,y1),(x2,y2),…,(xm,ym)} yi∈{+1,−1}(i表示第i个样本,m表示样本容量),则划分超平面可通过如下线性方程来描述:
其中W为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被法向量w和位移b确定,下面我们将其记为(w,b)。样本空间中任意点x到超平面(w,b)的距离可写为
假设超平面能将训练样本正确分类,则令对于(xi,yi)有
如上图所示,距离超平面最近的几个训练样本点使上式的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为
为使r最大,则w需取最小,所以求r的最大值等价于求下式的最小值
这是一个凸函数&#x