支持向量机SVM
支持向量机SVM是一种二分类模型,它不仅可以对线性可分数据集进行分类,还可对非线性数据集进行分类。线性可分SVM和线性SVM假设输入空间数据与特征空间数据一一对应,而非线性SVM则需要通过一个非线性映射将输入空间中非线性数据转映射特征空间中线性可分数据。给定一个数据集
其中
1. 线性可分SVM
线性SVM算法的学习目标是在特征空间中寻找一个最优分离超平面,该分离超平面能将数据集中的正负样本分类到分离超平面的两侧。我们知道当数据集线性可分的时候,存在无穷多个分离超平面可将正负样本正确分开。感知机是通过极小化误分类样本到分离超平面的距离来求解分离超平面,但是这样的分离超平面有无穷多个。而线性可分SVM通过间隔最大化求解的分离超平面不仅能将正负样本正确分开,而且能以最大的置信度将其分开,此时的分离超平面是唯一的。
分离超平面方程定义如下
其中
其中
1.1 函数间隔与几何间隔
通常情况下,一个样本到分离超平面的距离可以近似的度量分类预测的置信度。对于(1)式的超平面,
1.2 间隔最大化
SVM学习的基本想法是求解能够正确划分训练集且几何间隔最大的分离超平面,对于线性可分SVM来说此时的几何间隔也称为硬间隔。最大化几何间隔的直观解释为:对训练集寻找几何间隔最大的分离超平面意味着以充分大的置信度对训练集进行分类,不仅要将正负样本正确分开,而且对最难分类的样本(比如距离超平面最近的样本)也要有足够大的置信度将其分开。
求解几何间隔最大的分离超平面可以表示为如下约束优化问题
其中
前面我们讨论过成比例的改变
其中
和分类决策函数
1.3 支持向量
在线性可分的情况下,训练集中与分离超平面距离最近的样本称为支持向量,支持向量是使约束条件(9)等号成立的样本。即
对于
上,对于
上,如上图所示,
实际上在决定分离超平面时只有支持向量起作用,其它样本并不起作用,如果移动支持向量将会改变分离超平面,如果移动间隔边界以外的其它样本甚至删除这些样本都不会改变超平面。所以在确定分离超平面时支持向量起着决定性的作用。
2. 线性SVM
对于线性不可分训练集,线性可分SVM不再适用,此时我们需要扩展线性可分SVM.
2.1 原始问题
线性不可分意味着存在某些样本
对每一个松弛变量
其中
其中
2.2 对偶问题
在约束优化问题中,可通过拉格朗日对偶将原问题转换为对偶问题,对偶问题的解也即为原问题的解。对于如下原始约束问题
其中
其中
对于线性SVM原始约束问题(10)(11)(12)我们得到其拉格朗日对偶形式如下
我们首先求解
令导数等于0,我们得到
将(17)(18)(19)代入到
我们然后求解
显然由(22)(23)(24)我们可以得到
再对(20)式取负号可将求极大值转换为求极小值,从而有
其中
2.3 KKT条件
对于(13)式原始问题,(14)式不等式约束,(15)式等式约束,我们得到其拉格朗日对偶形式(16)式,由不等式约束和等式约束我们得到如下KKT条件
所以我们可以知道(10)(11)(12)以及其对偶形式
2.4 支持向量
为方便讨论我们把(22)(27)和KKT条件统一整理如下
由(28)(29)(30)我们可以知道当
软间隔支持向量
- 当
时,,,此时支持向量恰好落在间隔边界上
- 当
时,,但是可能取任何值
- 当
时,支持向量在间隔边界与分离超平面之间
- 当
时,支持向量落在分离超平面上
- 当
时,支持向量位于超平面误分的一侧
- 当
3. 非线性SVM与核技巧
线性SVM可以有效地解决线性分类问题,但是对于非线性分类问题则需要用到核技巧。核技巧的做法是先通过一个非线性变换将输入空间中的数据映射到特征空间中,然后在特征空间中学习线性SVM模型。
3.1 核函数定义
设
使得对所有的
则称
3.2 常见核函数
线性核函数
多项式核函数
高斯核函数
Sigmoid核函数
其中
3.3 Kernel SVM
通过核技巧我们从线性SVM优化问题(25)(26)(27)得到非线性SVM优化问题
其中
4. SMO
序列最小最优化算法(SMO)是高效求解SVM算法参数的优化算法。SMO算法的求解过程是不断的将原问题分解为子问题,子问题全都求解完成时原问题也就求解完成。子问题的求解方法是选择两个变量,固定其它变量,针对这两个变量构建一个二次规划问题,我们求解这个二次规划问题的解的目标是要保证所求的解能够使原问题的函数值下降。子问题的这两个变量,一个是违反KKT条件最严重的,另一个由约束条件(36)式确定。不妨假设
4.1 两个变量二次规划求解
我们不妨假设
其中
假设(38)(39)的初始可行解为
- 当
异号时,位于直线上,如下图所示
由(39)式约束我们有
- 当
时(左上那条直线)
- 当
时(右下那条直线)
联立以上各式可得
- 当
同号时,位于直线上,如下图所示
由(39)式约束我们有
- 当
时(右上那条直线)
- 当
时(左下那条直线)
联立以上各式得得
我们假设
当
将(42)式代入(38)式可得
由(39)式和
将(44)代入(43)式可得
对
令导数为0得
由(39)式约束我们知道
令
我们知道
由
4.2 两个变量选择
SMO算法在每个子问题中选择两个变量进行优化,其中至少有一个变量是违反KKT条件的。
4.2.1 选择第一个变量
第一个变量选择的过程也称为外层循环,外层循环在训练样本中选取违反KKT条件最严重的样本,并将其对应的变量作为第一个变量。具体地检验训练样本
其中
在检验过程中,外层循环先遍历所有满足条件
4.2.2 选择第二个变量
第二个变量的选择过程也称为内层循环。假设外层循环已经找到第一个变量
由(49)式我们知道
如果内层循环通过上述方法选择的
4.2.3 参数更新
在每次完成两个变量的优化后都要更新
代入
由(41)式我们有
调整(54)式中表达式的位置我们有
将(55)式代入(53)式我们得到
当
如果
在每次完成两个变量优化后还需要更新
其中