【SVM笔记系列之五】软间隔线性支持向量机

在以前的文章中,我们介绍了支持向量机的基本表达式,那是基于硬间隔线性支持向量机的,即是假设数据是完全线性可分的,在数据是近似线性可分的时候,我们不能继续使用硬间隔SVM了,而是需要采用软间隔SVM,在这里我们简单介绍下软间隔线性支持向量机。

前言

在以前的文章中,我们介绍了支持向量机的基本表达式,那是基于硬间隔线性支持向量机的,即是假设数据是完全线性可分的,在数据是近似线性可分的时候,我们不能继续使用硬间隔SVM了,而是需要采用软间隔SVM,在这里我们简单介绍下软间隔线性支持向量机。本人无专业的数学学习背景,只能在直观的角度上解释这个问题,如果有数学专业的朋友,还望不吝赐教。 如有误,请联系指正。转载请注明出处。

联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:机器学习杂货铺3号店


软间隔最大化

在文章《SVM的拉格朗日函数表示以及其对偶问题》《SVM支持向量机的目的和起源》中,我们推导了SVM的基本公式,那时的基本假设之一就是数据是完全线性可分的,即是总是存在一个超平面可以将数据完美的分开,但是正如我们在《SVM的拉格朗日函数表示以及其对偶问题》中最后结尾所说的:

但是,在现实生活中的数据往往是或本身就是非线性可分但是近似线性可分的,或是线性可分但是具有噪声的,以上两种情况都会导致在现实应用中,硬间隔线性支持向量机变得不再实用

因此,我们引入了软间隔线性支持向量机这个概念,硬间隔软间隔的区别如下图所示:

我们的解决方案很简单,就是在软间隔SVM中,我们的分类超平面既要能够尽可能地将数据类别分对,又要使得支持向量到超平面的间隔尽可能地小。具体来说,因为线性不可分意味着某些样本点不能满足函数间隔大于等于1的条件,即是。解决方案就是通过对每一个样本点引入一个松弛变量,对于那些不满足约束条件的样本点,使得函数间隔加上松弛变量之后大于等于1,于是我们的约束条件就变为了: 图像表示如: 超平面两侧对称的虚线为支持向量,支持向量到超平面的间隔为1。在硬间隔SVM中本应该是在虚线内侧没有任何的样本点的,而在软间隔SVM中,因为不是完全的线性可分,所以虚线内侧存在有样本点,通过向每一个在虚线内侧的样本点添加松弛变量,将这些样本点搬移到支持向量虚线上。而本身就是在虚线外的样本点的松弛变量则可以设为0。 于是,给每一个松弛变量赋予一个代价,我们的目标函数就变成了: 其中称为惩罚参数,C值大的时候对误分类的惩罚增大,C值小的时候对误分类的惩罚减小,有两层含义:使得尽量小即是间隔尽可能大,同时使得误分类的数量尽量小,C是调和两者的系数。 于是我们的软间隔SVM的问题可以描述为:   表述为标准形式:  


软间隔SVM的拉格朗日函数表述和对偶问题

我们采用《SVM的拉格朗日函数表示以及其对偶问题》中介绍过的相似的方法,将得到其对偶问题。过程如下: 将转换为其拉格朗日函数形式: 原问题可以表述为(具体移步《最优化问题的对偶问题》): 得到其对偶问题为: 我们先求对偶问题,根据KKT条件(具体移步《拉格朗日乘数法和KKT条件的直观解释》),我们有:

整理得到: 代入,有: 所以问题变为: 表述为最小化问题:  

通过将可以化为:   对比文章《SVM的拉格朗日函数表示以及其对偶问题》中的硬间隔SVM的最终的表达式:

不难发现软间隔SVM只是在对拉格朗日乘子的约束上加上了一个上界。 我们以后都会利用求解,接下来我们在SMO算法中,也将对式子进行求解。


引用

  1. 《SVM的拉格朗日函数表示以及其对偶问题》 CSDN

  2. 《SVM支持向量机的目的和起源》 CSDN

  3. 《最优化问题的对偶问题》 CSDN

  4. 《拉格朗日乘数法和KKT条件的直观解释》 CSDN

  5. 《统计学习方法》 豆瓣