支持向量机(一)线性可分的支持向量机与硬间隔最大化

        支持向量机其实和感知机的模型思想挺相似的,都是找出一个分离超平面对数据进行二分类。它是定义在特征空间上的间隔最大的线性分类器,这个间隔最大化使它区别于感知机;感知机通过迭代算法找出的分离超平面可以是不唯一的,但是支持向量机由于有最大化间隔的限制,即所有的支持向量点到分离超平面的距离之和是最大的,所以它的分离超平面是唯一的;实际上支持向量机还有核技巧,即数据本来是非线性可分的,但是通过映射(核技巧)将其转化为线性可分,所以它也是个非线性分类器。

        感知机必须对线性可分的数据集有效,但是支持向量机不仅对线性可分的数据有效,也对线性不可分的数据有效;其可以分为三种情况:

  1. 当数据线性可分的时候,通过硬间隔最大化产生线性可分的支持向量机,也叫硬间隔支持向量机)。
  2. 当数据线性近似可分的时候,通过软件各最大化产生线性支持向量机,也叫软件各支持向量机。
  3. 当数据线性不可分的时候,通过核技巧即软件各最大化,学习非线性支持向量机。

    我们这里先介绍线性可分的支持向量机。

  1. 函数间隔

        对于线性可分的支持向量机,我们需要找出一个超平面(对于二维的数据就是一条直线),将所以的数据点分开,就如下图所示:

                                                             支持向量机(一)线性可分的支持向量机与硬间隔最大化

        中间的那条直线,就是我们需要求的直线L:支持向量机(一)线性可分的支持向量机与硬间隔最大化。对于点xi,如果wxi+b>0,则我们可以判断点在直线的上方,如果wxi+b<0则我们可以判断点在直线的下方,其中|wxi+b|可以相对的表示点到直线的远近,越远我们就可以认为对这个分类结果越确信。其中wx+b的符号与类标记y的符号是否一致能够表示分类是否正确。假设对于对于所有的样本点(xi,yi)都分类正确,则yi的符号和wxi+b的符号是相同的yi(wxi+b)>0,否则是相反的yi(wxi+b)<0,所以我们可以用支持向量机(一)线性可分的支持向量机与硬间隔最大化来表示分类的正确性以及确信度,这就是函数间隔的概念。

定义超平面支持向量机(一)线性可分的支持向量机与硬间隔最大化关于样本点(xi,yi)的函数间隔为:

                                                           支持向量机(一)线性可分的支持向量机与硬间隔最大化

对于直线ωx+b=0我们将ω和b同时扩大n倍,直线本身是不会变的,但是带入函数间隔公式我们发现函数间隔也扩大了n倍,所以说对于同一个点,同一条直线,衡量标准不同,函数间隔也就不同,那么计算起来就麻烦了;所以我们需要对直线做些限制,规范化||ω||=1,就是令ω的第二范式等于1。先得到下面公式:

                                        支持向量机(一)线性可分的支持向量机与硬间隔最大化

2.几何间隔及间隔最大化

        机器学习中我们常用距离衡量样本之间的关系;我们这篇内容主要是说的硬间隔最大化,这个间隔也就是几何间隔,换到这里也就是点到直线的距离。

                支持向量机(一)线性可分的支持向量机与硬间隔最大化

        公式2是我们熟悉的点到超平面的距离公式。反看公式1,在线性可分的情况下,支持向量机(一)线性可分的支持向量机与硬间隔最大化是恒大于0的,而yi只是起到了符号的作用,所以得出下列公式:

                    支持向量机(一)线性可分的支持向量机与硬间隔最大化

        即函数间隔和几何间隔的关系,如果||ω||=1,那么函数间隔等于几何间隔。

        间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类,也就是说,不仅将正负实例分开,而且对最难分的实例点(里超平面最近的点)也有足够大的确信度将其分卡,这样的超平面应该对为止的新实例有很好的分类预测能力。

        下面我们给出最大间隔分离超平面的约束最优化问题:

         支持向量机(一)线性可分的支持向量机与硬间隔最大化,

       条件:支持向量机(一)线性可分的支持向量机与硬间隔最大化,

