拉格朗日对偶优化

转自http://blog.csdn.net/wangkr111/article/details/21170809

等式约束的极值问题求法,比如下面的最优化问题:

clip_image001[9]

目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用clip_image003[14]来表示算子,得到拉格朗日公式为

clip_image004[6]

L是等式约束的个数。

然后分别对w和clip_image003[15]求偏导,使得偏导数等于0,然后解出w和clip_image006[6]。至于为什么引入拉格朗日算子可以求出极值,原因是f(w)的dw变化方向受其他不等式的约束,dw的变化方向与f(w)的梯度垂直时才能获得极值,而且在极值处,f(w)的梯度与其他等式梯度的线性组合平行,因此他们之间存在线性关系。(参考《最优化与KKT条件》)

然后我们探讨有不等式约束的极值问题求法,问题如下:

clip_image007[6]

我们定义一般化的拉格朗日公式

clip_image008[6]

这里的clip_image010[50]clip_image012[14]都是拉格朗日算子,分别对应于不等式约束,等式约束。如果按这个公式求解,会出现问题。因为我们求解的是最小值,而这里的clip_image014[6]已经不是0了,我们可以将clip_image010[51]调整成很大的正值,来使最后的函数结果是负无穷。因此我们需要排除这种情况,我们定义下面的函数:

clip_image015[6]

这里的P代表primal。假设clip_image017[6]或者clip_image019[6],那么我们总是可以调整clip_image010[52]clip_image012[15]来使得clip_image021[10]有最大值为正无穷。而只有g和h满足约束时,clip_image021[11]为f(w)。这个函数的精妙之处在于clip_image023[6],而且求极大值。

因此我们可以写作

clip_image024[6]

这样我们原来要求的min f(w)可以转换成求clip_image026[10]了。

clip_image027[6]

我们使用clip_image029[6]来表示clip_image026[11]。如果直接求解,首先面对的是两个参数,而clip_image010[53]也是不等式约束,然后再在w上求最小值。这个过程不容易做,那么怎么办呢?

我们先考虑另外一个问题clip_image030[6]

D的意思是对偶,clip_image031[10]将问题转化为先求拉格朗日关于w的最小值,将clip_image033[6]clip_image003[16]看作是固定值。之后在对clip_image031[11]求最大值的话:

clip_image034[6]

这个问题是原问题的对偶问题,相对于原问题只是更换了min和max的顺序,而一般更换顺序的结果是Max Min(X) <= MinMax(X)。然而在这里两者相等。用clip_image036[6]来表示对偶问题如下:

clip_image037[6]

下面解释在什么条件下两者会等价。假设f和g都是凸函数,h是仿射的(affine,clip_image038[6])。并且存在w使得对于所有的i,clip_image040[10]。在这种假设下,一定存在clip_image042[14]使得clip_image044[14]是原问题的解,clip_image046[6]是对偶问题的解。还有clip_image047[6]另外,clip_image042[15]满足库恩-塔克条件(Karush-Kuhn-Tucker, KKT condition),该条件如下:

clip_image048[6]

(3)is gradient of L with respect to primial pararmeter w

(4)is gradient of L with respect to dual varibles clip_image012[15] corresponding to equal constraints

(5)(6)is nonequal constraints

(7)is conditions for dual varibles clip_image010[53] corresponding to nonequal constraints

所以如果clip_image042[16]满足了库恩-塔克条件,那么他们就是原问题和对偶问题的解。让我们再次审视公式(5),这个条件称作是KKT dual complementarity条件。这个条件隐含了如果clip_image050[6],那么clip_image052[10]。也就是说,clip_image052[11]时,w处于可行域的边界上,这时才是起作用的约束。而其他位于可行域内部(clip_image054[6]的)点都是不起作用的约束,其clip_image056[6]。这个KKT双重补足条件会用来解释支持向量和SMO的收敛测试。

KKT的总体思想是将极值会在可行域边界上取得,也就是不等式为0或等式约束里取得,而最优下降方向一般是这些等式的线性组合,其中每个元素要么是不等式为0的约束,要么是等式约束。对于在可行域边界内的点,对最优解不起作用,因此前面的系数为0。

总结:

在使用拉格朗日对偶法求解时,步骤如下

  1. 构造拉格朗日函数
  2. 求解clip_image030[6],即clip_image070[10]关于primal varibles求导,得到原变量的含有对偶变量表达式
  3. 添加KKT条件
  4. clip_image069[11],得到dual varibles
  5. 将optimal dual varibles代入表达式,得到primal varibles


An example 

对于SVM的优化问题:

clip_image057[6]

我们将约束条件改写为:

clip_image058[6]

构造拉格朗日函数如下:

clip_image068[6]

注意到这里只有clip_image010[54]没有clip_image012[16]是因为原问题中没有等式约束,只有不等式约束。

下面我们按照对偶问题的求解步骤来一步步进行,

clip_image069[10]

首先求解clip_image070[10]的最小值,对于固定的clip_image010[55]clip_image070[11]的最小值只与w和b有关。对w和b分别求偏导数。

clip_image071[6]

clip_image072[6]

并得到

clip_image073[6]

将上式带回到拉格朗日函数中得到,此时得到的是该函数的最小值(目标函数是凸函数)

代入后,化简过程如下:

  最后得到

clip_image074[6]

由于最后一项是0,因此简化为

clip_image075[6]

这里我们将向量内积clip_image076[6]表示为clip_image077[6]

此时的拉格朗日函数只包含了变量clip_image010[56]。然而我们求出了clip_image010[57]才能得到w和b。

接着是极大化的过程clip_image069[11]

clip_image078[6]

前面提到过对偶问题和原问题满足的几个条件,首先由于目标函数和线性约束都是凸函数,而且这里不存在等式约束h。存在w使得对于所有的i,clip_image040[11]。因此,一定存在clip_image080[6]使得clip_image044[15]是原问题的解,clip_image082[10]是对偶问题的解。在这里,求clip_image010[58]就是求clip_image082[11]了。

如果求出了clip_image010[59],根据clip_image083[6]即可求出w(也是clip_image044[16],原问题的解)。然后

clip_image084[6]

即可求出b。即离超平面最近的正的函数间隔要等于离超平面最近的负的函数间隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值