您的位置:首页 > 其它

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

2018-03-26 00:10 357 查看
上一篇,讲的是硬间隔最大化和软间隔最大化的原始学习问题,回顾一下。

1.硬间隔最大化(线性可分支持向量机)学习算法

原始问题:

   minωT,b12||ω||2minωT,b12||ω||2

s.t.  yi(ωTxi+b)−1≥0yi(ωTxi+b)−1≥0

2.软间隔最大化(线性支持向量机)学习算法

原始问题:

   minωT,b,ξ12||ω||2+C∑n=1NξiminωT,b,ξ12||ω||2+C∑n=1Nξi

s.t.  yi(ωTxi+b)≥1−ξiyi(ωTxi+b)≥1−ξi  (i=1,2,..,N)

s.t.  ξi≥0ξi≥0         (i=1,2,..,N)

由于约束项的存在,对于这些原始问题的求解变得复杂起来,回忆起高中那时有一类不等式题,求解的思路就是用的拉格朗日乘数法,将那些约束项和待求项合在一起组成一个式子来求解,这个就有点像我们要用的方法。

因此,在这里,我们可以利用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是支持向量机的对偶算法。其优点有二:一、对偶问题往往更容易求解;二、自然地引入核函数,进而推广到非线性分类问题。

【原始问题】

首先我们来看看原始问题的形式(来自统计学习方法附录C)

假设f(x)f(x),ci(x)ci(x),hj(x)hj(x)是定义在RnRn上的连续可微函数.考虑约束最优化问题:

   minx∈Rnf(x)minx∈Rnf(x)

s.t.  ci(x)≤0ci(x)≤0   (i=1,2,…,k)

s.t.  hj(x)=0hj(x)=0   (j=1,2,…,s)

这个问题就被称为原始最优化问题或原始问题

【拉格朗日乘数】

引入拉格朗日乘数L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1sβjhj(x)L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1sβjhj(x)

这里αiαi,βjβj是拉格朗日乘子,αi≥0αi≥0

又到了重头戏时间,上图:



为什么要这要设计呢,原始问题的约束项在这个式子中如何体现呢?那么我们就来看看θp(x)=maxα,β:αi≥0L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1sβjhj(x)θp(x)=maxα,β:αi≥0L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1sβjhj(x)这个式子是否能满足原始问题的那两个约束条件吧。

接着上图:



诶嘿,真是一个美妙的变化。不过为什么

θp(x)={f(x),+∞,x满足原始条件约束其他θp(x)={f(x),x满足原始条件约束+∞,其他

其实当x满足原始条件约束时(即ci(x)≤0ci(x)≤0,hj(x)=0hj(x)=0)

θp(x)θp(x)就会变成maxα,β:αi≥0L(x,α,β)=f(x)+负数乘上αimaxα,β:αi≥0L(x,α,β)=f(x)+负数乘上αi,为了使L(x,α,β)L(x,α,β)最大,由于αi≥0αi≥0,只有αiαi取0的时候才能使其最大,这样就得出θp(x)=maxα,β:αi≥0L(x,α,β)=f(x)θp(x)=maxα,β:αi≥0L(x,α,β)=f(x)了

这样,原本三行式子的原始问题就被转化成了minxθp(x)=minxmaxα,β:αi≥0L(x,α,β)minxθp(x)=minxmaxα,β:αi≥0L(x,α,β)

被称为广义拉格朗日函数的极小极大问题

【对偶问题】

定义θD(α,β)=minxL(x,α,β)θD(α,β)=minxL(x,α,β),再考虑极大化θD(α,β)θD(α,β)

即maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β)maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β)

这个被称为广义拉格朗日函数的极大极小问题,我们给它换个形式,把αi≥0αi≥0给提出来做约束项,就可以写成这样:

    maxα,βθD(α,β)=maxα,βminxL(x,α,β)maxα,βθD(α,β)=maxα,βminxL(x,α,β)

s.t.   αi≥0αi≥0

