支持向量机原理(二) 线性支持向量机的软间隔最大化模型

简介:

1. 线性分类SVM面临的问题

    有时候本来数据的确是可分的,也就是说可以用 线性分类SVM的学习方法来求解,但是却因为混入了异常点,导致不能线性可分,比如下图,本来数据是可以按下面的实线来做超平面分离的,可以由于一个橙色和一个蓝色的异常点导致我们没法按照上一篇线性支持向量机中的方法来分类。

    另外一种情况没有这么糟糕到不可分,但是会严重影响我们模型的泛化预测效果,比如下图,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。

    如何解决这些问题呢?SVM引入了软间隔最大化的方法来解决。

2. 线性分类SVM的软间隔最大化

    所谓的软间隔,是相对于硬间隔说的,我们可以认为上一篇线性分类SVM的学习方法属于硬间隔最大化。

    回顾下硬间隔最大化的条件:min12||w||22s.tyi(wTxi+b)1(i=1,2,...m)

    接着我们再看如何可以软间隔最大化呢?

    SVM对训练集里面的每个样本(xi,yi)引入了一个松弛变量ξi0,使函数间隔加上松弛变量大于等于1,也就是说:yi(wxi+b)1ξi

    对比硬间隔最大化,可以看到我们对样本到超平面的函数距离的要求放松了,之前是一定要大于等于1,现在只需要加上一个大于等于0的松弛变量能大于等于1就可以了。当然,松弛变量不能白加,这是有成本的,每一个松弛变量ξi, 对应了一个代价ξi,这个就得到了我们的软间隔最大化的SVM学习条件如下:min12||w||22+Cmi=1ξis.t.yi(wTxi+b)1ξi(i=1,2,...m)ξi0(i=1,2,...m)

    这里,C>0为惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。C越大,对误分类的惩罚越大,C越小,对误分类的惩罚越小。

    也就是说,我们希望12||w||22尽量小,误分类的点尽可能的少。C是协调两者关系的正则化惩罚系数。在实际应用中,需要调参来选择。

    这个目标函数的优化和上一篇的线性可分SVM的优化方式类似,我们下面就来看看怎么对线性分类SVM的软间隔最大化来进行学习优化。

3. 线性分类SVM的软间隔最大化目标函数的优化

    和线性可分SVM的优化方式类似,我们首先将软间隔最大化的约束问题用拉格朗日函数转化为无约束问题如下:L(w,b,ξ,α,μ)=12||w||22+Cmi=1ξimi=1αi[yi(wTxi+b)1+ξi]mi=1μiξi

    其中 μi0,αi0,均为拉格朗日系数。

    也就是说,我们现在要优化的目标函数是:minw,b,ξmaxαi0,μi0,L(w,b,α,ξ,μ)

    这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解如下:maxαi0,μi0,minw,b,ξL(w,b,α,ξ,μ)

    我们可以先求优化函数对于w,b,ξ的极小值, 接着再求拉格朗日乘子α和 μ的极大值。

    首先我们来求优化函数对于w,b,ξ的极小值,这个可以通过求偏导数求得:Lw=0w=mi=1αiyixiLb=0mi=1αiyi=0Lξ=0Cαiμi=0

    好了,我们可以利用上面的三个式子去消除wb了。

