一、硬间隔支持向量机
1.基于线性可分训练集D找到一个划分超平面,使超平面能够将不同类别样本分开。
2.对于不同类别样本,令,仅有几个距离超平面最近的点使得等号成立。通过先调整b能使得超平面恰好在两个异类支持向量各产生一个平行超平面中间。取只是为了后面方便计算,其他常量也可以,只是相当于按比例放缩w和b,因为是依据w、b优化间隔最大,所以w、b的放缩对整体不影响。
于是两个异类支持向量到超平面的距离之和为,被称为间隔。
3.目标:最大化间隔,目标函数:,等价于。
这就是SVM原始问题。
4.对基本型使用拉格朗日乘子法:得到拉格朗日函数:。
该拉格朗日函数对w和b进行求导并等于0,得到:,。
对偶问题就是(根据拉格朗日对偶性):。
再将上面求导结果带入,可得对偶问题:,
5.解出后,求出w和b即可得到模型:
根据拉格朗日对偶性定理,对满足原始问题和对偶问题中的和x,需要满足KKT条件:
可以发现:对任意的训练样本,总有或,若,则不会在求和求w中出现,也就不会对有任何影响,若,则必有,所对应的样本点在最大间隔上,是一个支持向量。这显示支持向量机的一个重要属性:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。(此步和求解最终结果无关)
6.具体求解对偶问题。这是一个二次规划问题,使用SMO高效算法来求解。
SMO不断执行如下两个步骤直至收敛:
1.选取一对需要更新的变量
2.固定以外的参数,求解4中对偶问题等式方程。
选取时的技巧:使选取两变量所对应样本之间的间隔最大,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对它们更新会带给目标函数更大的变化。
具体:约束可重写为:,其中
再用消去对偶问题方程中的,则得到一个关于变量的单变量二次规划问题,这样的二次规划具有闭式解,可高效计算出更新后的。
7.w的确定:把求出的带入可求出
b的确定:注意到对任意的支持向量都有,即,其中S为支持向量集。可根据使用所有支持向量求解平均值:。
二、核函数
前面的求解基于一个最基本的条件:训练数据集线性可分。
但当数据集并非线性可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间中线性可分。根据定理:如果原始空间是有限维,那么一定存在一个高维空间使得样本可分。
令表示将x映射后的特征向量,则在特征空间中划分超平面所对应的模型表示为:
类似地,SVM基本型问题:
对偶问题:
直接计算通常比较困难,可设想这样一个函数:,这个函数就是核函数,这种处理叫做核技巧。将向量内积的计算转换为一个函数式的计算,简化计算复杂性。
求解后可得到:
下面核函数的选择成为了支持向量机的最大变数,常用的核函数有:
高斯核也称为RBF核函数(径向基和函数)
此外,核函数也可以通过组合得到:
1.若是核函数,则对于任意的正数,其线性组合:也是核函数。
2.若是核函数,则核函数的直积也是核函数。
3.若是核函数,则对于任意的函数,也是核函数。
三、软间隔支持向量机
在现实任务中往往很难弄确定合适的核函数使得训练样本在特征空间中线性可分,即是确定了某个核函数,也很难确定这个线性可分的结果是否是由于过拟合造成的,因此:允许支持向量机在一些样本上出错,即引入软间隔,使得某些样本不满足约束:.
注:软支持向量机使用的是hinge损失:
1.即可引入一个松弛变量,使得函数间隔加上松弛变量大于等于1,约束条件就变为
同时对每个松弛变量,要支付一定的代价,SVM原始问题就变为:
2.将原始问题转化为拉格朗日函数:
其中是拉格朗日乘子。
拉格朗日函数对求偏导得零,可得:
3.将上述偏导为0的条件带入拉格朗日函数中,即可得到对偶问题:
注:小于等于C是从求偏导第三个式子和得到。
4.对于软间隔支持向量机,KKT条件为:
KKT条件说明:
1.若,则对应的该样本对f(x)没有影响。
2.若,则必有,则该样本是支持向量(只要不满足的点都是支持向量):
若,则,进而有,则该样本恰在最大间隔边界上。
若,则,此时若,则该样本落在最大间隔内部,若,则该样本被错误分类。