1 原理
1) 背景
线性可分支持向量机基于硬间隔最大化,所谓硬间隔最大化,我理解的就是指这个间隔最大化是被严格要求的,不允许任何例外的样本点跨过间隔边界,因此这种方法是不适用于线性不可分数据的,因为约束条件是不能完全成立的,这样一来线性可分支持向量机的适用性就大大降低了,因此我们需要线性支持向量机和软间隔最大化。
2) 原理
首先我们需要定义这里的线性不可分的含义,这里的线性不可分并不是指完全的线性不可分,而是指一批训练数据中有少部分的异常点,如果剔除这些异常点,剩下的大部分训练数据是线性可分的,即相当于是本来线性可分的数据中加入了一些噪音,噪音可能产生下图两种负面影响:
根据背景中的分析我们知道,对于这样的数据,线性可分支持向量机的问题是约束太“硬”,太严格,数据无法满足,那么如果我们把约束放宽松一点呢?我们把约束变为:
式中,是松弛变量,顾名思义它将约束条件变得宽松了,这样那些异常点也可以满足约束了,但是其会比较大,也就是要多“宽松”一些,如下图所示,松弛变量表示了异常点到间隔边界的函数间隔:
问题是,约束变得宽松了怎么能保证分类的效果呢?要知道支持向量机的优势就是其严格的约束使得分类超平面与两个类别间隔最大且相等,为了弥补约束放松的缺点,引入“代价”,即放松了多少约束,就有承受多大的代价,因此目标函数变为:
式中,是惩罚参数,越大对异常点的惩罚越大,约束越严格,的具体取值由实际应用决定。这里的目标函数既要使尽量小即间隔尽量大,又要使满足约束的样本尽量多即误分类点尽量少,这两个目标使互相矛盾的,由来控制二者的强弱关系。
综上所述,对于有噪音的线性不可分数据,我们选择放松其约束,相对于基于严格约束的硬间隔最大化来说,这种做法称为软间隔最大化,解决这种线性不可分数据的分类问题,基于软间隔最大化的支持向量机称为线性支持向量机(看名字也能感受到线性支持向量机应该包含线性可分支持向量机,线性可分支持向量机是松弛变量都为0的线性支持向量机特例)。
线性支持向量机模型:
为决策超平面,线性支持向量机看起来与线性可分支持向量机一样,只是在决策超平面的计算思路上有些不同。
2 支持向量机模型求解
1)目标函数
2)转化为对偶问题
转化过程与线性可分支持向量机是一样的,首先是拉格朗日乘子法:
目标函数的优化转变为:
通过拉格朗日对偶将其转化为等价的对偶问题:
通过求导求里面的极小值部分:
代入原式可得:
以上这些推导的每个步骤处理的原理就不细说了,想弄明白的话可以看上一篇线性可分支持向量机
完全是关于参数的函数,因此:
转化为:
与线性可分支持向量机基本上是一样的,只是约束不同,求出上式取得极小值时对应的向量就可以求出和了,这里同样需要用到SMO算法来求。
3)线性支持向量机的算法过程
- 输入:样本,为维特征向量,;
- 输出:,支持向量机模型。
- 确定惩罚系数,确定目标函数:
- 使用SMO优化目标函数,得到对应的;
- 根据找到样本中的共k个支持向量,计算参数:
- 得到支持向量机模型。
注意:
(1)第三步计算参数的公式
这里的求b公式看起来跟线性可分支持向量是一样的,其实是有区别的,在上一篇中我们说过线性可分支持向量机的是存在且唯一的,而线性支持向量机的不唯一,正是因为这里的是考虑了松弛变量的,实际上求出来,这就是为什么值有多个,因为不同支持向量的是不相等的。
(2)第三步需要找的样本中的支持向量,怎么判断样本点是不是支持向量呢?
我们知道,所谓支持向量,就是最靠近分类超平面的,能够影响我们确定分类超平面的样本点。
我们从代数上理解,在计算超平面参数 的那个式子可知,只要使的样本点就会对超平面参数 产生影响,即为支持向量,由KKT条件知,,故此时,KKT条件中还有一条,所以可知:
- 时,,故,支持向量不需要松弛变量,即支持向量在间隔边界上,如下图;
- 时,,故,支持向量在间隔边界上之外,如果,则支持向量还在分类边界与间隔边界之间,还可以被正确分类,如下图;如果,则到了分类边界另一侧,被错误分类了,如下图。
3 从合页损失函数理解线性支持向量机
以上我们讨论的支持向量机的目标函数都是从间隔最大化的角度来理解的,我们还可以通过合页损失函数的角度来理解其目标函数:
式中,是经验风险,成为称为合页损失函数(hinge loss function);是L2范数表示的结构风险,也就是正则项。损失函数在样本点被正确分类且函数间隔大于1时值为0,否则损失函数值为,这个值是大于0的。
在下图中,绿色的函数即为合页损失函数,因为其形状像一个合页,故名为合页损失函数。下图中还可以看出其他多种模型损失和函数间隔的关系:
- 对于0-1损失函数,如果正确分类,损失是0,误分类损失1, 如下图黑线,可见0-1损失函数是不可导的;
- 对于感知机模型,感知机的损失函数是,这样当样本被正确分类时,损失是0,误分类时,损失是,如下图紫线;
- 对于逻辑回归和最大熵模型对应的对数损失,损失函数是, 如下图红线所示:
*图像来自博客刘建平Pinard
4 线性支持向量机小结
线性支持向量机通过软间隔最大化的方式,处理因噪声导致的线性不可分数据的分类问题,究其根本,只是在线性可分数据基础上做了一点妥协,并不是真的可以处理线性不可分数据的分类问题,对于真的非线性可分的问题,应该怎么办呢?我们接下来看看基于核函数的非线性支持向量机。
主要参考
《统计学习方法》李航
刘建平Pinard