上一篇总结了对于训练数据集线性可分的理想情况下,使用硬间隔最大化训练得到分类超平面的SVM方法,这种方法在实际应用中并不实用,因为实际的训练数据总是会存在人为或不可控的因素干扰产生各种噪声,因此是无法在特征空间下找到线性可分的超平面的,但是噪声总是有限的,可以对硬间隔这个限制进行放松,引入一个松弛变量来控制分类超平面的训练,从而可以对近似可以线性可分的实际应用数据进行学习和预测。从这里也可以很明显的看出虽然前文所述的硬间隔最大化SVM太过理想,实际应用不理想,但是正是这种理想化的抽象,才能引出本文的近似线性可分的SVM模型,这里也彰显了数学模型的抽象的作用,以及在研究实际的复杂问题时善于进行抽象总结最后再向实际推广的思路,非常值得我们进行学习和借鉴。
软间隔最大化的SVM
训练数据集T中存在噪声导致无法找到线性可分的超平面,但是这些噪声只是少量的,如果不考虑他们的干扰,那么剩下的绝大部分数据是线性可分的。如下图所示
图中的红色分类平面两侧分别有2个圆点类别和1个方框类别的点,这几个特殊的噪声使得整个数据集已经无法使用线性可分的超平面模型了,但是从数据集的分布上可以看出绝大多数是位于红色分界线两侧的,因此需要引入一个量来表征这种实际情形,那就是松弛变量。
松弛变量
在前文的线性可分的条件下,对每个样本点(xi,yi)到分类超平面w?x+b=0的距离约束添加一个松弛变量ξi,得到如下的约束条件:
yi(w?xi+b)≥1?ξiξi≥0,i=1,2,...N
对于可以被超平面分开的绝大多数样本点上述的松弛变量等于0,也就是不需要松弛和“让步”;但是对于个别无法线性分开的样本点,通过使用松弛变量
ξi来做出“让步”,从而将这些数据点也能通过线性的超平面来分隔,这就是用数学模型上的修正来模拟现实情况下的噪声,使得模型具有更好的
鲁棒性。
修正的模型
根据前一篇博文的分析,训练软间隔SVM模型的优化目标函数任然是间隔最大化,因此依然是12||w||22;但是由于引入了松弛变量,对于样本点的松弛变量不为0时,表示该样本点没有被超平面分隔开来,那么这个样本点的松弛变量实际上就代表了误分了这个样本点的程度,因此我们的目标函数需要同时最小化误分类样本个数才对,因此修正后的软间隔最大化的SVM模型如下:
minw,b,ξ12||w||22+C∑i=1Nξis.t.yi(w?xi+b)≥1?ξi,i=1,2...Nξi≥0,i=1,2...N
其中的
C∑Ni=1ξi就是误分类的样本点的一个表征,目标是要最小化误分类样本点数目,同时要间隔最大化。常数
C>0是对误分类样本点的惩罚参数,对于给定的应用,如果误分类的后果很严重(例如将病毒软件误分类为正常软件),那么就要增大这个系数来增大惩罚;反之,误分类并不太重要,那么这个系数就可以相应减小,使得惩罚减小。
上述线性不可分的SVM和上一篇博文介绍的线性可分SVM统称为线性支持向量机,因为他们最终学习到最优参数
w?和
b?之后,都可以得到分类的决策函数
f(x)=sign(w??x+b?)。
模型训练
上述优化问题与线性可分SVM的求解方法相同,使用Language函数的极大极小问题。原始问题的Language函数是
L(w,b,ξ,λ,μ)=12||w||22+C∑i=1Nξi?∑i=1Nλi(yi(wxi+b)?1+ξi)?∑i=1Nμiξiλi≥0,μi≥0,i=1,2,...N
使用同样的方式,可以首先求得对
w、b、ξ的极小
?wL=0,?bL=0,?ξL=0
得到如下的条件:
w=∑i=1Nλiyixi∑i=1Nλiyi=0C?λi?μi=0
将上述条件带入原始Language函数,对最优化问题进行变换,利用等式
C?λi?μi=0消去
μi,从而只留下
λi
maxλL=12∑i=1N∑j=1Nλiλjyiyj(xi?xj)?∑i=1Nλiyi(∑j=1N)λjyjxj)xi?∑i=1Nλiyib+∑i=1Nλi+∑i=1N(C?λi?μi)ξi=maxλ?12∑i=1N∑j=1Nλiλjyiyj(xi?xj)+∑i=1Nλis.t.∑i=1Nλiyi=0C?λi?μi=0λi≥0μi≥0i=1,2...N
约束条件里面也可以消去
μi,从而可以得到最终的目标函数和约束条件如下:
maxλ?12∑i=1N∑j=1Nλiλjyiyj(xi?xj)+∑i=1Nλis.t.∑i=1Nλiyi=00≤λi≤C
通过对上述约束优化问题求最大值即可得到最优的
λ?,从而可以得到最优的
w?、b?
w?=∑i=1Nλ?yixib?=yj?∑i=1Nλ?yixi?xj
这样可以看出,所有的问题最终都归结了对偶问题的最优化,与上一篇博文中的线性可分SVM的求解是一样的。
模型的另一种解释
按照统计学习的三要素,软间隔最大化的SVM模型是判别式模型,学习到的是一个决策函数,对未知样本进行预测。学习的策略是结构风险最小化,其中使用的损失函数是如下的称为合页损失函数
f(x)=[x]+={0,x, if x≤0 if x>0
结构风险最小化如下形式的函数:
minw,b∑i=1N[1?yi(w?xi+b)]++λ||w||22
前一项就是使用合页损失函数时的经验风险函数,后一项就是正则化项,其中的
λ为正则化项的系数。使用合页损失函数说明在样本被正确分类且函数间隔
yi(wxi+b)大于1时,损失为0;否则损失为
1?yi(wxi+b)。这是对二类分类问题真正的0-1损失函数的一种近似,这种合页损失是0-1损失的上界。
可以对上述结构风险最小化进行变换,使用
1?yi(wxi+b)=ξi,ξi≥0
也就是将合页损失不为0的部分选出来用
ξi表示,那么代换得到
minw,b∑i=1Nξi+λ||w||22ξi≥0,i=1,2...N
其中的
λ是常数,因此如果取
λ=12C,则有
minw,b∑i=1Nξi+12C||w||22=minw,b1C(12||w||22+C∑i=1Nξi)
常数系数对最终最优解没有影响,因此上述结构风险最小化与软间隔最大化是等价的。