线性支持向量机思想与公式推导(Outliers)

来源:互联网 发布:常见的网络诈骗有 编辑:程序博客网 时间:2024/06/05 18:12
1、线性支持向量机
通常情况下,数据集并不是完全线性可分的。数据集中存在一些噪音点(outlier),将这些点除去后,剩下大部分的样本点组成的集合是线性可分的。此时,由于并不是所有点都满足函数间隔大于等于1的约束条件,上述线性可分问题的支持向量机学习方法并不适用。
为了解决这个问题,对每个样本点(xi,yi)引入一个松弛变量ξi0,保证当ξi足够大时,任意点都满足:
yi(wTxi+b)1ξi

并引入参数C,用来控制“寻找 margin 最大的超平面,且保证误分类的点的个数尽量小”的权重,目标函数变为:

12w2+Ci=1Nξi

其中,C>0,称为惩罚系数。C值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。
相应于线性可分支持向量机中利用硬间隔最大化求最优分离超平面,线性支持向量机利用软间隔最大化求解。
2、原始问题和对偶问题
1)原始问题
输入:线性可分训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},其中,xiX=Rnyi Y={1,+1}i=1,2,,N
输出:最大软间隔分离超平面和分类决策函数
a.选择惩罚参数C,构造并求解原始问题:

min(w,b,ξ)12w2+Ci=1Nξis.t.yi(wTxi+b)1+ξi0(i=1,2,,N)s.t.ξi0(i=1,2,,N)

求得最优解wbw的解是唯一的,b的解不唯一)。
b.求得分离超平面:

wx+b=0

以及分类决策函数:

f(x)=sign(wx+b)

2)对偶问题
与线性可分支持向量机学习算法类似,应用拉格朗日的对偶性,通过求解对偶问题得到原始问题的最优解。
输入:线性可分训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},其中,xiX=Rnyi Y={1,+1}i=1,2,,N
输出:最大软间隔分离超平面和分类决策函数
a.选择惩罚参数C,构造并求解对偶问题:

minα12i=1Nj=1Nαiαjyiyj(xiTxj)i=1Nαis.t.i=1Nαiyi=0s.t.0αiC(i=1,2,,N)

求得对偶问题的最优解α=(α1,α2,,αN)T。其中,(xiTxj)表示两个向量的内积。
b.由对偶问题的最优解计算原始问题的最优解:

w=i=1Nαiyixib=yji=1Nαiyi(xiTxj)(C>αj>0)

注:由于b的解不唯一,实际计算时可以取在所有符合条件的样本点上的均值。
c.求得分离超平面:

wx+b=0

以及分类决策函数:

f(x)=sign(wx+b)

Q4:如何由原始问题推导成对偶问题?
A4:推导过程如下:
Step1:引入拉格朗日乘子αr到目标函数中:

L(w,b,ξ,α,r)=12w2+Ci=1Nξii=1Nαi(yi(wTxi+b)1+ξi)i=1Nriξi

并令:

θ(w)=max(αi0,ri0)L(w,b,ξ,α,r)

以下分析过程同线性可分的情况类似,可略过。
要想最大化L(w,b,ξ,α,r)yi(wTxi+b)1+ξi的正负很关键,若yi(wTxi+b)1+ξi<0,则令αi=时,θ(w)=,没有意义。因此每个点都应满足yi(wTxi+b)1+ξi0,其中支持向量满足yi(wTxi+b)1+ξi=0αi>0;非支持向量满足yi(wTxi+b)1+ξi>0αi=0。也验证了分离超平面仅由支持向量决定的概念。
Step2:当所有点都满足条件时,有:

θ(w)=max(αi0,ri0)L(w,b,ξ,α,r)=12w2+Ci=1Nξi

所以,优化问题变为:

min(w,b,ξ)12w2+Ci=1Nξimin(w,b,ξ)θ(w)min(w,b,ξ)max(αi0,ri0)L(w,b,ξ,α,r)

Step3:求最小的最大值问题转换成求最大的最小值问题:

min(w,b,ξ)max(αi0,ri0)L(w,b,ξ,α,r)=pmax(αi0,ri0)min(w,b,ξ)L(w,b,ξ,α,r)=d(pd)

而通常,在满足KKT条件时,有p=d。这里的问题是满足KKT条件的,因此直接对max(αi0,ri0)min(w,b,ξ)L(w,b,ξ,α,r)求解。
Step4:先固定αr,求L(w,b,ξ,α,r)关于(w,b,ξ)最小化,即分别令LwLbLξi等于0:

Lw=wi=1Nαiyixi=0w=i=1NαiyixiLb=i=1Nαiyi=0i=1Nαiyi=0Lξi=Cαiri=0

将上式代入L(w,b,ξ,α,r)中得:

L(w,b,ξ,α,r)=i=1Nαi12i=1Nj=1Nαiαjyiyj(xiTxj)

于是,优化问题变为:

maxαi=1Nαi12i=1Nj=1Nαiαjyiyj(xiTxj)s.t.i=1Nαiyi=0s.t.0αiC(i=1,2,,N)minα12i=1Nj=1Nαiαjyiyj(xiTxj)i=1Nαis.t.i=1Nαiyi=0s.t.0αiC(i=1,2,,N)

求出最优解α=(α1,α2,,αN)T后,进一步得到:

w=i=1Nαiyixib=yji=1Nαiyi(xiTxj)(C>αj>0)

分离超平面为: i=1Nαiyi(xiTxj)+b=0
分类决策函数为: f(x)=sign(i=1Nαiyi(xiTxj)+b)
对于新点(xj,yj)的预测,只需要计算它与训练数据点的内积即可。事实上,所有非支持向量所对应的系数αi都是等于零的,因此对于新点的内积计算实际上只要针对少量的“支持向量”而不是所有的训练数据。