《SVM笔记系列之二》SVM的拉格朗日函数表示以及其对偶问题

《SVM笔记系列之二》SVM的拉格朗日函数表示以及其对偶问题

前言

支持向量机的对偶问题比原问题容易解决,在符合KKT条件的情况下,其对偶问题和原问题的解相同,这里我们结合李航博士的《统计学习方法》一书和林轩田老师的《机器学习技法》中的内容,介绍下SVM的对偶问题。本人无专业的数学学习背景,只能直观上理解一些问题,请数学专业的朋友不吝赐教。
如有谬误,请联系指正。转载请注明出处。
联系方式:
e-mail: FesianXu@163.com
QQ: 973926198
github: https://github.com/FesianXu
有关代码开源: click


SVM的原问题的拉格朗日乘数表示

  我们在上一篇博文《SVM笔记系列1,SVM起源与目的》中,谈到了SVM的原问题,这里摘抄如下:

minW,b12||W||2s.t.1yi(WTxi+b)0, i=1,,N(1.1)

其满足形式:
minW,bf(x)s.t.ci(x)0,i=1,,khj(x)=0,j=1,,l(1.2)

假设原问题为θP(x),并且其最优解为p=θP(x)
这是一个有约束的最优化问题,我们利用广义拉格朗日乘子法(具体移步《拉格朗日乘数法和KKT条件的直观解释》),将其转换为无约束的形式:

L(W,b,α)=12||W||2+i=1Nαi(1yi(WTxi+b)), αi0(1.3)

变形为:
L(W,b,α)=12||W||2+i=1Nαii=1Nαiyi(WTxi+b), αi0(1.4)

我们将会得到原问题的另一个表述为:
f(x)=maxαL(W,b,α)=maxα12||W||2+i=1Nαii=1Nαiyi(WTxi+b),, αi0(1.5)

