拉格朗日对偶问题(Lagrange duality)

本文深入浅出地介绍了机器学习中拉格朗日对偶性的概念及其应用,从原始问题出发,逐步推导出对偶问题,并详细解释了二者之间的关系及KKT条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识。


1.原始问题

假设f(x),ci(x),hj(x)f(x),c_i(x),h_j(x)f(x),ci(x),hj(x)是定义在RnR^nRn上的连续可微函数,考虑约束最优化问题:

min⁡x∈Rnf(x)s.t.ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,k \begin{aligned} \min_{x \in R^n}\quad &f(x) \\ s.t.\quad&c_i(x) \le 0 , i=1,2,\ldots,k\\ &h_j(x) = 0 , j=1,2,\ldots,k \end{aligned} xRnmins.t.f(x)ci(x)0,i=1,2,,khj(x)=0,j=1,2,,k

称为约束最优化问题的原始问题
现在如果不考虑约束条件,原始问题就是:

min⁡x∈Rnf(x)\min_{x \in R^n} f(x) xRnminf(x)

因为假设其连续可微,利用高中的知识,对f(x)f(x)f(x)求导数,然后令导数为0,就可解出最优解很简单. 但是问题来了,这里有约束条件,必须想办法把约束条件去掉才行, 拉格朗日函数派上用场了。


引进广义拉格朗日函数(generalized Lagrange function):

L(x,α,β)=f(x)+∑i=0kαici(x)+∑j=1lβjhj(x) \mathcal{L}(x,\alpha,\beta) = f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x) L(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)

不要怕这个式子,也不要被拉格朗日的名字给唬住了,让我们慢慢剖析!这里,x=(x(1),x(2),…,x(n))∈Rn,αi,βjx=(x^{(1)},x^{(2)},\ldots,x^{(n)}) \in R^n,\alpha_i,\beta_jx=(x(1),x(2),,x(n))Rn,αi,βj拉格朗日乘子(其实就是上面函数中的参数而已),特别要求αi≥0\alpha_i \ge 0αi0


现在,如果L(x,α,β)\mathcal{L}(x,\alpha,\beta)L(x,α,β)看作是关于αi,βj\alpha_i,\beta_jαi,βj的函数,要求其最大值,即

max⁡α,β:αi≥0L(x,α,β) \max_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta) α,β:αi0maxL(x,α,β)

再次注意L(x,α,β)\mathcal{L}(x,\alpha,\beta)L(x,α,β)是一个关于αi,βj\alpha_i,\beta_jαi,βj的函数,优化就是确定αi,βj\alpha_i,\beta_jαi,βj的值使得L(x,α,β)\mathcal{L}(x,\alpha,\beta)L(x,α,β)取得最大值(此过程中把xxx看做常量),确定了αi,βj\alpha_i,\beta_jαi,βj的值,就可以得到L(x,α,β)\mathcal{L}(x,\alpha,\beta)L(x,α,β)的最大值,因为αi,βj\alpha_i,\beta_jαi,βj已经确定,显然最大值max⁡α,β:αi≥0L(x,α,β)\max\limits_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta)α,β:αi0maxL(x,α,β)就是只和xxx有关的函数,定义这个函数为:

θP(x)=max⁡α,β:αi≥0L(x,α,β) \theta_P(x) = \max_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta) θP(x)=α,β:αi0maxL(x,α,β)

其中

L(x,α,β)=f(x)+∑i=0kαici(x)+∑j=1lβjhj(x) \mathcal{L}(x,\alpha,\beta) = f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x) L(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)


下面通过xxx是否满足约束条件两方面来分析这个函数:

  • 考虑xxx不满足原始的约束,即存在ci(x)>0c_{i}(x) \gt 0ci(x)>0或者hj(x)≠0h_j(x)\neq0hj(x)=0的情况,则:
    θP(x)=max⁡α,β:αi≥0[f(x)+∑i=0kαici(x)+∑j=1lβjhj(x)]=+∞ \begin{aligned} \theta_P(x) & = \max_{\alpha,\beta:\alpha_i \ge 0}[f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x)] \\ &=+\infty \end{aligned} θP(x)=α,β:αi0max[f(x)+i=0kαici(x)+j=1lβjhj(x)]=+