这个就被称为原始问题的对偶问题

定理1

定义原始问题最优解为:p∗=minxθp(x)p∗=minxθp(x)

定义对偶问题最优解为:d∗=maxα,β:α≥0θD(α,β)d∗=maxα,β:α≥0θD(α,β)

若原始问题和对偶问题都有最优解,则有:

d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗

推论

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

定理2

1、假设函数f(x)f(x)和ci(x)ci(x)是凸函数,hj(x)hj(x)是仿射函数(即最高次数为1的多项式函数,若常数项等于0,就是线性函数)

2、假设不等式约束ci(x)ci(x)是严格可行的(即存在xx,对所有ii有ci(x)<0ci(x)<0)

以上两个假设同时满足的情况下,则存在x∗x∗,α∗α∗,β∗β∗,使x∗x∗是原始问题的解,α∗α∗,β∗β∗是对偶问题的解,且d∗=p∗=L(x∗,α∗,β∗)d∗=p∗=L(x∗,α∗,β∗)

定理3

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

【KKT条件】

    ∇xL(x∗,α∗,β∗)=0∇xL(x∗,α∗,β∗)=0

    α∗ici(x∗)=0αi∗ci(x∗)=0   i=1,2,…k

    ci(x∗)≤0ci(x∗)≤0    i=1,2,…k

    α∗i≥0αi∗≥0      i=1,2,…k

    hj(x∗)=0hj(x∗)=0    j=1,2,…s

特别指出,α∗i≥0αi∗≥0被称为KKT对偶互补条件,由此条件可知:若α∗i>0αi∗>0,则ci(x)=0ci(x)=0

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

有了上面的基础,我们就可以对线性可分支持向量机的原始问题进行转化啦~

再次写一下原始问题:

   minωT,b12||ω||2minωT,b12||ω||2

s.t.  yi(ωTxi+b)−1≥0yi(ωTxi+b)−1≥0

引入拉格朗日乘子αi≥0αi≥0,得L(ωT,b,α)=12||ω||2−∑i=1nαiyi(ωTxi+b)+∑i=1nαiL(ωT,b,α)=12||ω||2−∑i=1nαiyi(ωTxi+b)+∑i=1nαi

对偶问题为:

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

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

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

    ∇ωL(ωT,b,α)=ω−∑i=1nαiyixi=0∇ωL(ωT,b,α)=ω−∑i=1nαiyixi=0

    ∇bL(ωT,b,α)=−∑i=1nαiyi=0∇bL(ωT,b,α)=−∑i=1nαiyi=0

    求得:ω=∑i=1nαiyixiω=∑i=1nαiyixi

       ∑i=1nαiyi=0∑i=1nαiyi=0 

    带入minωT,bL(ωT,b,α)minωT,bL(ωT,b,α)

得:minωT,bL(ωT,b,α)=∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixjminωT,bL(ωT,b,α)=∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj

  

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

即求:

   maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixjmaxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj

s.t.  ∑i=1nαiyi=0∑i=1nαiyi=0  (αi≥0,i=1,2..,nαi≥0,i=1,2..,n)

(3)转换为等价问题

   minα12∑i=1n∑j=1nαiαjyiyjxTixj−∑i=1nαiminα12∑i=1n∑j=1nαiαjyiyjxiTxj−∑i=1nαi

s.t.  ∑i=1nαiyi=0∑i=1nαiyi=0  (αi≥0,i=1,2..,nαi≥0,i=1,2..,n)

(4)解得最优解α∗=(α∗1,α∗2,...,α∗n)Tα∗=(α1∗,α2∗,...,αn∗)T

(5)计算ω∗ω∗,b∗b∗

    ω∗=∑i=1nα∗iyixi=0ω∗=∑i=1nαi∗yixi=0

    b∗=yj−∑i=1nα∗iyixTixj=0b∗=yj−∑i=1nαi∗yixiTxj=0

(6)求得超平面:ω∗x+b∗=0ω∗x+b∗=0