第一个表达式表示我们希望最大化超平面(ω,b)关于训练数据集的集合间隔γ,条件表示这个集合间隔最少是γ。考虑到几何间隔和函数间隔之间的关系,即公式3,将约束问题修改为下列形式:

            支持向量机(一)线性可分的支持向量机与硬间隔最大化,

            条件:支持向量机(一)线性可分的支持向量机与硬间隔最大化,

        支持向量机(一)线性可分的支持向量机与硬间隔最大化是函数间隔,通过1中的函数间隔的介绍,我们知道,函数间隔是受w和b影响的,即同时扩大多少倍,函数间隔也是扩大多少倍的,但是将其除以一个||w||后这个成以的倍数就被约掉了,所以说上面公式4的最后话问题是不受影响的,也就是说不管函数间隔怎么变,几何间隔是不受影响的,那么我们也可以把函数间隔设为一个固定的值1,从而可以大大简化我们的模型以及计算。那我们的目标就成了最大化支持向量机(一)线性可分的支持向量机与硬间隔最大化,考虑到后面计算的问题,将其转化为更加一般的形式,其等价于最小化支持向量机(一)线性可分的支持向量机与硬间隔最大化,所以我们得到了最终的最优化约束问题:

   支持向量机(一)线性可分的支持向量机与硬间隔最大化

条件:支持向量机(一)线性可分的支持向量机与硬间隔最大化,

        这个是个凸二次规划的问题,我们就可以用拉格朗日乘子法进行计算了。

3.学习对偶算法

        对于这个凸二次规划的问题,我们需要运用拉格朗日对偶性通过拉格朗日乘子法进行计算。我们首先需要构建拉格朗日函数,首先需要引入拉格朗日乘子,由于yi和xi是n个,所以我们需要引入n个乘子,得到拉格朗日函数:

                                          支持向量机(一)线性可分的支持向量机与硬间隔最大化

        原始问题是极小极大问题即支持向量机(一)线性可分的支持向量机与硬间隔最大化,将其转化为其对偶问题,即极大极小问题支持向量机(一)线性可分的支持向量机与硬间隔最大化,然后分别对w和b求导,并且令导数等于0得:

支持向量机(一)线性可分的支持向量机与硬间隔最大化

        然后将上式带入拉格朗日乘子法得出来的式子得:

                                                         支持向量机(一)线性可分的支持向量机与硬间隔最大化

       求其对应的α的最大问题:

                                                       支持向量机(一)线性可分的支持向量机与硬间隔最大化

        将其转化为求最小值的问题,即与之等价的对偶问题:

                                支持向量机(一)线性可分的支持向量机与硬间隔最大化

                               条件:支持向量机(一)线性可分的支持向量机与硬间隔最大化,

                                         支持向量机(一)线性可分的支持向量机与硬间隔最大化

        到目前为止我们已经构建了约束的最优解问题,接下来就是要求解了。给出其学习算法,只是一个思路:

                                        支持向量机(一)线性可分的支持向量机与硬间隔最大化

    求得了w和b,也就得到了我们的分离超平面,然后我们就可以进行分类了。

4.支持向量

        最后说这个支持向量什么含义,先看图:

                                                     支持向量机(一)线性可分的支持向量机与硬间隔最大化

        决定分离超平面时只有支持向量起作用,而其它实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界外移动其它实例点,甚至去掉这些点,解是不会改变的。由于支持向量在确定分离超平面中起着决定新作用,所以讲这种分类模型成为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。

        怎么理解上面的话,首先我们的条件中α是大于0的。从上图中我么可以看到,支持向量距离分类超平面的距离为支持向量机(一)线性可分的支持向量机与硬间隔最大化,这个ω是我们最终求的最优的结果,换个思路说,这个距离是是支持向量到分离超平面的距离,和其他点是没有关系的,不管你的其他点怎么变,只要这些支持向量不变,这个距离是不变的,也就是最终的结果是不变的,所以说ω和b值依赖于训练数据中对应α>0的点,其他是没有影响的,而α的条件时大于等于0,所以最终结果是非支持向量的拉格朗日乘子αi都是等于0的。