注意通过αi,βj\alpha_i,\beta_jαi,βj最大化θP\theta_PθP的过程中,若ci(x)>0c_i(x)\gt0ci(x)>0,可令αi→+∞\alpha_i\to+\inftyαi+,若hj(x)≠0h_j(x)\neq0hj(x)=0,很容易取值使得βjhj(x)→+∞\beta_jh_j(x)\to+\inftyβjhj(x)+,即不满足原始约束时,θP(x)\theta_P(x)θP(x)的结果为无穷大。

  • 考虑xxx满足原始的约束,则:

θP(x)=max⁡α,β:αi≥0[f(x)+∑i=0kαici(x)+∑j=1lβjhj(x)]=max⁡α,β:αi≥0[f(x)]=f(x) \begin{aligned} \theta_P(x) & = \max_{\alpha,\beta:\alpha_i \ge 0}[f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x)] \\ &=\max_{\alpha,\beta:\alpha_i \ge 0}[f(x)]=f(x) \end{aligned} θP(x)=α,β:αi0max[f(x)+i=0kαici(x)+j=1lβjhj(x)]=α,β:αi0max[f(x)]=f(x)

通过αi,βj\alpha_i,\beta_jαi,βj最大化θP\theta_PθP的过程中,由于hj(x)=0h_j(x) = 0hj(x)=0,无论βj\beta_jβj取何值,第三项可直接消去。若ci(x)≤0c_i(x) \le 0ci(x)0最大化θP\theta_PθPαi\alpha_iαi只能取值为0,这样第二项也可以消去。将f(x)f(x)f(x)看成一个常量,常量的最大值就是其本身。


通过上面两条分析可以得出:

θP(x)={f(x),x满足原始问题约束+∞,其他 \theta_P(x)= \begin{cases} f(x), &x满足原始问题约束\\ +\infty, &其他 \end{cases} θP(x)={f(x),+,x

那么在满足约束条件下

min⁡xθP(x)=min⁡xmax⁡α,β:αi≥0L(x,α,β)=min⁡xf(x) \min_x\theta_P(x)=\min_x\max_{\alpha,\beta:\alpha_i\ge0}L(x,\alpha,\beta)=\min_xf(x) xminθP(x)=xminα,β:αi0maxL(x,α,β)=xminf(x)

min⁡xθP(x)\min\limits_x\theta_P(x)xminθP(x)与原始优化问题等价,所以min⁡xθP(x)\min\limits_x\theta_P(x)xminθP(x)常用代表原始问题,下标 P 表示原始问题,定义原始问题的最优值

p∗=min⁡xθP(x)p^*=\min_x\theta_P(x)p=xminθP(x)


原始问题讨论就到这里,做一个总结:通过拉格朗日的办法重新定义一个无约束问题这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化!


2.对偶问题

定义关于α,β\alpha,\betaα,β的函数:

θD(α,β)=min⁡xL(x,α,β)\theta_D(\alpha,\beta)=\min_x\mathcal{L}(x,\alpha,\beta)θD(α,β)=xminL(x,α,β)

注意等式右边是关于xxx的函数的最小化,确定xxx以后,最小值就只与α,β\alpha,\betaα,β有关,所以是一个关于α,β\alpha,\betaα,β的函数.


考虑极大化θD(α,β)=min⁡xL(x,α,β)\theta_D(\alpha,\beta)=\min\limits_x \mathcal{L}(x,\alpha,\beta)θD(α,β)=xminL(x,α,β),即

max⁡α,β:αi≥0θD(α,β)=max⁡α,β:αi≥0min⁡xL(x,α,β)\max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta)=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta)α,β:αi0maxθD(α,β)=α,β:αi0maxxminL(x,α,β)

这就是原始问题的对偶问题,再把原始问题写出来:

min⁡xθP(x)=min⁡xmax⁡α,β:αi≥0L(x,α,β)\min_x\theta_P(x)=\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta) xminθP(x)=xminα,β:αi0maxL(x,α,β)

形式上可以看出很对称,只不过原始问题是先固定L(x,α,β)\mathcal{L}(x,\alpha,\beta)L(x,α,β)中的xxx,优化出参数α,β\alpha,\betaα,β,再优化最优xxx,而对偶问题是先固定α,β\alpha,\betaα,β,优化出最优xxx,然后再确定参数α,β\alpha,\betaα,β

定义对偶问题的最优值

d∗=max⁡α,β:αi≥0θD(α,β)d^*=\max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta)d=α,β:αi0maxθD(α,β)


