《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.1−yi(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(1−yi(WTxi+b)), αi≥0(1.3)
变形为:
L(W,b,α)=12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b), αi≥0(1.4)
我们将会得到原问题的另一个表述为:
f(x)=maxαL(W,b,α)=maxα12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b),, αi≥0(1.5)
θP(x)=minW,bf(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b),, αi≥0(1.6)
这里我觉得有必要解释下为什么
f(x)可以表述为
maxαL(W,b,α)这种形式。
假设我们有一个样本点
xi是不满足原问题的约束条件
1−yi(WTxi+b)≤0的,也就是说
1−yi(WTxi+b)>0,那么在
maxα这个环节就会使得
αi→+∞从而使得
L(W,b,α)→+∞。如果
xi是满足约束条件的,那么为了求得最大值,因为
1−yi(WTxi+b)≤0而且
αi≥0,所以就会使得
αi=0。由此我们得知:
maxαL(W,b,α)={12||W||2+∞1−yi(WTxi+b)≤0满足约束条件1−yi(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αi−∑Ni=1αiyi(WTxi+b)对于
α是线性的,非凸的,因此无法通过梯度的方法求得其最大值点,其最大值点应该处于可行域边界上,因此我们需要得到SVM的对偶问题进行求解。
至此,我们得到了原问题的最小最大表述:
θP(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b),αi≥0,i=1,⋯,N(1.8)
SVM的对偶问题
从上面的讨论中,我们得知了SVM的原问题的最小最大表达形式为:
θP(x)=minW,bmaxαL(W,b,α)=minW,bmaxα12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b),αi≥0,i=1,⋯,N(2.1)
设SVM的对偶问题为
θD(α),其最优解为
d∗=θD(α∗),可知道其为:
g(x)=minW,bL(W,b,α)=minW,b12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b)(2.2)
θD(α)=maxαg(x)=maxαminW,bL(W,b,α)=maxαminW,b12||W||2+∑i=1Nαi−∑i=1Nαiyi(WTxi+b)(2.3)
此时,我们得到了对偶问题的最大最小表述,同样的,我们试图去求解
θD(α)中的
minW,b,我们会发现由于
L(W,b,α)=12||W||2+∑Ni=1αi−∑Ni=1αiyi(WTxi+b)对于
W来说是凸函数,因此可以通过梯度的方法求得其最小值点(即是其极小值点)。
求解minW,bL(W,b,α),因为L(W,b,α)是凸函数,我们对采用求梯度的方法求解其最小值(也是KKT条件中的,∇WL(W,b,α)=0和∇bL(W,b,α)=0):
∂L∂W=W−∑i=1Nαiyixi=0,i=1,⋯,N(2.4)
∂L∂b=∑i=1Nαiyi=0,i=1,⋯,N(2.5)
得出:
W=∑i=1Nαiyixi, ∑i=1Nαiyi=0, αi≥0,i=1,⋯,N(2.6)
将其代入
g(x),注意到
∑Ni=1αiyi=0,得:
g(x)=12∑i=1Nαiyixi∑j=1Najyjxj+∑i=1Nαi−∑i=1Nαiyi(∑j=1Nαjyjxj⋅xi+b)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
整理为:
maxαg(x)=maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t. ∑i=1Nαiyi=0αi≥0,i=1,⋯,N(2.7)
等价为求最小问题:
minαg(x)=minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0αi≥0,i=1,⋯,N(2.8)
根据Karush–Kuhn–Tucker(KKT)条件,我们有:
∇WL(W∗,b∗,α∗)=W∗−∑i=1Nα∗iyixi=0⟹W∗=∑i=1Nα∗iyixi(2.9)
∇bL(W∗,b∗,α∗)=−∑i=1Nα∗iyi=0(2.10)
α∗i(1−yi(W∗xi+b∗))=0(2.11)
1−yi(W∗xi+b∗)≤0(2.12)
α∗i≥0(2.13)
前两个式子我们已经在求极值的时候利用了,得知:
W∗=∑i=1Nα∗iyixi(2.14)
并且其中至少有一个
α∗j>0,对此
j有,
yj(W∗xj+b∗)−1=0
代入刚才的
W∗,我们有
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)(2.15)
所以决策超平面为:
∑i=1Nα∗iyi(xi⋅x)+b∗=0(2.16)
分类超平面为:
θ(x)=sign(∑i=1Nα∗iyi(xi⋅x)+b∗)(2.17)
其中,我们可以观察到超平面只是依赖于
α∗i>0的样本点
xi,而其他样本点对其没有影响,所以这些样本是对决策超平面起着决定性作用的,因此我们将
α∗i>0对应的样本点集合
xi称为
支持向量。同时,我们可以这样理解当
α∗i>0时,我们有
1−yi(W∗xi+b)=0,这个恰恰是表明了
支持向量的函数间隔都是1,恰好和我们之前的设定一致。
至此,我们得到了硬间隔线性支持向量机的数学表述形式,所谓硬间隔线性支持向量机,就是满足我之前的假设
两类样本是线性可分的,总是存在一个超平面WTx+b可以将其完美分割开。
但是,在现实生活中的数据往往是或本身就是非线性可分但是近似线性可分的,或是线性可分但是具有噪声的,以上两种情况都会导致在现实应用中,硬间隔线性支持向量机变得不再实用,因此我们将会在后续讨论用以解决近似线性可分的软间隔线性支持向量机和基于kernel的支持向量机,后者可以解决非线性可分的问题。下图表示了硬间隔线性支持向量机和软间隔支持向量机之间的区别。
![hard_margin]()
在下一篇中,我们紧接着现在的内容,介绍序列最小最优化算法(Sequential Minimal Optimization,SMO),用于求解θD(x),得到α∗i以便于得到超平面的W∗和b。我们将在其他文章中介绍软间隔线性支持向量机,广义拉格朗日乘数法,KKT条件和基于kernel的支持向量机。
这里我们要记住我们需要最优化的目的式子,我们以后将会反复提到这个式子。
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
s.t. ∑i=1Nαiyi=0
αi≥0,i=1,⋯,N