利用拉格朗日对偶性求解带约束条件的最优化问题

本文介绍了如何使用拉格朗日乘子法处理带约束的最优化问题,通过构造广义拉格朗日函数,将原问题转化为无约束的极大极小值问题。文中还讨论了原始问题与对偶问题的关系,以及KKT条件在确保问题等价性中的作用。
摘要由CSDN通过智能技术生成

利用拉格朗日对偶性求解带约束条件的最优化问题

1 原始问题

设 f ( x ) , c i ( x ) , h j ( x ) 是定义在 R n 的连续可微函数,求解在下面约束条件时, f ( x ) 的极小值。 min ⁡ x ∈ R n { f ( x ) } s . t . c i ( x ) ≤ 0 , i = 1 , 2 , . . . , k h j ( x ) = 0 , j = 1 , 2 , . . . , l ( 公式一 ) 这就是带有约束条件的原始问题 设f(x),c_i(x),h_j(x)是定义在R^n的连续可微函数,求解在下面约束条件时,f(x)的极小值。\\ \min \limits_{x\in R^n} \{f(x)\} \\ s.t. \quad c_i(x)\leq0,i=1,2,...,k \\ \quad \quad \quad h_j(x)=0,j=1,2,...,l \\ (公式一)\\ 这就是带有约束条件的原始问题 f(x),ci(x),hj(x)是定义在Rn的连续可微函数,求解在下面约束条件时,f(x)的极小值。xRnmin{f(x)}s.t.ci(x)0,i=1,2,...,khj(x)=0,j=1,2,...,l(公式一)这就是带有约束条件的原始问题

需要用到拉格朗日乘子法,将不等式换成等式,那么我们就可以引进广义拉格朗日函数
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) ( 公式二 ) 对于每个约束条件前面都来加一个拉格朗日乘子,对应的 α i 有 k 维,对应的 β j 有 l 维,而原始的 f ( x ) 有 n 维。 L(x,\alpha,\beta)=f(x)+\sum\limits_{i=1}^k\alpha_ic_i(x)+\sum\limits_{j=1}^l\beta_jh_j(x)(公式二)\\ 对于每个约束条件前面都来加一个拉格朗日乘子,对应的\alpha_i有k维,对应的\beta_j有l维,而原始的f(x)有n维。 L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)(公式二)对于每个约束条件前面都来加一个拉格朗日乘子,对应的αik维,对应的βjl维,而原始的f(x)n维。
我们对广义拉格朗日函数先最大化、后最小化。
我们令 θ P ( x ) = max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) 因此, min ⁡ x [ θ P ( x ) ] = min ⁡ x [ max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) ] = min ⁡ x { f ( x ) + max ⁡ α , β ; α i ≥ 0 [ ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) ] } ( 公式三 ) 其中, P 是 [ P r i m a l ] , 即原始的含义。 我们令\theta_P(x)=\max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta)\\ 因此,\min \limits_{x} [\theta_P(x)] \\ =\min \limits_{x}[ \max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta) ]\\ =\min\limits_{x} \{ f(x)+\max \limits_{\alpha,\beta;\alpha_i \geq0}[\sum\limits_{i=1}^k\alpha_ic_i(x)+\sum\limits_{j=1}^l\beta_jh_j(x)] \}(公式三)\\ 其中,P是[Primal],即原始的含义。 我们令θP(x)=α,β;αi0maxL(x,α,β)因此,xmin[θP(x)]=xmin[α,β;αi0maxL(x,α,β)]=xmin{f(x)+α,β;αi0max[i=1kαici(x)+j=1lβjhj(x)]}(公式三)其中,P[Primal],即原始的含义。
拉格朗日函数为什么要先最大化呢?

在满足KKT条件的情况下,公式(一)和公式(三)是等价的。

暂且抛开KKT条件的具体细节。很明显,如果 α,β 是非零常数,那么这两个式子是不可能相等的。现在把这两组乘子看成自变量,然后调节之使 L(x,α,β) 最大化。

对于公式(三),我们将 x 分成两部分分析:

  • 可行解区域内,此时公式(一)中的约束条件都得到满足。

    • 因为 h j ( x ) = 0 h_j(x)=0 hj(x)=0 , 所以不管β如何变化,必然有 β j h j ( x ) = 0 β_jh_j(x)=0 βjhj(x)=0
    • c i ( x ) ≤ 0 c_i(x)≤0 ci(x)0, 且限定了 α i ≥ 0 α_i≥0 αi0,则 α i c i ( x ) α_ic_i(x) αici(x) 最大值为0。
    • 综上,在可行解区域内 θ P ( x ) = f ( x ) \theta_P(x)=f(x) θP(x)=f(x)
  • 可行解区域外,此时公式(一)的约束条件未满足。

    • 如果 α i 和 β j α_i和β_j αiβj取无穷大,那么 θ P ( x ) = + ∞ \theta_P(x)=+\infty θP(x)=+