3. 原始问题与对偶问题的关系

定理若原始问题与对偶问题都有最优值,则

d∗=max⁡α,β:αi≥0min⁡xL(x,α,β)≤min⁡xmax⁡α,β:αi≥0L(x,α,β)=p∗ \begin{aligned} d^*&=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta)\\ &\le\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=p^* \end{aligned}d=α,β:αi0maxxminL(x,α,β)xminα,β:αi0maxL(x,α,β)=p

证明:对任意的和,有
θD(α,β)=min⁡xL(x,α,β)≤L(x,α,β)≤max⁡α,β:αi≥0L(x,α,β)=θP(x) \begin{aligned} \theta_D(\alpha,\beta)&=\min_x\mathcal{L}(x,\alpha,\beta)\le \mathcal{L}(x,\alpha,\beta)\\ &\le\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=\theta_P(x) \end{aligned}θD(α,β)=xminL(x,α,β)L(x,α,β)α,β:αi0maxL(x,α,β)=θP(x)

θD(α,β)≤θP(x)\theta_D(\alpha,\beta)\le\theta_P(x)θD(α,β)θP(x)

由于原始问题与对偶问题都有最优值,所以

max⁡α,β:αi≥0θD(α,β)≤min⁡xθP(x)\max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta)\le\min_x\theta_P(x)α,β:αi0maxθD(α,β)xminθP(x)

d∗=max⁡α,β:αi≥0min⁡xL(x,α,β)≤min⁡xmax⁡α,β:αi≥0L(x,α,β)=p∗ \begin{aligned} d^*&=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta)\\ &\le\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=p^* \end{aligned}d=α,β:αi0maxxminL(x,α,β)xminα,β:αi0maxL(x,α,β)=p

也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,于是可以得出下面的推论:

推论:设x∗x^*xα∗,β∗\alpha^*,\beta^*α,β分别是原始问题和对偶问题的可行解,如果d∗=p∗d^*=p^*d=p,那么x∗x^*xα∗,β∗\alpha^*,\beta^*α,β都是原始问题和对偶问题的最优解。

所以,当原始问题和对偶问题的最优值相等:d∗=p∗d^*=p^*d=p时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),但是到底满足什么样的条件才能使得d∗=p∗d^*=p^*d=p呢,这就是下面要阐述的KKT 条件


4. KKT 条件

定理:对于原始问题和对偶问题,假设函数f(x)f(x)f(x)ci(x)c_i(x)ci(x)是凸函数,hi(x)h_i(x)hi(x)是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束ci(x)c_i(x)ci(x)是严格可行的,即存在xxx,对所有iiici(x)<0c_i(x)\lt0ci(x)<0,则x∗x^*xα∗,β∗\alpha^*,\beta^*α,β分别是原始问题和对偶问题的最优解的充分必要条件x∗x^*xα∗,β∗\alpha^*,\beta^*α,β满足下面的Karush-Kuhn-Tucker(KKT)条件:

∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x)=0,i=1,2,…,k(KKT对偶互补条件)ci(x)≤0,i=1,2,…,kαi∗≥0,i=1,2,…,khj(x∗)=0,j=1,2,…,l \begin{aligned} & \nabla_xL(x^*,\alpha^*,\beta^*)=0\\ &\nabla_\alpha L(x^*,\alpha^*,\beta^*)=0\\ &\nabla_\beta L(x^*,\alpha^*,\beta^*)=0\\ &\alpha_i^*c_i(x)=0,i=1,2,\ldots,k(KKT对偶互补条件)\\ &c_i(x)\le0,i=1,2,\ldots,k\\ &\alpha_i^*\ge0,i=1,2,\ldots,k\\ &h_j(x^*)=0,j=1,2,\ldots,l \end{aligned} xL(x,α,β)=0αL(x,α,β)=0βL(x,α,β)=0αici(x)=0,i=1,2,,k(KKT)ci(x)0,i=1,2,,kαi0,i=1,2,,khj(x)=0,j=1,2,,l

关于KKT 条件的理解:前面三个条件是由解析函数的知识,对于各个变量的偏导数为0(这就解释了为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。

特别注意αi∗>0\alpha_i^*\gt0αi>0时,由KKT对偶互补条件可知:ci(x∗)=0c_i(x^*)=0ci(x)=0,这个知识点会在 SVM 的推导中用到.

5. 总结

一句话,把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值