【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题

上一篇,讲的是硬间隔最大化和软间隔最大化的原始学习问题,回顾一下。
1.硬间隔最大化(线性可分支持向量机)学习算法
原始问题:
   minωT,b12||ω||2
s.t.  yi(ωTxi+b)10

2.软间隔最大化(线性支持向量机)学习算法
原始问题:
   minωT,b,ξ12||ω||2+Cn=1Nξi
s.t.  yi(ωTxi+b)1ξi  (i=1,2,..,N)
s.t.  ξi0         (i=1,2,..,N)

由于约束项的存在,对于这些原始问题的求解变得复杂起来,回忆起高中那时有一类不等式题,求解的思路就是用的拉格朗日乘数法,将那些约束项和待求项合在一起组成一个式子来求解,这个就有点像我们要用的方法。
因此,在这里,我们可以利用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是支持向量机的对偶算法。其优点有二:一、对偶问题往往更容易求解;二、自然地引入核函数,进而推广到非线性分类问题。

【原始问题】

首先我们来看看原始问题的形式(来自统计学习方法附录C)
假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数.考虑约束最优化问题:
   minxRnf(x)
s.t.  ci(x)0   (i=1,2,…,k)
s.t.  hj(x)=0   (j=1,2,…,s)
这个问题就被称为原始最优化问题或原始问题

【拉格朗日乘数】

引入拉格朗日乘数L(x,α,β)=f(x)+i=1kαici(x)+j=1sβjhj(x)
这里αi,βj是拉格朗日乘子,αi0
又到了重头戏时间,上图:
【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题
为什么要这要设计呢,原始问题的约束项在这个式子中如何体现呢?那么我们就来看看θp(x)=maxα,β:αi0L(x,α,β)=f(x)+i=1kαici(x)+j=1sβjhj(x)这个式子是否能满足原始问题的那两个约束条件吧。
接着上图:
【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题
诶嘿,真是一个美妙的变化。不过为什么

