SVM 是一种二类分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器(间隔最大区别于感知机,使用误分类最小策略求得超平面),SVM 还可以通过核函数来求解非线性模型。
SVM 的学习策略是间隔最大化,学习算法是求解凸二次规划的最优化算法。SVM 由简到繁的模型如下:
- 线性可分支持向量机(硬间隔)
- 线性支持向量机(软间隔)
- 非线性支持向量机(核方法)
1. 线性可分SVM与硬间隔最大化
考虑一个二分类问题,假设输入空间与特征空间为两个不同空间,输入空间为欧氏空间或离散集合,特征空间在欧氏空间或希尔伯特空间。SVM 则将输入空间映射到特征空间,线性可分SVM 将两个空间的元素一一对应,非线性 SVM 通过一个非线性映射将输入空间映射到特征空间中。SVM 的学习是在特征空间上进行的。
给定一个特征空间上的训练数据集
其中 是 x 的类标记
1.1 定义
给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分类超平面为
以及相应的分类决策函数
称为线性可分支持向量机。
1.2 函数间隔与几何间隔
一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。
1.2.1 函数间隔
对于给定训练数据集 T 和超平面 ,定义超平面关于样本点 的函数间隔为
定义超平面关于训练数据集 T 的函数间隔为超平面关于 T 中所有样本点的函数间隔最小值
函数间隔可以表示分类预测的正确性及确信程度,但不足以用来作为选择分离超平面的判断依据,因为随着 的成比例变动,函数间隔也会改变。因此需要对超平面的系数 w 做一定的限制来使得间隔是确定的,此时的间隔就是几何间隔。
1.2.2 几何间隔
对于给定训练数据集 T 和超平面 ,定义超平面关于样本点 的几何间隔为
定义超平面关于训练数据集 T 的几何间隔为超平面关于 T 中所有样本点的几何间隔最小值
可以看出,函数间隔与几何间隔的关系如下:
1.3 间隔最大化
1.3.1 公式推导
SVM 的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,对线性可分的训练数据集而言,线性可分分离超平面有无数多个,而几何间隔最大的分离超平面是唯一的。此时的间隔最大化又称作硬间隔最大化。
间隔最大化的直观解释是,几何间隔最大的超平面意味着以充分大的确信度对训练数据分类。几何间隔最大的分离超平面可以表示为如下的约束最优化问题:
也就是希望最大化超平面关于数据集的几何间隔 ,且约束条件是所有的样本点到超平面的距离都
考虑到几何间隔和函数间隔的关系,可以将上式转化为
注意到,函数间隔 的取值并不会影响最优化问题的解,因为对于成比例改变的系数,函数间隔也会随之改变,对不同的函数间隔值,优化问题等价。因此可以取 ,且注意到最大化 与最小化 是等价的,因此可以将上式转化为:
由此得到一个凸二次规划问题。
综上,可以得到下面的线性可分支持向量的学习算法:最大间隔法。
1.3.2 最大间隔法算法流程
输入:线性可分训练数据集 T
输出:最大间隔分离超平面和分类决策函数
- 构造并求解约束最优化问题,公式见上一节,求得最优解
- 得到分离超平面 和决策函数
1.3.3 支持向量和间隔边界
将支持向量定义为训练数据集的样本点中与分离超平面距离最近的样本点的实例,也就是说支持向量是使约束条件式成立的点:
对于 的正例点,支持向量在超平面
对于 的负例点,支持向量在超平面
在 H1 和 H2 上的点就是支持向量。
注意到 H1 和 H2 平行,分离超平面与它们平行且位于它们中央,H1 和 H2 之间的距离称作间隔,间隔依赖于分离超平面的法向量,间隔值为:
H1,H2 又称间隔边界。
在决定分离超平面时只有支持向量起作用,其它实例点不起作用,因此这种分类模型又称支持向量机。支持向量个数一般很少,所有支持向量机由很少的重要样本决定。
1.4 对偶形式
为求解线性可分支持向量机的最优化问题,将它作为原始优化问题,应用拉格朗日对偶性通过求解对偶问题得到原始问题的最优解,即线性可分支持向量机的对偶算法。
首先构建拉格朗日函数,对每一个不等式约束引进拉格朗日乘子 ,定义拉格朗日函数如下:
其中,为拉格朗日乘子向量。
根据拉个朗日对偶性,原始问题的对偶问题是极大极小问题
因此,求解对偶问题可以转化为两个步骤,求解 L 对 w ,b 的极小,再求对 a 的极大。
(1) 求
将 L 分别对 求偏导并令其等于 0 得到
进而得到:
将上式带入 L,得到
(2) 求 对 的极大,即是对偶问题
设 是对偶最优化问题的解,则存在下标 j ,使得 ,并可以按如下式子求得原始最优化问题的解:
由此可以得到分离超平面:
分类决策函数为
也就是说,分类决策函数只依赖于输入 x 和训练样本输入的内积,上式决策函数称为线性可分支持向量机的对偶形式。
1.4.1 算法流程
输入:线性可分训练集 T
输出:分离超平面和分类决策函数
- 构造并求解约束最优化问题,公式见上一小节,得到最优解
- 计算 ,选择一个正分量 ,计算
- 求得分离超平面和分类决策函数,公式见上一小节
1.4.2 支持向量
由上可以看出,最优解的值只依赖于训练数据中对应于 的点 ,其它样本点对最优解的取值没有影响,因此将使 的点 称为支持向量。
2. 线性支持向量机与软间隔最大化
2.1 原理
对线性不可分的训练数据集,第一节方法中的不等约束不能都成立,因此需要将硬间隔最大化修改为软间隔最大化。
假设训练数据集不是线性可分的,通常是训练数据集中有一些特异点,将这些特异点去除后剩下大部分的样本点组成的集合是线性可分的,对此为每个样本点引入一个松弛变量 ,使得函数间隔加上松弛变量后满足约束不等式:
引入了松弛变量的同时,也要支付代价,则目标函数变成
C > 0 称作惩罚参数。 C 越大,对误分类的惩罚越大,C 越小,对误分类的惩罚越小。最小化目标函数包含两个含义:尽量增大间隔和使误分类点的个数尽量小。
由此,SVM 可转化成如下的凸二次规划问题:
该问题的解是存在的,但是 b 的解可能不唯一,存在于一个区间内。求解该问题得到的包含超平面和决策函数的模型,称为线性支持向量机。
2.2 对偶算法
2.2.1 原理
由第一小节的问题得到的拉格朗日函数是:
其中 。与之前类似,首先求解关于 的极小,得到:
代回原式,得到
再对 求极大:
将上述的条件转化一下消去 ,只留下 ,可以将后三个约束改成
再将对目标函数取负号,由求极大问题转化成求绩效问题,可以得到如下对偶问题:
设 是上述公式的一个解,则由该解可以得到分离超平面:
和分类决策函数:
2.2.2 算法流程
输入:训练数据集 T
输出:分离超平面和分类决策函数
- 选择惩罚函数 C > 0 ,构造并求解凸二次规划问题,公式见 2.2.1,得到
- 计算 ,公式见 1.4
- 计算分离超平面和分类决策函数,公式见 2.2.1
2.3 支持向量
在线性不可分的情况下,将对偶问题的解 中对应于 的样本点 的实例称作支持向量。实例 到间隔边界的距离为 。
软间隔的支持向量有可能在边界上、间隔边界与超平面之间或者超平面误分一侧。
- ,则 ,支持向量恰好在间隔边界上
- ,则分类正确,实例在间隔边界与超平面之间
- ,则实例在分离超平面上
- ,则实例被误分类