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

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

2.软间隔最大化(线性支持向量机)学习算法
原始问题:
    minωT,b,ξ12||ω||2+Cn=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.   ξi0 ξ i ≥ 0          (i=1,2,..,N)

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

【原始问题】

首先我们来看看原始问题的形式(来自统计学习方法附录C)
假设 f(x) f ( x ) , ci(x) c i ( x ) , hj(x) h j ( x ) 是定义在 Rn R n 上的连续可微函数.考虑约束最优化问题:
    minxRnf(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 是拉格朗日乘子, αi0 α i ≥ 0
又到了重头戏时间,上图:
【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题_第1张图片
为什么要这要设计呢,原始问题的约束项在这个式子中如何体现呢?那么我们就来看看 θp(x)=maxα,β:αi0L(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 ) 这个式子是否能满足原始问题的那两个约束条件吧。
接着上图:
【机器学习】支持向量机(三)----拉格朗日对偶性与对偶问题_第2张图片
诶嘿,真是一个美妙的变化。不过为什么

θ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α,β:αi0L(x,α,β)=f(x)+αi max α , β : α i ≥ 0 L ( x , α , β ) = f ( x ) + 负 数 乘 上 α i ,为了使 L(x,α,β) L ( x , α , β ) 最大,由于 αi0 α i ≥ 0 ,只有 αi α i 取0的时候才能使其最大,这样就得出 θp(x)=maxα,β:αi0L(x,α,β)=f(x) θ p ( x ) = max α , β : α i ≥ 0 L ( x , α , β ) = f ( x )
这样,原本三行式子的原始问题就被转化成了 minxθp(x)=minxmaxα,β:αi0L(x,α,β) min x θ p ( x ) = min x max α , β : α i ≥ 0 L ( x , α , β )
被称为广义拉格朗日函数的极小极大问题

【对偶问题】

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

定理1

定义原始问题最优解为: p=minxθp(x) p ∗ = min x θ p ( x )
定义对偶问题最优解为: d=maxα,β:α0θD(α,β) d ∗ = max α , β : α ≥ 0 θ D ( α , β )
若原始问题和对偶问题都有最优解,则有:
d=maxα,β:αi0minxL(x,α,β)minxmaxα,β:αi0L(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 ∗ 是原始问题最优解, α α ∗ , β β ∗ 是对偶问题最优解

定理2

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 ∗ , α ∗ , β ∗ )

定理3

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

【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
     αi0 α i ∗ ≥ 0       i=1,2,…k
     hj(x)=0 h j ( x ∗ ) = 0     j=1,2,…s
特别指出, αi0 α 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)10 y i ( ω T x i + b ) − 1 ≥ 0
引入拉格朗日乘子 αi0 α i ≥ 0 ,得 L(ωT,b,α)=12||ω||2i=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 的极小,再求对 α α 的极大。

(1)求 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αi12i=1nj=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
  

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

即求:
    maxαi=1nαi12i=1nj=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   ( αi0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )

(3)转换为等价问题

    minα12i=1nj=1nαiαjyiyjxTixji=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   ( αi0,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 = 1 n α i ∗ y i x i = 0
     b=yji=1nαiyixTixj=0 b ∗ = y j − ∑ i = 1 n α i ∗ y i x i T x j = 0

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

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

对线性支持向量机的原始问题同样进行转化
原始问题:
    minωT,b,ξ12||ω||2+Cn=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.   ξi0 ξ i ≥ 0          (i=1,2,..,N)

入两个拉格朗日乘子 αi0 α i ≥ 0 μi0 μ i ≥ 0 ,得 L(ωT,b,ξ,α)=12||ω||2+Cn=1Nξii=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 ξ ξ 的极小,再求对 α α 的极大。

(1)求 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αi12i=1nj=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
  

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

即求:
    maxαi=1nαi12i=1nj=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   ( αi0,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.   αi0 α i ≥ 0   ( i=1,2..,n i = 1 , 2.. , n )
s.t.   μi0 μ i ≥ 0   ( i=1,2..,n i = 1 , 2.. , n )
等价于:
    maxαi=1nαi12i=1nj=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   ( αi0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
s.t.   0αiC 0 ≤ α i ≤ C   ( i=1,2..,n i = 1 , 2.. , n )

(3)转换为等价问题

    minα12i=1nj=1nαiαjyiyjxTixji=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   ( αi0,i=1,2..,n α i ≥ 0 , i = 1 , 2.. , n )
s.t.   0αiC 0 ≤ α i ≤ C   ( i=1,2..,n i = 1 , 2.. , n )

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

     ω=i=1nαiyixi=0 ω ∗ = ∑ i = 1 n α i ∗ y i x i = 0
     b=yji=1nαiyixTixj=0 b ∗ = y j − ∑ i = 1 n α i ∗ y i x i T x j = 0

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

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

你可能感兴趣的:(学习笔记)