因此,综合上面两个论域, f ( x ) f(x) f(x)在可行解区域内最小化,等于 max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) \max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta) α,β;αi0maxL(x,α,β)的最小化,而在可行解区域外, max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) \max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta) α,β;αi0maxL(x,α,β)无极值。这样当我们尝试最小化 max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) \max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta) α,β;αi0maxL(x,α,β)时也就相当于求解公式(一)了。即通过构造拉格朗日函数,我们将有约束的优化问题转化成了无约束的优化问题。

这个原始问题的最优值就可以写成:
p ∗ = min ⁡ x θ P ( x ) = min ⁡ x max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) 这样就转为了极小极大值的问题,记为 p ∗ 。 p^*=\min \limits_{x}\theta_P(x) = \min \limits_{x} \max \limits_{\alpha,\beta;\alpha_i \geq0}L(x,\alpha,\beta) \\ 这样就转为了极小极大值的问题,记为p^*。 p=xminθP(x)=xminα,β;αi0maxL(x,α,β)这样就转为了极小极大值的问题,记为p

2 对偶问题

在原始问题中,我们是先对(α,β)求最大值,未知的是x函数。

如果这次我们是先对x求最小值,那么未知的是α和β函数。
θ D ( α , β ) = min ⁡ x L ( x , α , β ) 这里的 D 代表了「 D u a l 」 , 意味着对偶问题。那么对偶问题的最优值就可以写成: d ∗ = max ⁡ α , β ; α i ≥ 0 θ D ( α , β ) = max ⁡ α , β ; α i ≥ 0 min ⁡ x L ( x , α , β ) 这就写成了极大极小值的问题。 \theta_D(\alpha,\beta)=\min \limits_{x}L(x,\alpha,\beta)\\ 这里的D代表了 「Dual」, 意味着对偶问题。那么对偶问题的最优值就可以写成:\\ d^*=\max \limits_{\alpha,\beta;\alpha_i \geq0}\theta_D(\alpha,\beta) = \max \limits_{\alpha,\beta;\alpha_i \geq0}\min \limits_{x}L(x,\alpha,\beta) \\ 这就写成了极大极小值的问题。 θD(α,β)=xminL(x,α,β)这里的D代表了「Dual,意味着对偶问题。那么对偶问题的最优值就可以写成:d=α,β;αi0maxθD(α,β)=α,β;αi0maxxminL(x,α,β)这就写成了极大极小值的问题。

3 原始问题和对偶问题的关系

我们可以手动推导下原始问题和对偶问题的关系。

在这里插入图片描述

利用这个等式,我们就可以用对偶问题来求解有约束的最优化原始问题,实现了极大极小值之间的转换,便于计算出最优解。

KKT条件如下

  • 函数 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x)是凸函数

  • h j ( x ) h_j(x) hj(x) 是仿射函数

  • 并且不等式约束 c i ( x ) c_i(x) ci(x)是严格可行的

这里说明凸函数和仿射函数的意思:
凸函数是指 f ( x ) 在任意两个向量 x 1 , x 2 的函数满足: f ( x 1 + x 2 2 ) < = f ( x 1 ) + f ( x 2 ) 2 特点是「局部最小值即全局最小值」,意味着可以通过偏微分函数为零求出最小值。 仿射函数就是最高次数为 1 的多项式函数,一般形式为 f ( x ) = A x + b 凸函数是指f(x)在任意两个向量x_1,x_2的函数满足:\\ f(\frac{x_1+x_2}{2})<=\frac{f(x_1)+f(x_2)}{2} \\ 特点是「局部最小值即全局最小值」,意味着可以通过偏微分函数为零求出最小值。\\ 仿射函数就是最高次数为1的多项式函数,一般形式为f(x)= Ax+b 凸函数是指f(x)在任意两个向量x1,x2的函数满足:f(2x1+x2)<=2f(x1)+f(x2)特点是「局部最小值即全局最小值」,意味着可以通过偏微分函数为零求出最小值。仿射函数就是最高次数为1的多项式函数,一般形式为f(x)=Ax+b

KKT条件的公式表达:

在这里插入图片描述

在最大熵模型以及SVM等模型中,我们就需要将原始问题转换为对偶问题进行求解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值