θp(x)={f(x),x满足原始条件约束+,其他
其实当x满足原始条件约束时(即ci(x)0hj(x)=0)
θp(x)就会变成maxα,β:αi0L(x,α,β)=f(x)+αi,为了使L(x,α,β)最大,由于αi0,只有αi取0的时候才能使其最大,这样就得出θp(x)=maxα,β:αi0L(x,α,β)=f(x)
这样,原本三行式子的原始问题就被转化成了minxθp(x)=minxmaxα,β:αi0L(x,α,β)
被称为广义拉格朗日函数的极小极大问题

【对偶问题】

定义θD(α,β)=minxL(x,α,β),再考虑极大化θD(α,β)
maxα,β:αi0θD(α,β)=maxα,β:αi0minxL(x,α,β)
这个被称为广义拉格朗日函数的极大极小问题,我们给它换个形式,把αi0给提出来做约束项,就可以写成这样:
    maxα,βθD(α,β)=maxα,βminxL(x,α,β)
s.t.   αi0
这个就被称为原始问题的对偶问题

定理1

定义原始问题最优解为:p=minxθp(x)
定义对偶问题最优解为:d=maxα,β:α0θD(α,β)
若原始问题和对偶问题都有最优解,则有:
d=maxα,β:αi0minxL(x,α,β)minxmaxα,β:αi0L(x,α,β)=p

推论

x是原始问题可行解,α,β是对偶问题可行解,并且d=p,则x是原始问题最优解,α,β是对偶问题最优解

定理2

1、假设函数f(x)ci(x)是凸函数,hj(x)是仿射函数(即最高次数为1的多项式函数,若常数项等于0,就是线性函数)
2、假设不等式约束ci(x)是严格可行的(即存在x,对所有ici(x)<0)
以上两个假设同时满足的情况下,则存在x,α,β,使x是原始问题的解,α,β是对偶问题的解,且d=p=L(x,α,β)

定理3

对于定理2来说,存在x,α,β,使x是原始问题的解,α,β是对偶问题的解的充分必要条件是x,α,β满足下面的KKT条件:

【KKT条件】

    xL(x,α,β)=0
    αici(x)=0   i=1,2,…k
    ci(x)0    i=1,2,…k
    αi0      i=1,2,…k
    hj(x)=0    j=1,2,…s
特别指出,αi0被称为KKT对偶互补条件,由此条件可知:若αi>0,则ci(x)=0

【线性可分支持向量机的对偶问题】

有了上面的基础,我们就可以对线性可分支持向量机的原始问题进行转化啦~
再次写一下原始问题:
   minωT,b12||ω||2
s.t.  yi(ωTxi+b)10
引入拉格朗日乘子αi0,得L(ωT,b,α)=12||ω||2i=1nαiyi(ωTxi+b)+i=1nαi

对偶问题为:
maxαminωT,bL(ωT,b,α)
为了求得对偶问题的解,需先求L(ωT,b,α)ωTb的极小,再求对α的极大。

(1)求L(ωT,b,α)ωTb的极小:

    ωL(ωT,b,α)=ωi=1nαiyixi=0
    bL(ωT,b,α)=i=1nαiyi=0

    求得:ω=i=1nαiyixi
       i=1nαiyi=0 
    带入minωT,bL(ωT,b,α)
得:minωT,bL(ωT,b,α)=i=1nαi12i=1nj=1nαiαjyiyjxiTxj
  

(2)求maxαminωT,bL(ωT,b,α)

即求:
   maxαi=1nαi12i=1nj=1nαiαjyiyjxiTxj
s.t.  i=1nαiyi=0  (αi0,i=1,2..,n)

(3)转换为等价问题

   minα12i=1nj=1nαiαjyiyjxiTxji=1nαi
s.t.  i=1nαiyi=0  (αi0,i=1,2..,n)

(4)解得最优解α=(α1,α2,...,αn)T
(5)计算ω,b

    ω=i=1nαiyixi=0
    b=yji=1nαiyixiTxj=0

(6)求得超平面:ωx+b=0
求得分类决策函数:f(x)=sign(ωx+b)

【线性支持向量机的对偶问题】

对线性支持向量机的原始问题同样进行转化
原始问题:
   minωT,b,ξ12||ω||2+Cn=1Nξi
s.t.  yi(ωTxi+b)1ξi  (i=1,2,..,N)
s.t.  ξi0         (i=1,2,..,N)

入两个拉格朗日乘子αi0μi0,得L(ωT,b,ξ,α)=12||ω||2+Cn=1Nξii=1n(αiyi(ωTxi+b)1+ξi)i=1nμiξi

对偶问题为:
maxαminωT,b,ξL(ωT,b,ξ,α)
为了求得对偶问题的解,需先求L(ωT,b,ξ,α)ωTbξ的极小,再求对α的极大。

(1)求L(ωT,b,ξ,α)ωTbξ的极小:

    ωL(ωT,b,ξ,α)=ωi=1nαiyixi=0
    bL(ωT,b,ξ,α)=i=1nαiyi=0
    ξL(ωT,b,ξ,α)=Cαiμi=0
    求得:ω=i=1nαiyixi
       i=1nαiyi=0
       Cαiμi=0 
    带入minωT,b,ξL(ωT,b,ξ,α)
得:minωT,b,ξL(ωT,b,ξ,α)=i=1nαi12i=1nj=1nαiαjyiyjxiTxj
  

(2)求maxαminωT,b,ξL(ωT,b,ξ,α)

即求:
   maxαi=1nαi12i=1nj=1nαiαjyiyjxiTxj
s.t.  i=1nαiyi=0  (αi0,i=1,2..,n)
s.t.  Cαiμi=0  (i=1,2..,n)
s.t.  αi0  (i=1,2..,n)
s.t.  μi0  (i=1,2..,n)
等价于:
   maxαi=1nαi12i=1nj=1nαiαjyiyjxiTxj
s.t.  i=1nαiyi=0  (αi0,i=1,2..,n)
s.t.  0αiC  (i=1,2..,n)

(3)转换为等价问题

   minα12i=1nj=1nαiαjyiyjxiTxji=1nαi
s.t.  i=1nαiyi=0  (αi0,i=1,2..,n)
s.t.  0αiC  (i=1,2..,n)

(4)解得最优解α=(α1,α2,...,αn)T
(5)计算ω,b

    ω=i=1nαiyixi=0
    b=yji=1nαiyixiTxj=0

(6)求得超平面:ωx+b=0
求得分类决策函数:f(x)=sign(ωx+b)

参考文献:《统计学习方法》、《机器学习》