θP(x)=minW,bf(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+i=1Nαii=1Nαiyi(WTxi+b),, αi0(1.6)

这里我觉得有必要解释下为什么f(x)可以表述为maxαL(W,b,α)这种形式。
假设我们有一个样本点xi是不满足原问题的约束条件1yi(WTxi+b)0的,也就是说1yi(WTxi+b)>0,那么在maxα这个环节就会使得αi+从而使得L(W,b,α)+。如果xi是满足约束条件的,那么为了求得最大值,因为1yi(WTxi+b)0而且αi0,所以就会使得αi=0。由此我们得知:
maxαL(W,b,α)={12||W||2+1yi(WTxi+b)01yi(WTxi+b)>0(1.7)

因此在满足约束的情况下,
maxαL(W,b,α)=12||W||2

不满足约束条件的样本点则因为无法对正无穷求最小值而自然抛弃。
这个时候,我们试图去解maxαL(W,b,α)中的maxα我们会发现因为L(W,b,α)=12||W||2+Ni=1αiNi=1αiyi(WTxi+b)对于α是线性的,非凸的1,因此无法通过梯度的方法求得其最大值点,其最大值点应该处于可行域边界上,因此我们需要得到SVM的对偶问题进行求解。
至此,我们得到了原问题的最小最大表述:
θP(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+i=1Nαii=1Nαiyi(WTxi+b),αi0,i=1,,N(1.8)


SVM的对偶问题

  从上面的讨论中,我们得知了SVM的原问题的最小最大表达形式为:

θP(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+i=1Nαii=1Nαiyi(WTxi+b),αi0,i=1,,N(2.1)

设SVM的对偶问题为θD(α),其最优解为d=θD(α),可知道其为:
g(x)=minW,bL(W,b,α)=minW,b12||W||2+i=1Nαii=1Nαiyi(WTxi+b)(2.2)

θD(α)=maxαg(x)=maxαminW,bL(W,b,α)=maxαminW,b12||W||2+i=1Nαii=1Nαiyi(WTxi+b)(2.3)

此时,我们得到了对偶问题的最大最小表述,同样的,我们试图去求解θD(α)中的minW,b,我们会发现由于L(W,b,α)=12||W||2+Ni=1αiNi=1αiyi(WTxi+b)对于W来说是凸函数,因此可以通过梯度的方法求得其最小值点(即是其极小值点)。

求解minW,bL(W,b,α),因为L(W,b,α)是凸函数,我们对采用求梯度的方法求解其最小值(也是KKT条件中的,WL(W,b,α)=0bL(W,b,α)=0):

LW=Wi=1Nαiyixi=0,i=1,,N(2.4)

Lb=i=1Nαiyi=0,i=1,,N(2.5)

得出:
W=i=1Nαiyixi, i=1Nαiyi=0, αi0,i=1,,N(2.6)

将其代入g(x),注意到Ni=1αiyi=0,得:
g(x)=12i=1Nαiyixij=1Najyjxj+i=1Nαii=1Nαiyi(j=1Nαjyjxjxi+b)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

整理为:
maxαg(x)=maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαis.t. i=1Nαiyi=0αi0,i=1,,N(2.7)

等价为求最小问题:

minαg(x)=minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=0αi0,i=1,,N(2.8)

根据Karush–Kuhn–Tucker(KKT)条件2,我们有:

WL(W,b,α)=Wi=1Nαiyixi=0W=i=1Nαiyixi(2.9)

bL(W,b,α)=i=1Nαiyi=0(2.10)

αi(1yi(Wxi+b))=0(2.11)

1yi(Wxi+b)0(2.12)

αi0(2.13)

前两个式子我们已经在求极值的时候利用了,得知:
W=i=1Nαiyixi(2.14)

并且其中至少有一个αj>0,对此j有,yj(Wxj+b)1=0
代入刚才的W,我们有
b=yji=1Nαiyi(xixj)(2.15)

所以决策超平面为:
i=1Nαiyi(xix)+b=0(2.16)

分类超平面为:
θ(x)=sign(i=1Nαiyi(xix)+b)(2.17)

其中,我们可以观察到超平面只是依赖于αi>0的样本点xi,而其他样本点对其没有影响,所以这些样本是对决策超平面起着决定性作用的,因此我们将αi>0对应的样本点集合xi称为支持向量。同时,我们可以这样理解当αi>0时,我们有1yi(Wxi+b)=0,这个恰恰是表明了支持向量的函数间隔都是1,恰好和我们之前的设定一致。
svm_margin

至此,我们得到了硬间隔线性支持向量机的数学表述形式,所谓硬间隔线性支持向量机,就是满足我之前的假设

两类样本是线性可分的,总是存在一个超平面WTx+b可以将其完美分割开。

但是,在现实生活中的数据往往是或本身就是非线性可分但是近似线性可分的,或是线性可分但是具有噪声的,以上两种情况都会导致在现实应用中,硬间隔线性支持向量机变得不再实用,因此我们将会在后续讨论用以解决近似线性可分的软间隔线性支持向量机基于kernel的支持向量机,后者可以解决非线性可分的问题。下图表示了硬间隔线性支持向量机软间隔支持向量机之间的区别。
hard_margin

soft_margin
在下一篇中,我们紧接着现在的内容,介绍序列最小最优化算法(Sequential Minimal Optimization,SMO),用于求解θD(x),得到αi以便于得到超平面的Wb。我们将在其他文章中介绍软间隔线性支持向量机广义拉格朗日乘数法KKT条件基于kernel的支持向量机

这里我们要记住我们需要最优化的目的式子,我们以后将会反复提到这个式子。

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

s.t. i=1Nαiyi=0

αi0,i=1,,N


  1. 易证明。参考wikipedia的凸函数定义。
  2. 事实上,如果θD(x)L(W,b,α)满足KKT条件,那么在SVM这个问题中,Wbαi同时是原问题和对偶问题的解的充分必要条件是满足KKT条件,具体见《统计学习方法》附录和《拉格朗日乘数法和KKT条件的直观解释》
posted @ 2017-11-26 11:27  FesianXu  阅读(148)  评论(0)    收藏  举报