L(w,b,ξ,α,μ)=12||w||22+Cmi=1ξimi=1αi[yi(wTxi+b)1+ξi]mi=1μiξi =12||w||22mi=1αi[yi(wTxi+b)1+ξi]+mi=1αiξi=12||w||22mi=1αi[yi(wTxi+b)1]=12wTwmi=1αiyiwTximi=1αiyib+mi=1αi=12wTmi=1αiyiximi=1αiyiwTximi=1αiyib+mi=1αi=12wTmi=1αiyixiwTmi=1αiyiximi=1αiyib+mi=1αi=12wTmi=1αiyiximi=1αiyib+mi=1αi=12wTmi=1αiyixibmi=1αiyi+mi=1αi=12(mi=1αiyixi)T(mi=1αiyixi)bmi=1αiyi+mi=1αi=12mi=1αiyixTimi=1αiyixibmi=1αiyi+mi=1αi=12mi=1αiyixTimi=1αiyixi+mi=1αi=12mi=1,j=1αiyixTiαjyjxj+mi=1αi=mi=1αi12mi=1,j=1αiαjyiyjxTixj

    其中,(1)式到(2)式用到了Cαiμi=0, (2)式到(3)式合并了同类项,(3)式到(4)式用到了范数的定义||w||22=wTw, (4)式到(5)式用到了上面的w=mi=1αiyixi, (5)式到(6)式把和样本无关的wT提前,(6)式到(7)式合并了同类项,(7)式到(8)式把和样本无关的b提前,(8)式到(9)式继续用到w=mi=1αiyixi,(9)式到(10)式用到了向量的转置。由于常量的转置是其本身,所有只有向量xi被转置,(10)式到(11)式用到了上面的mi=1αiyi=0,(11)式到(12)式使用了(a+b+c+)(a+b+c+)=aa+ab+ac+ba+bb+bc+的乘法运算法则,(12)式到(13)式仅仅是位置的调整。

    仔细观察可以发现,这个式子和我们上一篇线性可分SVM的一样。唯一不一样的是约束条件。现在我们看看我们的优化目标的数学形式:maxαmi=1αi12mi=1,j=1αiαjyiyjxTixjs.t.mi=1αiyi=0Cαiμi=0αi0(i=1,2,...,m)μi0(i=1,2,...,m)

     对于Cαiμi=0αi0μi0这3个式子,我们可以消去μi,只留下αi,也就是说0αiC。 同时将优化目标函数变号,求极小值,如下:minα12mi=1,j=1αiαjyiyjxTixjmi=1αis.t.mi=1αiyi=00αiC

    这就是软间隔最大化时的线性可分SVM的优化目标形式,和上一篇的硬间隔最大化的线性可分SVM相比,我们仅仅是多了一个约束条件0αiC。我们依然可以通过SMO算法来求上式极小化时对应的α向量就可以求出wb了。

4. 软间隔最大化时的支持向量

    在硬间隔最大化时,支持向量比较简单,就是满足yi(wTxi+b)1=0就可以了。根据KKT条件中的对偶互补条件αi(yi(wTxi+b)1)=0,如果αi>0则有yi(wTxi+b)=1 即点在支持向量上,否则如果αi=0则有yi(wTxi+b)1,即样本在支持向量上或者已经被正确分类。

    在软间隔最大化时,则稍微复杂一些,因为我们对每个样本(xi,yi)引入了松弛变量ξi。我们从下图来研究软间隔最大化时支持向量的情况,第i个点到对应类别支持向量的距离为ξi||w||2。根据软间隔最大化时KKT条件中的对偶互补条件αi(yi(wTxi+b)1+ξi)=0我们有:

    a) 如果α=0,那么yi(wTxi+b)10,即样本在支持向量上或者已经被正确分类。如图中所有远离支持向量的点。

    b) 如果0αC,那么ξi=0,yi(wTxi+b)1=0,即点在支持向量上。如图中在虚线支持向量上的点。

    c) 如果α=C,说明这是一个可能比较异常的点,需要检查此时ξi

      i)如果0ξi1,那么点被正确分类,但是却在超平面和自己类别的支持向量之间。如图中的样本2和4.

      ii)如果ξi=1,那么点在分离超平面上,无法被正确分类。

      iii)如果ξi>1,那么点在超平面的另一侧,也就是说,这个点不能被正常分类。如图中的样本1和3.

     

5. 软间隔最大化的线性可分SVM的算法过程

    这里我们对软间隔最大化时的线性可分SVM的算法过程做一个总结。

    输入是线性可分的m个样本(x1,y1),(x2,y2),...,(xm,ym),,其中x为n维特征向量。y为二元输出,值为1,或者-1.

    输出是分离超平面的参数wb和分类决策函数。

    算法过程如下:

    1)选择一个惩罚系数C>0, 构造约束优化问题minα12mi=1,j=1αiαjyiyjxTixjmi=1αis.t.mi=1αiyi=00αiC

    2)用SMO算法求出上式最小时对应的α向量的值α向量.

    3) 计算w=mi=1αiyixi

    4) 找出所有的S个支持向量,即满足0<αs<C对应的样本(xs,ys),通过 ys(Si=1αiyixTixs+b)=1,计算出每个支持向量(xx,ys)对应的bs,计算出这些bs=ysSi=1αiyixTixs. 所有的bs对应的平均值即为最终的b=1SSi=1bs

     这样最终的分类超平面为:wx+b=0,最终的分类决策函数为:f(x)=sign(wx+b)

 

