模型:
(1)原始模型:
(2)对偶问题的模型:
策略:
(1)最优化问题:
求解最优解w和b
(2)对偶最优化问题:
求解再由求解出w,b
算法:
见下文
支持向量机解决二分类问题。
支持向量机包括:线性可分支持向量机、线性支持向量机、非线性支持向量机。
线性可分支持向量机只能区分线性可分的数据集,使用硬间隔最大化的方式确定模型。
线性支持向量机可以区分近似线性可分的数据集,使用软间隔最大化的方式确定模型。
非线性支持向量机可以使用核函数将数据映射到非线性特征空间,实现非线性的分割。
线性可分直线向量机和感知机的区别:
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。 感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
这里的间隔最大化又称为硬间隔最大化。
1、模型
2、策略
我们的策略是最大化间隔,就是不但要像感知机一样把所有点都正确分开,还要和点的间隔尽可能大。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大 的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例 点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新 实例有很好的分类预测能力。
//===============预备知识======================//
设任一数据点到超平面的距离的函数间隔为:
其中距离最小的点的距离为:
几何间隔即为:
其中距离最小的点的距离为:
所以几何间隔和函数间隔的关系是:
//======================================//
所以我们最大化间隔的策略可以描述成:
式7.9,意思是通过确定参数w和b的值,使距离超平面最近的点min ri也尽可能的远离分割平面,即max min ri
当然约束条件7.10就是所有的点到平面的距离显然都要大于这个最小几何距离。
由于:
所以上面可写成:
又由于是函数间距。
假设将w和b按比例改变为aw,ab,这时函数间隔变为ar,所以我们可以使a=1/r,这样就可以使间隔固定为1,w/r和b/r还是记作w和b没有影响。
这样把约束优化问题的式子变为这样:
最终将求解的最优化问题变为了上面的式子。这是一个凸二次规划问题。
//================补充================//
//====================================//
3、算法
补充:
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持 向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解 是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型 称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本 确定。
//=========================================================//
上面的原始形式优化问题难以求解,所以介绍对偶形式。
原始问题是:
先优化求出max L(w,b,a) = f(w,b) ,确定了之后函数式中只剩下w,b。再求min f(w,b),求出最优的参数w和b。
对偶问题是:
先优化w,b 求出min L(w,b,a) = f(a) ,确定了w,b之后函数式中只剩下。再求max f(a),求出最优的参数a。
而a和w,b的关系式子可以得到,所以就通过求解a来得到模型的解w,b。这样对偶问题和原始问题的结果是等价的。
//==========================================//
关于对偶问题和原始问题可以看另一篇文章:
//======================//=================//
因此对偶问题就变成了求解以下优化问题:
等价于求min a
因此对比一下:原始问题需要求解a,p,w对偶问题只需要求解a,p。更简单了
有如下定理,这里不证明了:
有了用a表示的w,b,可以将分离超平面
因此对偶问题下的分类模型可写成:
综上所述,对于给定的线性可分训练数据集,可以首先求对偶问题的解a*;再利用公式求得原始问题的解w*,b*;从而得到分离 超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法,是线性可分 支持向量机学习的基本算法。
算法:
因为约束条件是ai>=0,所以所有样本点的系数ai=0的点对结果没有影响。
第(2)步计算b*的意思是,从系数ai中选择一个大于0的数据点,也就是其中的一个支持向量当做(xj,yj)代入式子得到b*.
所有a*>0的点是支持向量,才对决策函数有影响,其他数据点没有影响。