支持向量机(SVM)推导

1.svm定义

  SVM从线性可分情况下的最优分类面发展而来 。最优分类面就是要求分类线不但能将两类正确分开( 训练错误率为0),且使分类间隔最大。SVM 考虑寻找一个满足分类要求的超平面,并且使训练集中的点距离分类面尽可能的远,也就是寻找一个分类面 使它两侧的空白区域(Margin) 最大 。如下图所示:
这里写图片描述
左边是一个分类超平面,但是不是最佳的,显然右边的分类超平面是最佳的,我们的目标就是要找到最佳的分类超平面。

2.间隔最大化

   先给出一般的线性分类超平面的定义:
样本集 {xn,tn},n=1,2,...,N,xnRd,tn{1,1}
分类器: y(x)=wTx+b

tn={1,1,y(xn)>0y(xn)<0

也就是如果预测值大于0则为类别1,预测值小于0则为类别-1。总之,有:
tny(xn)>0

  样本集任意一点 xn 到分类面( 满足 tny(xn)>0 ) 的距离为:

tny(xn)||w||=tn(wTxn+b)||w||

这类似于点到直线的距离的求发。假设有一条直线: x1+x2+2=0 ,我们求点 (xi,xj) 到该直线的举例就是 xi+xj+2x21+x22 ,只是上面的分母它用了一个向量的形式来表示所有的变量 (w1,w2,...,wm)

   而SVM要找的分类平面是,使得离该平面最近的点(边界点)离该平面的距离尽可能的远,用数学公式表示就是:

argmaxw,b{1||w||minn[tn(wTx+b)]}

里面表示距离分类面最近的点的距离,外面表示使得该距离最大。因为距离平面最近的点对应的 tn(wT+b) 必定为某个正数 k ,我们假设该值就是1,并不会影响参数w,b 的取值。例如点 (2,1) 2x1+3x24 中的取值为3,要使得该值为1,只需要相应的 w,b 同时缩小为原来的 13 ,即变为 23x1+x243 ,但是表示的仍然是同一条直线。所以原问题就转化为:
argmaxw,b{1||w||}

并且上面假设了离分类面最近的点的距离为1,那么其他点对应的 tn(wT+b)>1

   因为问题转化为最大化 ||w||1 ,等价于最小化 12||w||2 ,则上述问题可以用下面的数学表达式来描述:

argminw,b12||w||2,s.t.tn(wTx+b)1

解这种含不等式约束的极值点要用拉格朗日乘子法,构造拉格朗日函数如下:
L(w,b,a)=12||w||2n=1Nan(tn(wTx+b)1),an>0

其中 an 是拉格朗日乘子,是一个正数。
对于上述的 L(w,b,a) ,对它的最大值进行讨论。
1.当 tn(wTx+b)>=1 时:
   显然有 (wTx+b)10 ,又 an 是一个正数,所以
n=1Nan(tn(wTx+b)1)0
所以:
L(w,b,a)=12||w||2n=1Nan(tn(wTx+b)1)=12||w||2

所以,很显然这种情况下 maxL(w,b,a)=12||w||2

2.当 tn(wTx+b)<1 时:
   显然有 (wTx+b)10 ,又 an 是一个正数,所以该累加项趋近于负无穷,即 Nn=1an(tn(wTx+b)1) 趋于 ,所以 maxL(w,b,a) 值是趋近于 +
总结之后就是:

maxL(w,b,a)={12||w||2,+,tn(wTx+b)>=1tn(wTx+b)<1

又前面假设中已经有任意点都满足 tn(wTx+b)>=1 ,所以 maxL(w,b,a) = 12||w||2

   然后我们再回到原始的优化问题:

argminw,b12||w||2,s.t.tn(wTx+b)1

因为 maxL(w,b,a) = 12||w||2 ,用 L(w,b,a) 替换 w ,所以该问题就等价于:
argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)1

但是这样不容易求解,我们需要考虑它的对偶问题。

3.拉格朗日对偶性

  求下面极值:

minwf(w)

在等式约束下的极值问题 s.t.hi(w)=1,...,l
L(w,β)=f(w)+i=1lβihi(w)

在不等式约束下的极值问题 s.t.gi(w)0,i=1,...,k;hi(w)=1,...,l
L(w,α,β)=f(w)+i=1kαigi(w)+j=1lβjhj(w)

   定义 θP(w)=maxα,βL(w,α,β),s.t.αi0 ,只有满足基本约束条件时, θP 才会有最大值,基本约束条件就是上面不等式约束下的那些约束条件:

θP(w)={f(w),+,if w satisfies premal constraintsotherwise

  原问题 minwf(w) 转化为 minwθP(w)=minwmaxα,βL(w,α,β) ,记为 p ,直接求解不容易,需要转向另一个问题 θD(w)=minwL(w,α,β) ,先固定 α,β ,然后再求拉格朗日函数关于 w 的最小值,之后再求θD(w)的最大值。即:

maxα,βθD(w)=maxα,βminwL(w,α,β)

该问题是原问题的对偶问题,记为 d ,很容易推出有下面大小关系:
d=maxα,βminwL(w,α,β)minwmaxα,βL(w,α,β)=p

即最小值的最大取值一定要小于等于最大值的最小取值。

  为了使得原问题的解和对偶问题的解相等,即 p=d ,必须使得它们的解 (w,α,β) 满足KKT条件,即:
     wiL(w,α,β)=0,i=1,...,n
     βiL(w,α,β)=0,i=1,...,l
     αigi(w)=0,i=1,...,kKKT
     gi(w)0,i=1,...,k
     a0,i=1,...,k

如果 (w,α,β) 都满足KKT条件,那么它们就是原问题和对偶问题的解。
补充条件隐含如果 a>0 ,那么 gi(w)=0 , 即 w 处于可行域的边界上,是起作用的(Active) 约束 ,而位于可行域内部的点都是不起作用的约束,其 a=0

4.最优间隔分类器

  接到第2小节,该优化问题:

argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)1

转化为对偶问题就是:
argmaxaminw,bL(w,b,a),s.t.tn(wTx+b)1

该对偶问题表示,先求 L(w,b,a) 关于参数 w,b 的最小值,然后再求关于参数 a 的最大值。关于参数w,b的最小值,直接求导,找到极值点。
   L(w,b,a)=12||w||2Nn=1an(tn(wTx+b)1),an0

wL(w,b,a)=0wn=1Nantnxn=0

bL(w,b,a)=0n=1Nantn=0

w=Nn=1antnxn Nn=1antn=0 带入原 L(w,b,a) ,可以求得
L(w,b,a)=n=1Nan12i=1Nj=1NaiajtitjxTixj

         s.t.ai0,Ni=1aiti=0

推导过程为:
这里写图片描述

  注意变换过的 L(w,b,a) 式子中, xi 表示第i个样本,是已知的; ti 表示第i个样本对应的类别值,为1或-1,也是已知的;所以该式子中仅有一个参数 a 是未知的。所以进一步的优化就是找到某一组a,让 L(w,b,a) 取得最大值,而只要找到一组 a <script type="math/tex" id="MathJax-Element-14523">a</script>,它能够使得所有的样本都满足KKT条件时,便能够取得最大值。具体的实现算法参考SMO算法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值