6. 合页损失函数

    线性支持向量机还有另外一种解释如下:minw,b[1yi(wx+b)]++λ||w||22

    其中L(y(wx+b))=[1yi(wx+b)]+称为合页损失函数(hinge loss function),下标+表示为:

[z]+={zz>00z0

    也就是说,如果点被正确分类,且函数间隔大于1,损失是0,否则损失是1y(wx+b),如下图中的绿线。我们在下图还可以看出其他各种模型损失和函数间隔的关系:对于0-1损失函数,如果正确分类,损失是0,误分类损失1, 如下图黑线,可见0-1损失函数是不可导的。对于感知机模型,感知机的损失函数是[yi(wx+b)]+,这样当样本被正确分类时,损失是0,误分类时,损失是yi(wx+b),如下图紫线。对于逻辑回归之类和最大熵模型对应的对数损失,损失函数是log[1+exp(y(wx+b))], 如下图红线所示。

     线性可分SVM通过软间隔最大化,可以解决线性数据集带有异常点时的分类处理,但是现实生活中的确有很多数据不是线性可分的,这些线性不可分的数据也不是去掉异常点就能处理这么简单。那么SVM怎么能处理中这样的情况呢?我们在下一篇就来讨论线性不可分SVM和核函数的原理。


本文转自刘建平Pinard博客园博客,原文链接:http://www.cnblogs.com/pinard/p/6100722.html,如需转载请自行联系原作者


相关文章
|
9天前
线性回归前特征离散化可简化模型、增强稳定性、选有意义特征、降低过拟合、提升计算效率及捕捉非线性关系。
【5月更文挑战第2天】线性回归前特征离散化可简化模型、增强稳定性、选有意义特征、降低过拟合、提升计算效率及捕捉非线性关系。但过多离散特征可能增加复杂度,丢失信息,影响模型泛化和精度。需谨慎平衡离散化利弊。
15 0
|
12天前
|
机器学习/深度学习 人工智能
SalUn:基于梯度权重显著性的机器反学习方法,实现图像分类和生成的精确反学习
【4月更文挑战第29天】SalUn是一种新的机器反学习方法,专注于图像分类和生成的精确反学习。通过关注权重的梯度显著性,SalUn能更准确、高效地从模型中移除特定数据影响,提高反学习精度并保持稳定性。适用于多种任务,包括图像生成,且在条件扩散模型中表现优越。但计算权重梯度的需求可能限制其在大规模模型的应用,且在数据高度相关时效果可能不理想。[链接](https://arxiv.org/abs/2310.12508)
17 1
|
24天前
|
缓存 并行计算 算法
【译】Based:简单线性注意力语言模型平衡召回-吞吐量权衡
【译】Based:简单线性注意力语言模型平衡召回-吞吐量权衡
17 3
|
23天前
|
机器学习/深度学习
HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率
HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率
|
2月前
|
机器学习/深度学习 资源调度 算法
深度学习模型数值稳定性——梯度衰减和梯度爆炸的说明
深度学习模型数值稳定性——梯度衰减和梯度爆炸的说明
22 0
|
10月前
|
机器学习/深度学习
采用附加动量法和自适应学习率设计来改进bp神经网络的迭代速度,如果不迭代学习率会提高精度;迭代学习率(自适应)会加快收敛,但精度降低(Matlab代码实现)
采用附加动量法和自适应学习率设计来改进bp神经网络的迭代速度,如果不迭代学习率会提高精度;迭代学习率(自适应)会加快收敛,但精度降低(Matlab代码实现)
|
机器学习/深度学习
SVM(二):软间隔与正则化
SVM(二):软间隔与正则化
SVM(二):软间隔与正则化
|
机器学习/深度学习 传感器 算法
【LSSVM回归预测】基于自适应粒子群优化最小支持向量机优化实现数据回归预测附matlab代码
【LSSVM回归预测】基于自适应粒子群优化最小支持向量机优化实现数据回归预测附matlab代码
|
机器学习/深度学习 算法
十一、神经网络的成本函数和误差反向传播算法
十一、神经网络的成本函数和误差反向传播算法
十一、神经网络的成本函数和误差反向传播算法
|
机器学习/深度学习 人工智能 BI
【机器学习】支持向量机(SVM)——软间隔线性不可分(理论+图解+公式推导)
【机器学习】支持向量机(SVM)——软间隔线性不可分(理论+图解+公式推导)
125 0
【机器学习】支持向量机(SVM)——软间隔线性不可分(理论+图解+公式推导)