求得分类决策函数:f(x)=sign(ω∗x+b∗)f(x)=sign(ω∗x+b∗)

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

对线性支持向量机的原始问题同样进行转化

原始问题:

   minωT,b,ξ12||ω||2+C∑n=1NξiminωT,b,ξ12||ω||2+C∑n=1Nξi

s.t.  yi(ωTxi+b)≥1−ξiyi(ωTxi+b)≥1−ξi  (i=1,2,..,N)

s.t.  ξi≥0ξi≥0         (i=1,2,..,N)

入两个拉格朗日乘子αi≥0αi≥0和μi≥0μi≥0,得L(ωT,b,ξ,α)=12||ω||2+C∑n=1Nξi−∑i=1n(αiyi(ωTxi+b)−1+ξi)−∑i=1nμiξiL(ωT,b,ξ,α)=12||ω||2+C∑n=1Nξi−∑i=1n(αiyi(ωTxi+b)−1+ξi)−∑i=1nμiξi

对偶问题为:

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

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

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

    ∇ωL(ωT,b,ξ,α)=ω−∑i=1nαiyixi=0∇ωL(ωT,b,ξ,α)=ω−∑i=1nαiyixi=0

    ∇bL(ωT,b,ξ,α)=−∑i=1nαiyi=0∇bL(ωT,b,ξ,α)=−∑i=1nαiyi=0

    ∇ξL(ωT,b,ξ,α)=C−αi−μi=0∇ξL(ωT,b,ξ,α)=C−αi−μi=0

    求得:ω=∑i=1nαiyixiω=∑i=1nαiyixi

       ∑i=1nαiyi=0∑i=1nαiyi=0

       C−αi−μi=0C−αi−μi=0 

    带入minωT,b,ξL(ωT,b,ξ,α)minωT,b,ξL(ωT,b,ξ,α)

得:minωT,b,ξL(ωT,b,ξ,α)=∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixjminωT,b,ξL(ωT,b,ξ,α)=∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj

  

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

即求:

   maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixjmaxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj

s.t.  ∑i=1nαiyi=0∑i=1nαiyi=0  (αi≥0,i=1,2..,nαi≥0,i=1,2..,n)

s.t.  C−αi−μi=0C−αi−μi=0  (i=1,2..,ni=1,2..,n)

s.t.  αi≥0αi≥0  (i=1,2..,ni=1,2..,n)

s.t.  μi≥0μi≥0  (i=1,2..,ni=1,2..,n)

等价于:

   maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixjmaxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj

s.t.  ∑ni=1αiyi=0∑i=1nαiyi=0  (αi≥0,i=1,2..,nαi≥0,i=1,2..,n)

s.t.  0≤αi≤C0≤αi≤C  (i=1,2..,ni=1,2..,n)

(3)转换为等价问题

   minα12∑i=1n∑j=1nαiαjyiyjxTixj−∑i=1nαiminα12∑i=1n∑j=1nαiαjyiyjxiTxj−∑i=1nαi

s.t.  ∑i=1nαiyi=0∑i=1nαiyi=0  (αi≥0,i=1,2..,nαi≥0,i=1,2..,n)

s.t.  0≤αi≤C0≤αi≤C  (i=1,2..,ni=1,2..,n)

(4)解得最优解α∗=(α∗1,α∗2,...,α∗n)Tα∗=(α1∗,α2∗,...,αn∗)T

(5)计算ω∗ω∗,b∗b∗

    ω∗=∑i=1nα∗iyixi=0ω∗=∑i=1nαi∗yixi=0

    b∗=yj−∑i=1nα∗iyixTixj=0b∗=yj−∑i=1nαi∗yixiTxj=0

(6)求得超平面:ω∗x+b∗=0ω∗x+b∗=0

求得分类决策函数:f(x)=sign(ω∗x+b∗)f(x)=sign(ω∗x+b∗)

参考文献:《统计学习方法》、《机器学习》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学