版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34072381/article/details/83993444
前言
由上节,线性可分SVM的学习模型为
ω,bmins.t.21∣∣ω∣∣21−yi(ω⋅xi+b)≤0
对于不可分数据集(少量数据不可分),由于约束条件不再成立,不能使用以上线性可分SVM的模型。为此,引入松弛变量
ξi≥0,使得函数间隔加上松弛变量后的不小于1,从而建立起线性不可分数据集的学习模型。
本节主要介绍线性不可分数据集的模型建立、求解,以及等价形式。
基于软间隔最大化的线性SVM
模型描述
数据集
T={(x1,y1),⋯,(xN,yN)},
xi∈X=Rn,
yi∈Y={+1,−1}。
xi为实例特征向量,
yi为实例类别,
T线性不可分。通常情况下,数据集中有少部分特异点,去除特异点的数据集线性可分。
模型建立
软间隔与正则化
软间隔指允许某些样本不满足函数间隔大于等于1的约束;正则化指在最大化间隔的同时,使不满足约束的样本尽可能少,记为
ω,bmin21∣∣ω∣∣2+Ci=1∑Nℓ0/1(yi(ω⋅xi+b)−1)
式中
ℓ0/1为0/1损失函数,即当样本分类正确,函数值为0;当样本分类错误,函数值为1。
C为大于0的乘法参数,即当
C趋于无穷时,迫使所有样本均满足约束;取有限值时,允许一些样本不满足约束。
函数
ℓ0/1非连续可导,不利用优化求解。常用的替代损失函数有合页损失、指数损失以及对率损失,即
ℓhinge(z)=max(0,1−z),ℓexp(z)=exp(−z),ℓlog(z)=log(1+exp(−z))
图1 三种常见的替代损失函数:合页损失、指数损失、对率损失
若采用合页损失
ℓhinge(yi(ω⋅xi+b),即函数间隔大于1时无损失、小于1时有损失,得软间隔优化问题
ω,bmin21∣∣ω∣∣2+Ci=1∑Nmax(0,1−yi(ω⋅xi+b))
引入松弛变量
ξi=max(0,1−yi(ω⋅xi+b)),则当
ξi>0,
ξi=1−yi(ω⋅xi+b);当
ξi=0,
yi(ω⋅xi+b)≥1。因此,
yi(ω⋅xi+b)≥1−ξi始终成立,得软间隔优化问题
ω,bmins.t.21∣∣ω∣∣2+Ci=1∑Nξiyi(ω⋅xi+b)≥1−ξiξi≥0
解约束方程得
(ω∗,b∗),求得分离超平面
ω∗⋅x+b∗=0,决策函数
f(x)=sign(ω∗⋅x+b∗)。
逻辑回归与线性SVM
若使用对率几率损失替代0/1损失,则软间隔优化问题
ω,bmin21∣∣ω∣∣2+Ci=1∑Nlog(1+exp(1−yi(ω⋅xi+b)))
可见上述软间隔SVM与逻辑回归(使用L2正则化)优化目标相近,通常性能也基本一致。对率回归的输出具有自然的概率意义,而SVM不做处理时,输出不具有概率意义。此外对率回归能直接用于多分类,SVM需加以推广。由于合页损失函数有平坦的零区域,使得支持向量机的解具有稀疏性,具有支持向量的概念,计算开销较小。
更一般的损失替代形式为
fminΩ(f)+Ci=1∑mℓ(f(xi),yi)
式中,第一项为结构风险,第二项为经验风险。
学习的对偶算法
极值问题求解与对偶理论详见:https://blog.csdn.net/sinat_34072381/article/details/83685964
引入拉格朗日辅助函数
L(ω,b,ξ,α,μ)=21∣∣ω∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(ω⋅xi+b)−1+ξi)−i=1∑Nμiξi
由拉格朗日对偶理论,以及原始问题的凸规划性,得原始问题的对偶问题(满足特定条件)
α,μmaxω,b,ξminL(ω,b,ξ,α,μ),s.t.α≥0; μ≥0
对偶算法求步骤:
(I) 固定
α,μ,通过
ω,b,ξminL(ω,b,ξ,α,μ)求
ω,b,ξ
对
L(ω,b,ξ,α,μ)分别求
ω,b,ξi的偏导,并令其为0,得
∇wL(ω,b,ξ,α,μ)=ω−i=1∑Nαiyixi=0∇bL(ω,b,ξ,α,μ)=−i=1∑Nαiyi=0∇ξiL(ω,b,ξ,α,μ)=C−αi−μi=0
将
ω=i=1∑Nαiyixi,
i=1∑Nαiyi=0,带入对偶方程得
ω,b,ξminL(ω,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
(II)再求
ω,b,ξminL(ω,b,ξ,α,μ)对
α的极大,等价于求
−ω,b,ξminL(ω,b,ξ,α,μ)对
α的极小
根据步骤
I的结果,对偶问题转化为
αmins.t,21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=0C−αi−μi=0αi≥0μi≥0,i=1,2,⋯,N
消去
μi得
αmins.t,21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
求解约束方程得到拉格朗日乘子最优解(SMO算法后续文章介绍),
α∗=(α1∗,α2∗,⋯,αN∗)T,且
α∗̸=0。
(III) 求
ω∗和
b∗,以及模型决策函数。
若存在
α∗的分量
αj∗,满足
0<αj∗<C,则对偶问题(原始问题)的解为
ω∗=i=1∑Nαi∗yixib∗=yj−i=1∑Nαi∗yi(xi⋅xj)
现实任务中,采用鲁棒性的做法求解
b值,即
b=∣S∣1s∈S∑(ys−i∈S∑αiyixi⋅xs),其中
S为支持向量集合。
为什么线性SVM的
b值不唯一?
略
易验证所求解
ω∗,b∗满足KKT条件
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∇ωL(ω∗,b∗,ξ∗,α∗,μ∗)=ω∗−i=1∑Nαi∗yixi=0∇bL(ω∗,b∗,ξ∗,α∗,μ∗)=−i=1∑Nαi∗yi=0∇ξL(ω∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0αi∗(yi(ω∗⋅xi+b∗)−1+ξi∗)=0μ∗⋅ξ∗=0yi(ω∗⋅xi+b∗)−1+ξi∗≥0ξ∗,α∗,μ∗≥0,i=1,2,⋯,N
因此,分离超平面
i=1∑Nαi∗yi(x⋅xi)+b∗=0,分类决策函数
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)。
支持向量
线性可分SVM中,
αi∗>0的点称为支持向量,即
yi(ω⋅xi+b)−1+ξi=0
其中
ξi与拉格朗日乘子
αi有密切关系,且根据约束条件可知,
0≤αi∗≤C。
图2 软间隔的支持向量
(I)
αi∗=0
ξi∗=0,样本分类正确,且位于间隔边界之外。
(II)
0<αi∗<C
ξi∗=0,样本分类正确,且位于间隔边界上。
(III)
αi∗=C
当
0<ξi∗<1,样本分类正确,且样本位于超平面与间隔边界之间;当
ξi∗=1,样本位于超平面上;当
ξi∗>1,样本分类错误。