支持向量机(二)----线性可分支持向量机和硬间隔最大化
问题引入:现假设我们想在圆点“。”和“x”之间修一条水渠,水渠使得两类点位于水渠两侧,并且使得水渠能够做到最宽,显然满足这样条件的水渠(如图2)是唯一的。通过什么方法找到呢?现在我们将其还原到机器学习中,此问题即为一个分类问题,也就是线性支持向量机的目标:找到分离超平面使得其里两类样本点中最近的两类样本点之间的间隔最大;
图1-注:此图的来源为李航统计学习方法 图2
问1:为什么要间隔最大?
我们以上图中的A,B,C点(同一类别)为了,假如说我们的分离超平面已经找到如上图,A点离分离超平面的距离最远,此时我们将此点判定为正例的确信度就高一些,而C点离分离超平面最近,故将其判定为正例的确信度就低一些,那么就可以利用样本点到超平面的间隔来衡量预测某一样本点为某一类别的确信度,我们希望其越大越好,这样便解释了为什么我们希望间隔最大。
问2:如何定量衡量此间隔?
定义超平面方程为:wx + b = 0 (注意这里的w和x都表示向量)
函数间隔
将任意一个样本点的坐标代入上述超平面方程|wx + b| 就能够相对的表示此样本点距离超平面的远近,如上图2分离超平面以上的点为正例我们可以用一个变量y=1来标识,分离超平面以下的点为负例,我们可以用y = -1来标识,这样y(wx+b) 即可以表示我们预测的确信度,亦可以表示预测的准确性(因为负例中的点代入代入超平面方程恒负,正例中的点代入超平面方程恒正)y(wx+b)即为函数间隔。具体定义如下:
对于给定的训练数据集T和超平面(w,b)定义超平面(w,b)关于样本点(xi,yi)的函数间隔为:yi*(wxi+b)
函数间隔的局限性:如果成比例的改变w和b,如将他们改成2w和2b超平面并没有改变,但是函数间隔却变成的原来的2倍,如果||w||=1 则此时间隔就确定和,此时的函数间隔即为几何间隔。
几何间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的集合间隔为:
问3:如何使得间隔最大?
假设数据集为T = {x1,x2,x3 ......xn},
每个数据集所对应的类别 y1,y2,y3......yn yn 属于{-1,1}
对于上述(1)式可以理解为:先假定有一个超平面(w,b)首先找到两个样本点中距离超平面最近的样本点(即就是先确定xn)然后优化w和b使得间隔最大
(1)式中即为我们之前定义的函数间隔,对于同一个超平面(w,b)我们现在所有样本点中找能够使得函数间隔最小的样本点,我们可以指定对于所有样本点其到超平面的函数间隔均满足如下限制条件:
特别说明:这里为什么我们要指定大于等于1,而不是其他的值呢?问2中我们定义了函数间隔,对于函数间隔当我们成比列的改变w和b时,函数间隔也在成比例变化,而超平面方程未发生变化,几何间隔未发生变化。所以说此处指定不等式大于等于任何一个大于零的书意义都是相同的,这里我们指定为大于等于1还能简化运算
有了上式(2)的限制后,我们分别在两类样本点中去找到使得函数间隔最小的那个样本点,并使其满足函数间隔为1。并且我们将满足函数间隔为1的样本点称为支持向量(如下图所示)。
引用《李航-统计学习方法》一书中对支持向量的定义:在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector),支持向量是使得(2)式等号成立的点。
注意支持向量所在的两个超平面平行,并且没有实例点落在他们中间。二分离超平面与它们平行且位于它们中央。两个支持向量所在的超平面之间的距离成为间隔。间隔依赖于超平面的法向量w,等于2/||w||
将(2)式代入(1)式可得:
将(3)式的求极大值问题转化成为求解极小值的问题,可以得到新的目标函数:注意1/2以及构造平方项均是为了求导计算方便
新的目标函数是求解条件极值的问题,完整表达式如下:
对于上述条件极值问题的求解,需构建拉格朗日函数如下:
求解上式(6)的极小值即为,即为(5)的极小值。
构建上述Lagrange函数的对偶问题,在支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)中我们已经介绍了对偶函数的作用,此处通过Lagrange对偶函数将原问题求极小值的问题转换成为了对偶问题求最大值的问题,即g(α)的最大值即为原问题的最小值。
对上述(6)式进行化简,并将(7)(8)代入可得:
我们对上述(9)两边同乘-1,将求解极大值的问题转换为求解极小值的问题入下:
综上所述我们将原目标函数式(5)求解极小值的问题转换成了上述式(10)求解极小值的问题,转换过程如下图所示:
在支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)中我们已经讨论了使得原问题的解与对偶问题的解等价的条件(KKT)条件,那么由KKT条件值,要使上式中的问题等价还需满足下述条件:
问4:如何得到使得间隔最大超平面方程(ω,b)
在问3中我们已将原问题的求解转换成为了求解对偶函数的-g(α)最小值的问题,对于-g(α)最小值的求解,要用大序列最小最优化算法SMO,可以参考
这里我们假设我们已近求解出使得-g(α)取得最小值的α*,则由问3中的式(7)我们即可得到:
对于b*的求解,我们在问3中已知样本点中的支持向量(xi,yi)使得下述等式成立
如何在样本点中找到支持向量呢?由问(3)中的式(11)我们可知当αi = 0时,,此时这样本点均不在超平面上,而当αi >= 0时,,也就是说αi >= 0所对应的样本点均是支持向量。当然这也支持向量所对应的样本点并不一定是唯一的,在线性可分的样本点中,所有的支持向量所对应的b*值都是唯一且相同的。
综上我们便由α*计算除了ω*和b*