求解凸优化问题的对偶上升法

考虑优化问题:
min ⁡ x f ( x ) s . t . c 1 ( x ) = 0 c 2 ( x ) ≥ 0 \begin{array}{ll} \min_x & f(x) \\\\ s.t. & c_1(x) = 0 \\\\ & c_2(x) \geq 0 \end{array} minxs.t.f(x)c1(x)=0c2(x)0

构造拉格朗日函数:
L ( x , λ ) = f ( x ) − λ 1 c 1 ( x ) − λ 2 c 2 ( x ) L(x,\lambda) = f(x) -\lambda_1 c_1(x) - \lambda_2 c_2(x) L(x,λ)=f(x)λ1c1(x)λ2c2(x)
等式约束的对偶变量 λ 1 \lambda_1 λ1 在拉格朗日函数中取正取负都行,但不等式约束的对偶变量 λ 2 \lambda_2 λ2 在这里取正。

因此在可行域 D = { x ∣ c 1 ( x ) = 0 , c 2 ( x ) ≥ 0 } D=\{x| c_1(x) = 0, c_2(x) \geq0\} D={xc1(x)=0,c2(x)0} 内,原目标函数 f ( x ) f(x) f(x) 是拉格朗日函数的一个上界,即
max ⁡ λ L ( x , λ ) = { f ( x ) , x ∈ D , + ∞ , o t h e r w i s e . \max_{\lambda} L(x,\lambda) = \left\{ \begin{array}{lr} f(x), & x \in D, \\ +\infty, & otherwise. \end{array} \right. λmaxL(x,λ)={f(x),+,xD,otherwise.

所以原优化问题等价于:
min ⁡ x f ( x ) = min ⁡ x max ⁡ λ L ( x , λ ) \min_x f(x) = \min_x \max_\lambda L(x,\lambda) xminf(x)=xminλmaxL(x,λ)

原来的约束优化问题转成了一个 min ⁡ max ⁡ \min \max minmax 问题。

对偶问题

要引出对偶问题,就需要用到一个非常重要的不等式:
min ⁡ x max ⁡ λ L ( x , λ ) ≥ max ⁡ λ min ⁡ x L ( x , λ ) (1) \min_x \max_\lambda L(x,\lambda) \geq \max_\lambda \min_x L(x,\lambda) \tag{1} xminλmaxL(x,λ)λmaxxminL(x,λ)(1)

证明起来非常容易,因为: max ⁡ λ L ( x , λ ) ≥ L ( x , λ ) ≥ min ⁡ x L ( x , λ ) \max_\lambda L(x,\lambda) \geq L(x,\lambda) \geq \min_x L(x,\lambda) λmaxL(x,λ)L(x,λ)xminL(x,λ)

那么上式左端的最小值也会大于右端的最大值,如(1)所示。

max ⁡ min ⁡ \max \min maxmin 问题称为原问题的对偶问题,对偶问题的最优值小于等于原问题的最优值,两者之差(绝对值)称为对偶间隙。当对偶间隙为零时,对偶问题的最优解就是原问题的最优解。所以有时候对偶问题比原问题更容易求解时,可以选择求解对偶问题。

对偶上升法

当凸优化问题满足强对偶条件,对偶间隙为零,即
min ⁡ x max ⁡ λ L ( x , λ ) = max ⁡ λ min ⁡ x L ( x , λ ) \min_x \max_\lambda L(x,\lambda) = \max_\lambda \min_x L(x,\lambda) xminλmaxL(x,λ)=λmaxxminL(x,λ)

这就意味着先找最优的 x x x 还是先找最优的 λ \lambda λ 没有区别,那么我们自然想到交替优化的方法:

  • 随机初始化 x 0 , λ 0 x_0, \lambda_0 x0,λ0
  • 更新 x x x,使得 x t + 1 = arg ⁡ min ⁡ x L ( x , λ t ) x_{t+1} = \arg \min_x L(x,\lambda_{t}) xt+1=argminxL(x,λt)
  • 更新 λ \lambda λ,使得 λ t + 1 = arg ⁡ max ⁡ λ L ( x t + 1 , λ ) \lambda_{t+1} = \arg \max_\lambda L(x_{t+1},\lambda) λt+1=argmaxλL(xt+1,λ),甚至为了方便可以直接用梯度上升法 λ t + 1 = λ t + η t ∇ λ L ( x t + 1 , λ ) \lambda_{t+1} = \lambda_{t} + \eta_t \nabla_\lambda L(x_{t+1},\lambda) λt+1=λt+ηtλL(xt+1,λ)

是不是非常简单!!!最重要的是,拉格朗日函数对对偶变量的梯度实在是太简单了!!!!
∇ λ 1 L ( x ∗ , λ ) = − c 1 ( x ∗ ) ∇ λ 2 L ( x ∗ , λ ) = − c 2 ( x ∗ ) \begin{array}{ll} \nabla_{\lambda_1} L(x^*, \lambda) &=& -c_1(x^*) \\ \nabla_{\lambda_2} L(x^*, \lambda) &= &-c_2(x^*) \end{array} λ1L(x,λ)λ2L(x,λ)==c1(x)c2(x)

对偶上升法中迭代的停止条件:

  1. 对偶间隙足够小
  2. 原问题的约束条件满足
  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值