SVM——线性可分 SVM 原理
线性可分和超平面
二分类问题
二分类问题就是:给定的各个样本数据分别属于两个类质疑,而目标是确定新数据点将归属到哪个类中。
在机器学习的应用中,至少现阶段,分类是一个非常常见的需求,特别是二分类,它是一切分类的基础,而且很多情况下,多分类问题都可以转化为二分类问题来解决。
特征的向量空间模型
具体的样本在被机器学习算法处理时,由其特征来表示,换言之每个现实世界的事物,再用来进行机器学习训练或预测时,需要转化为一个特征向量。
假设样本的特征向量为n维,那么我们说这些样本的特征向量处在n维的特种空间中。一般来说,特征空间可以是欧式空间,也可以是希尔伯特空间,不过便于理解,都是用欧式空间。
当我们把一个n维向量表达在一个n维欧式空间的时候,可以想象一个个向量对应该空间中的一个个点。举个例子,把若干样本的特征向量放到特征空间里去,就好像在这个n维空间中撒了一把豆子,当n=1时,这些豆子是一条直线上的若干点;当n=2时,这些豆子是平面上的若干点……
线性可分
选取特征的目的:将一个事物的某些属性数字化,再映射为特征空间中的点,其目的是为了对其进行计算。
比如特征向量是2维,下图中红蓝两色点都是样本的特征向量,红色是正类,蓝色是负类:
这两类样本很显然可以被一条线分割开(如下图),这就是两类样本在其特征空间里线性可分。
线性可分的数学定义:和是n维欧式空间的两个点集,如果存在n维向量 和实数 ,使得所有属于 的点 都有 ,而对于所有属于 的点 则有 。我们称和线性可分。
超平面
上述将和完全正确地划分开的,就是超平面(Hyperplane)。
超平面: n维欧式空间中维度等于n-1的线性子空间。如:1维欧氏空间(直线)中的超平面为0维(点),2维欧氏空间中的超平面为1维(直线);3维欧氏空间中的超平面为2维(平面);以此类推。
在数学意义上,将现行可分的样本用超平面分隔开的分类模型,叫线性分类器(线性分类模型)。可以想象,在一个样本特征向量线性可分的特征空间里,可能有许多超平面可以把两类样本分开,在这种情况下,我们要寻找的是最佳超平面。
最佳超平面判断标准: 以最大间隔把两类样本分开的超平面,是最佳超平面(也叫最大间隔超平面):
- 两类样本分别分割在该超平面的两侧;
- 两侧距离超平面最近的样本点到超平面的距离被最大化。
线性可分支持向量机
找到最大间隔超平面
线性可分支持向量机 :以找出线性可分的样本在特征空间中最大间隔超平面为学习目的的分类模型。
具体过程:先找到两个平行的,能够分离正负例的辅助超平面,然后将他们分别推向正负例两侧,使得他们之间的距离尽可能大,一直到有至少一个正样本或负样本通过对应的辅助超平面为止——推到无法再推,再推就“过界”为止,如图:
这两个超平面互相平行,它们范围内的区域称为“间隔”,最大间隔超平面位于这两个辅助超平面正中的位置且与它们平行的超平面(绿色)
用直线表示这两条直线:
蓝色:——————————————(1)
红色:——————————————(2)
设,绿线:——(3)
然后带入(2),然后将(1)两侧同时减去,(2)两侧同时加:
设,,,则:
符号说明
用来训练线性可分支持向量机(Support Vector Machine,SVM)的样本记作:
其中,为n维实向量,而的取值要么是1,要么是-1,,为的标签,当时,为正例;当时,为负例。
我们要找将上面m个样本完整正确地分隔为正负两类的最大间隔超平面:,这个超平面由其法向量w和截距b确定,可用(w,b)表示。
这m个样本在特征空间是线性可分的,因此我们可以找到两个将正负两类样本分离到距离尽可能大的超平面,它们分别是:(超平面1)和(超平面2)
通过几何不能得到这两个超平面之间的距离:,因此要使两平面间的距离最大,我们需要最小化
附的推导过程:
设,,,则超平面1又可以表示为:,超平面2可以表示为:
因为有:,则:
以为,所以:
又因为,所以:
学习目标
依据定义,我们知道样本数据需满足下列两个条件之一:
若,则;
若,则;
也就是说没有样本点在超平面1和超平面2中间,且所有点都在正确的那一侧。将上式合并就是
,也就是说,我们要最小化是有约束条件的:
因此,求最大分割超平面问题其实是一个约束条件下的最优化问题:
为了后面好算,我们用;来代替,并将约束条件变一下形式:
这就是支持向量机的学习目标,其中是目标函数,我们要对它最优化。但是不能用梯度下降法来优化,梯度下降法是优化没有约束条件问题的算法。此处要用拉格朗日乘子法(见系列笔记9~)