上一篇,讲的是硬间隔最大化和软间隔最大化的原始学习问题,回顾一下。
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α,β