文章目录

  • 1 线性可分支持向量机
  • 2 函数间隔和几何间隔
  • 3 间隔最大化
  • 4 学习的对偶算法



GitHub


简书


1 线性可分支持向量机

支持向量机(Support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化,同时该方法可以形式化为一个求解图二次规划。

支持向量机可分为三类:

  1. 线性可分支持向量机、硬间隔(hard-margin svm)
  2. 线性支持向量机、软间隔(soft-margin svm)
  3. 非线性支持向量机、Kernel SVM

支持向量机模型中存在三宝:

  1. 间隔
  2. 对偶
  3. 核技巧

支持向量机和感知机在某些方面很相似,其相同点:

  1. 都是二分类模型
  2. 都是通过一个分离超平面对特征进行分类

不同点:

  1. SVM 是特殊的感知机
  2. 感知机是用误分类最小的策略,求得分离超平面,这时存在无穷个解,感知机利用间隔最大化求得最优分离超平面。如下图所示

支持向量机分类数据 支持向量机类型_数据集


图1 感知机与支持向量机区别

图中的蓝色和黄色圆点分别表示正负样本,对于这个二分类,从图中我们可知,在最上面的黄线和最下面的绿线之间的线条都是可以把训练样本集完全分开的,这就是感知机的原理,通过这些分离超平面把训练集分开,这样的分离超平面存在很多条,比如图中的虚线,从视觉上中间那条实线应该是众多线条中最优的一条,感知机对于学习的分离超平面由于优化算法、学习率等不同因素,会随机地学习到这众多分离超平面中的一条,当学习到的是靠近上下边缘的分离超平面是,对于一个未知样本,当这个样本稍微浮动一下,模型就很可能对他进行误分类了,因此鲁棒性很低,而支持向量机的目标是找到图中中间那条最优的分离超平面。

定义(线性可分支持向量机):给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到一个分离超平面:

支持向量机分类数据 支持向量机类型_支持向量机_02
即相应的决策模型: 此模型就为线性可分支持向量机。其中 $ w^*$ 表示分离超平面的法向量, 支持向量机分类数据 支持向量机类型_感知机_03

2 函数间隔和几何间隔

一般来说,一个点到分离超平面的远近可以表示分类预测的确信程度,在给定分离超平面支持向量机分类数据 支持向量机类型_数据集_04的情况下, 支持向量机分类数据 支持向量机类型_支持向量机分类数据_05能够相对地表示点 支持向量机分类数据 支持向量机类型_感知机_06 到分离超平面的远近。同时 支持向量机分类数据 支持向量机类型_感知机_07的符号与类别标记 支持向量机分类数据 支持向量机类型_感知机_08 是否保持一致来表示分类是否正确,所以,可以用支持向量机分类数据 支持向量机类型_支持向量机_09

定义(函数间隔):对于给定训练数据集 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 和超平面 支持向量机分类数据 支持向量机类型_支持向量机_11,定义超平面 支持向量机分类数据 支持向量机类型_支持向量机_11 关于样本点 支持向量机分类数据 支持向量机类型_支持向量机分类数据_13

支持向量机分类数据 支持向量机类型_支持向量机分类数据_14

分离超平面关于训练数据集 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 的函数间隔为超平面关于 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 中所有样本点 支持向量机分类数据 支持向量机类型_支持向量机分类数据_13

支持向量机分类数据 支持向量机类型_感知机_18

上述定义是在给定超平面 支持向量机分类数据 支持向量机类型_感知机_19 的时候计算,然而在实际支持向量机的学习过程中,只有函数间隔是不够的,因为当 支持向量机分类数据 支持向量机类型_感知机_20支持向量机分类数据 支持向量机类型_支持向量机_21 按比例同时扩大 支持向量机分类数据 支持向量机类型_数据集_22 倍,此时函数间隔也扩大 支持向量机分类数据 支持向量机类型_数据集_22 倍,而超平面并没有改变。因此我们需要对分离超平面加以约束,如规范化,支持向量机分类数据 支持向量机类型_支持向量机分类数据_24,使得间隔不随 支持向量机分类数据 支持向量机类型_感知机_20支持向量机分类数据 支持向量机类型_支持向量机_21

定义(几何间隔):对于给定训练数据集 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 和超平面 支持向量机分类数据 支持向量机类型_支持向量机_11,定义超平面 支持向量机分类数据 支持向量机类型_支持向量机_11 关于样本点 支持向量机分类数据 支持向量机类型_支持向量机分类数据_13

支持向量机分类数据 支持向量机类型_数据集_31

分离超平面关于训练数据集 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 的函数间隔为超平面关于 支持向量机分类数据 支持向量机类型_支持向量机分类数据_10 中所有样本点 支持向量机分类数据 支持向量机类型_支持向量机分类数据_13

支持向量机分类数据 支持向量机类型_支持向量机分类数据_35

支持向量机分类数据 支持向量机类型_数据集_36支持向量机分类数据 支持向量机类型_感知机_20支持向量机分类数据 支持向量机类型_感知机_38

通过公式4和公式6的比较,我们可以得出函数间隔和几何间隔有如下关系:

支持向量机分类数据 支持向量机类型_数据集_39

3 间隔最大化

支持向量机学习的基本思想是求解能够正确划分训练数据集几何间隔最大的分离超平面。间隔最大化的直观解释是:使分类决策模型以较大的确信度来对数据集分类,同时对离超平面较近的点也有很大的确信度。

因此,最大间隔支持向量机形式化为:

支持向量机分类数据 支持向量机类型_感知机_40

也即:

支持向量机分类数据 支持向量机类型_支持向量机分类数据_41

我们得知函数间隔支持向量机分类数据 支持向量机类型_数据集_42的取值并不影响模型的最优化问题,将 支持向量机分类数据 支持向量机类型_感知机_20支持向量机分类数据 支持向量机类型_支持向量机_21 成比例的改变 支持向量机分类数据 支持向量机类型_支持向量机分类数据_45 倍,函数间隔也变成 支持向量机分类数据 支持向量机类型_支持向量机分类数据_46,这一改变对上面最优化的不等式约束并没有印象,因此,我们可以令 支持向量机分类数据 支持向量机类型_数据集_47,于是上述公式就等价于:

支持向量机分类数据 支持向量机类型_支持向量机分类数据_48

此时,SVM优化问题变为一个凸二次规划问题,利用拉格朗日乘子法即可求出最优的 支持向量机分类数据 支持向量机类型_支持向量机_49

4 学习的对偶算法

为求解支持向量机的最优化问题,我们将公式10作为原始问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是支持向量机的对偶算法。这样做的优点:

  1. 对偶问题往往更容易求解;
  2. 自然引入核函数,进而推广到非线性可分分类问题;

通过对公式10的约束条件引入拉格朗日乘子支持向量机分类数据 支持向量机类型_支持向量机分类数据_50,构建出拉格朗日函数:

支持向量机分类数据 支持向量机类型_支持向量机分类数据_51

我们称公式10为带约束的原始问题,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题
支持向量机分类数据 支持向量机类型_感知机_52

公式12和原始公式存在一种弱对偶关系,当等号成立时为强对偶关系:

支持向量机分类数据 支持向量机类型_感知机_53

此时我们就可以按照利用拉格朗日对偶性求解问题的标准模型,求解出支持向量机分类数据 支持向量机类型_数据集_54.

  1. 支持向量机分类数据 支持向量机类型_感知机_55
    将拉格朗日函数 支持向量机分类数据 支持向量机类型_支持向量机_56 分别对 支持向量机分类数据 支持向量机类型_支持向量机_57求偏导,并令其值为0.

支持向量机分类数据 支持向量机类型_支持向量机分类数据_58

支持向量机分类数据 支持向量机类型_支持向量机_59

将公式14和15带入公式11得:

支持向量机分类数据 支持向量机类型_感知机_60

  1. **求 支持向量机分类数据 支持向量机类型_支持向量机_61**对 支持向量机分类数据 支持向量机类型_支持向量机分类数据_62

支持向量机分类数据 支持向量机类型_感知机_63

将上式转化为求极小值

支持向量机分类数据 支持向量机类型_感知机_64

上式可以继续利用凸二次规划来求解 支持向量机分类数据 支持向量机类型_感知机_65,然后可由支持向量机分类数据 支持向量机类型_支持向量机_66求得原始问题对 支持向量机分类数据 支持向量机类型_感知机_19 的解 支持向量机分类数据 支持向量机类型_支持向量机分类数据_68

定理支持向量机分类数据 支持向量机类型_感知机_65 是对偶问题(即公式18)的解,则存在下标 支持向量机分类数据 支持向量机类型_感知机_70,使得 支持向量机分类数据 支持向量机类型_感知机_71,并按如下公式求得支持向量机分类数据 支持向量机类型_支持向量机分类数据_68

支持向量机分类数据 支持向量机类型_数据集_73

支持向量机分类数据 支持向量机类型_数据集_74

证明
根据拉格朗日某定理,KKT条件成立,即:

支持向量机分类数据 支持向量机类型_感知机_75

此时,公式13具有强对偶关系,即等号成立。根据支持向量机的特点,至少存在一个 支持向量机分类数据 支持向量机类型_感知机_76,即对于支持向量(后面讲解),对此j有

支持向量机分类数据 支持向量机类型_数据集_77

由于 支持向量机分类数据 支持向量机类型_数据集_78 为1或-1,上式两边同乘以一个 支持向量机分类数据 支持向量机类型_支持向量机_79

支持向量机分类数据 支持向量机类型_支持向量机分类数据_80

从上面的推导我们可以看出,支持向量机分类数据 支持向量机类型_支持向量机_81支持向量机分类数据 支持向量机类型_感知机_03只依赖于训练数据中对应于 的样本点 支持向量机分类数据 支持向量机类型_感知机_83,而其他样本点对 支持向量机分类数据 支持向量机类型_支持向量机_81支持向量机分类数据 支持向量机类型_感知机_03 没有印象,我们把这些

文中绘图源码