上一篇,讲的是硬间隔最大化和软间隔最大化的原始学习问题,回顾一下。
1.硬间隔最大化(线性可分支持向量机)学习算法
原始问题:
minωT,b12||ω||2 min ω T , b 1 2 | | ω | | 2
s.t. yi(ωTxi+b)−1≥0 y i ( ω T x i + b ) − 1 ≥ 0
2.软间隔最大化(线性支持向量机)学习算法
原始问题:
minωT,b,ξ12||ω||2+C∑n=1Nξi min ω T , b , ξ 1 2 | | ω | | 2 + C ∑ n = 1 N ξ i
s.t. yi(ωTxi+b)≥1−ξi y i ( ω T x i + b ) ≥ 1 − ξ i (i=1,2,..,N)
s.t. ξi≥0 ξ i ≥ 0 (i=1,2,..,N)
由于约束项的存在,对于这些原始问题的求解变得复杂起来,回忆起高中那时有一类不等式题,求解的思路就是用的拉格朗日乘数法,将那些约束项和待求项合在一起组成一个式子来求解,这个就有点像我们要用的方法。
因此,在这里,我们可以利用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是支持向量机的对偶算法。其优点有二:一、对偶问题往往更容易求解;二、自然地引入核函数,进而推广到非线性分类问题。
首先我们来看看原始问题的形式(来自统计学习方法附录C)
假设 f(x) f ( x ) , ci(x) c i ( x ) , hj(x) h j ( x ) 是定义在 Rn R n 上的连续可微函数.考虑约束最优化问题:
minx∈Rnf(x) min x ∈ R n f ( x )
s.t. ci(x)≤0 c i ( x ) ≤ 0 (i=1,2,…,k)
s.t. hj(x)=0 h j ( x ) = 0 (j=1,2,…,s)
这个问题就被称为原始最优化问题或原始问题
引入拉格朗日乘数 L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1sβjhj(x) L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 s β j h j ( 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 ≥ 0 L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 s β j h j ( x ) 这个式子是否能满足原始问题的那两个约束条件吧。
接着上图:
诶嘿,真是一个美妙的变化。不过为什么
θp(x)={f(x),+∞,x满足原始条件约束其他 θ p ( x ) = { f ( x ) , x满足原始条件约束 + ∞ , 其他
其实当x满足原始条件约束时(即 ci(x)≤0 c i ( x ) ≤ 0 , hj(x)=0 h j ( x ) = 0 )
θp(x) θ p ( x ) 就会变成 maxα,β:αi≥0L(x,α,β)=f(x)+负数乘上αi max α , β : α i ≥ 0 L ( 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 ≥ 0 L ( x , α , β ) = f ( x ) 了
这样,原本三行式子的原始问题就被转化成了 minxθp(x)=minxmaxα,β:αi≥0L(x,α,β) min x θ p ( x ) = min x max α , β : α i ≥ 0 L ( x , α , β )
被称为广义拉格朗日函数的极小极大问题
定义 θD(α,β)=minxL(x,α,β) θ D ( α , β ) = min x L ( x , α , β ) ,再考虑极大化 θD(α,β) θ D ( α , β )
即 maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β) max α , β : α i ≥ 0 θ D ( α , β ) = max α , β : α i ≥ 0 min x L ( x , α , β )
这个被称为广义拉格朗日函数的极大极小问题,我们给它换个形式,把 αi≥0 α i ≥ 0 给提出来做约束项,就可以写成这样:
maxα,βθD(α,β)=maxα,βminxL(x,α,β) max α , β θ D ( α , β ) = max α , β min x L ( x , α , β )
s.t. αi≥0 α i ≥ 0
这个就被称为原始问题的对偶问题
定义原始问题最优解为: p∗=minxθp(x) p ∗ = min x θ p ( x )
定义对偶问题最优解为: d∗=maxα,β:α≥0θD(α,β) d ∗ = max α , β : α ≥ 0 θ D ( α , β )
若原始问题和对偶问题都有最优解,则有:
d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗ d ∗ = max α , β : α i ≥ 0 min x L ( x , α , β ) ≤ min x max α , β : α i ≥ 0 L ( x , α , β ) = p ∗
设 x∗ x ∗ 是原始问题可行解, α∗ α ∗ , β∗ β ∗ 是对偶问题可行解,并且 d∗=p∗ d ∗ = p ∗ ,则 x∗ x ∗ 是原始问题最优解, α∗ α ∗ , β∗ β ∗ 是对偶问题最优解
1、假设函数 f(x) f ( x ) 和 ci(x) c i ( x ) 是凸函数, hj(x) h j ( x ) 是仿射函数(即最高次数为1的多项式函数,若常数项等于0,就是线性函数)
2、假设不等式约束 ci(x) c i ( x ) 是严格可行的(即存在 x x ,对所有 i i 有 ci(x)<0 c i ( x ) < 0 )
以上两个假设同时满足的情况下,则存在 x∗ x ∗ , α∗ α ∗ , β∗ β ∗ ,使 x∗ x ∗ 是原始问题的解, α∗ α ∗ , β∗ β ∗ 是对偶问题的解,且 d∗=p∗=L(x∗,α∗,β∗) d ∗ = p ∗ = L ( x ∗ , α ∗ , β ∗ )
对于定理2来说,存在 x∗ x ∗ , α∗ α ∗ , β∗ β ∗ ,使 x∗ x ∗ 是原始问题的解, α∗ α ∗ , β∗ β ∗ 是对偶问题的解的充分必要条件是 x∗ x ∗ , α∗ α ∗ , β∗ β ∗ 满足下面的KKT条件:
∇xL(x∗,α∗,β∗)=0 ∇ x L ( x ∗ , α ∗ , β ∗ ) = 0
α∗ici(x∗)=0 α i ∗ c i ( x ∗ ) = 0 i=1,2,…k
ci(x∗)≤0 c i ( x ∗ ) ≤ 0 i=1,2,…k
α∗i≥0 α i ∗ ≥ 0 i=1,2,…k
hj(x∗)=0 h j ( x ∗ ) = 0 j=1,2,…s
特别指出, α∗i≥0 α i ∗ ≥ 0 被称为KKT对偶互补条件,由此条件可知:若 α∗i>0 α i ∗ > 0 ,则 ci(x)=0 c i ( x ) = 0
有了上面的基础,我们就可以对线性可分支持向量机的原始问题进行转化啦~
再次写一下原始问题:
minωT,b12||ω||2 min ω T , b 1 2 | | ω | | 2
s.t. yi(ωTxi+b)−1≥0 y i ( ω T x i + b ) − 1 ≥ 0
引入拉格朗日乘子 αi≥0 α i ≥ 0 ,得 L(ωT,b,α)=12||ω||2−∑i=1nαiyi(ωTxi+b)+∑i=1nαi L ( ω T , b , α ) = 1 2 | | ω | | 2 − ∑ i = 1 n α i y i ( ω T x i + b ) + ∑ i = 1 n α i
对偶问题为:
maxαminωT,bL(ωT,b,α) max α min ω T , b L ( ω T , b , α )
为了求得对偶问题的解,需先求 L(ωT,b,α) L ( ω T , b , α ) 对 ωT ω T , b b 的极小,再求对 α α 的极大。
∇ωL(ωT,b,α)=ω−∑i=1nαiyixi=0 ∇ ω L ( ω T , b , α ) = ω − ∑ i = 1 n α i y i x i = 0
∇bL(ωT,b,α)=−∑i=1nαiyi=0 ∇ b L ( ω T , b , α ) = − ∑ i = 1 n α i y i = 0
求得: ω=∑i=1nαiyixi ω = ∑ i = 1 n α i y i x i
∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0
带入 minωT,bL(ωT,b,α) min ω T , b L ( ω T , b , α )
得: minωT,bL(ωT,b,α)=∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixj min ω T , b L ( ω T , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j
即求:
maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixj max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j
s.t. ∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0 ( αi≥0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
minα12∑i=1n∑j=1nαiαjyiyjxTixj−∑i=1nαi min α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j − ∑ i = 1 n α i
s.t. ∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0 ( αi≥0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
ω∗=∑i=1nα∗iyixi=0 ω ∗ = ∑ i = 1 n α i ∗ y i x i = 0
b∗=yj−∑i=1nα∗iyixTixj=0 b ∗ = y j − ∑ i = 1 n α i ∗ y i x i T x j = 0
对线性支持向量机的原始问题同样进行转化
原始问题:
minωT,b,ξ12||ω||2+C∑n=1Nξi min ω T , b , ξ 1 2 | | ω | | 2 + C ∑ n = 1 N ξ i
s.t. yi(ωTxi+b)≥1−ξi y i ( ω T x i + 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ξi L ( ω T , b , ξ , α ) = 1 2 | | ω | | 2 + C ∑ n = 1 N ξ i − ∑ i = 1 n ( α i y i ( ω T x i + b ) − 1 + ξ i ) − ∑ i = 1 n μ i ξ i
对偶问题为:
maxαminωT,b,ξL(ωT,b,ξ,α) max α min ω T , b , ξ L ( ω T , b , ξ , α )
为了求得对偶问题的解,需先求 L(ωT,b,ξ,α) L ( ω T , b , ξ , α ) 对 ωT ω T , b b , ξ ξ 的极小,再求对 α α 的极大。
∇ωL(ωT,b,ξ,α)=ω−∑i=1nαiyixi=0 ∇ ω L ( ω T , b , ξ , α ) = ω − ∑ i = 1 n α i y i x i = 0
∇bL(ωT,b,ξ,α)=−∑i=1nαiyi=0 ∇ b L ( ω T , b , ξ , α ) = − ∑ i = 1 n α i y i = 0
∇ξL(ωT,b,ξ,α)=C−αi−μi=0 ∇ ξ L ( ω T , b , ξ , α ) = C − α i − μ i = 0
求得: ω=∑i=1nαiyixi ω = ∑ i = 1 n α i y i x i
∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0
C−αi−μi=0 C − α 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αjyiyjxTixj min ω T , b , ξ L ( ω T , b , ξ , α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j
即求:
maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixj max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j
s.t. ∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0 ( αi≥0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
s.t. C−αi−μi=0 C − α i − μ i = 0 ( i=1,2..,n i = 1 , 2.. , n )
s.t. αi≥0 α i ≥ 0 ( i=1,2..,n i = 1 , 2.. , n )
s.t. μi≥0 μ i ≥ 0 ( i=1,2..,n i = 1 , 2.. , n )
等价于:
maxα∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxTixj max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j
s.t. ∑ni=1αiyi=0 ∑ i = 1 n α i y i = 0 ( αi≥0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
s.t. 0≤αi≤C 0 ≤ α i ≤ C ( i=1,2..,n i = 1 , 2.. , n )
minα12∑i=1n∑j=1nαiαjyiyjxTixj−∑i=1nαi min α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j − ∑ i = 1 n α i
s.t. ∑i=1nαiyi=0 ∑ i = 1 n α i y i = 0 ( αi≥0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
s.t. 0≤αi≤C 0 ≤ α i ≤ C ( i=1,2..,n i = 1 , 2.. , n )
ω∗=∑i=1nα∗iyixi=0 ω ∗ = ∑ i = 1 n α i ∗ y i x i = 0
b∗=yj−∑i=1nα∗iyixTixj=0 b ∗ = y j − ∑ i = 1 n α i ∗ y i x i T x j = 0
参考文献:《统计学习方法》、《机器学习》