对偶方法(Dual Methods)

总目录

一、 凸优化基础(Convex Optimization basics)

  1. 凸优化基础(Convex Optimization basics)

二、 一阶梯度方法(First-order methods)

  1. 梯度下降(Gradient Descent)
  2. 次梯度(Subgradients)
  3. 近端梯度法(Proximal Gradient Descent)
  4. 随机梯度下降(Stochastic gradient descent)

三、对偶

  1. 线性规划中的对偶(Duality in linear programs)
  2. 凸优化中的对偶(Duality in General Programs)
  3. KKT条件(Karush-Kuhn-Tucker Conditions)
  4. 对偶的应用及拓展(Duality Uses and Correspondences)
  5. 对偶方法(Dual Methods)
  6. 交替方向乘子法(Alternating Direction Method of Multipliers)

Introduction

前一节我们介绍了对偶的应用以及共轭函数的性质。利用这些性质,我们本节讨论基于对偶的方法。

对偶梯度法

即使我们不能推导出闭合形式的对偶或共轭,我们依然可以使用基于对偶的次梯度法或梯度法(Dual gradient methods)。
比如考虑以下问题
min ⁡ x f ( x ) s u b j e c t   t o   A x = b \min_xf(x)\quad subject\ to\ Ax=b xminf(x)subject to Ax=b

其对偶问题为
max ⁡ u − f ∗ ( − A T u ) − b T u \max_u -f^*(-A^Tu)-b^Tu umaxf(ATu)bTu

其中 f ∗ f^* f f f f的共轭。定义 g ( u ) = − f ∗ ( − A T u ) − b T u g(u)=-f^*(-A^Tu)-b^Tu g(u)=f(ATu)bTu,则
∂ g ( u ) = A ∂ f ∗ ( − A T u ) − b \partial g(u)=A\partial f^*(-A^Tu)-b g(u)=Af(ATu)b

因而,根据共轭的性质,我们可以得到
∂ g ( u ) = A x − b w h e r e x ∈ arg ⁡ min ⁡ z f ( z ) + u T A z \partial g(u)=Ax-b\quad {\rm where}\quad x\in\arg\min_z f(z)+u^TAz g(u)=Axbwherexargzminf(z)+uTAz

对偶次梯度法(dual subgradient method)(最大化对偶目标函数)从一个初始的对偶变量 u ( 0 ) u^{(0)} u(0)开始,并对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...次迭代重复
x ( k ) ∈ arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x x^{(k)}\in \arg\min_x f(x)+(u^{(k-1)})^TAx x(k)argxminf(x)+(u(k1))TAx u ( k ) = u ( k − 1 ) + t k ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b) u(k)=u(k1)+tk(Ax(k)b)

步长 t k t_k tk可采用标准梯度方法选择。

f f f是严格凸函数,那么 f ∗ f^* f是可微的,因而该方法变为对偶梯度上升(dual gradient ascent),对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x ( k ) = arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx x(k)=argxminf(x)+(u(k1))TAx u ( k ) = u ( k − 1 ) + t k ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b) u(k)=u(k1)+tk(Ax(k)b)

此时每次迭代的 x ( k ) x^{(k)} x(k)都是唯一的。同样地,近端梯度方法及其加速方法都可以像通常的那样应用。

收敛分析

Lipschitz梯度和强凸性

假设 f f f是闭合的凸函数,那么 f f f关于参数 d d d强凸等价于 ∇ f ∗ \nabla f^* f关于参数 1 / d 1/d 1/d满足Lipschitz连续条件。

收敛保证

给定上述结论,我们可以得到对偶次梯度法的收敛率

  • 如果 f f f是关于参数 d d d强凸的,那么使用固定步长 t k = d t_k=d tk=d的对偶梯度上升方法的收敛率为 O ( 1 / ϵ ) O(1/\epsilon) O(1/ϵ)
  • 如果 f f f是关于参数 d d d强凸的,且 ∇ f \nabla f f是关于参数 L L L Lipschitz连续的,那么使用固定步长 t k = 2 / ( 1 / d + 1 / L ) t_k=2/(1/d+1/L) tk=2/(1/d+1/L)的对偶梯度上升方法的收敛率为 O ( l o g ( 1 / ϵ ) ) O(log(1/\epsilon)) O(log(1/ϵ))

对偶分解

等式约束

考虑如下问题
min ⁡ x ∑ i = 1 B f i ( x i ) s u b j e c t   t o   A x = b \min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ Ax=b xmini=1Bfi(xi)subject to Ax=b

其中 x = ( x 1 , . . . , x B ) ∈ R n x=(x_1,...,x_B)\in R^n x=(x1,...,xB)Rn分为 B B B组变量,每个变量 x i ∈ R n i x_i \in R^{n_i} xiRni。我们可以以此分割 A A A
A = [ A 1 , . . . , A B ] , w h e r e A i ∈ R m × n i A=[A_1,...,A_B], \quad {\rm where} \quad A_i\in R^{m\times n_i} A=[A1,...,AB],whereAiRm×ni

在计算梯度时,我们可以将其分割分解为 B B B个分离的问题:
x + ∈ arg ⁡ min ⁡ x ∑ i = 1 B f i ( x i ) + u T A x x^+\in \arg\min_x\sum^B_{i=1}f_i(x_i)+u^TAx x+argxmini=1Bfi(xi)+uTAx ⟺ x i + ∈ arg ⁡ min ⁡ x i f i ( x i ) + u T A i x i , i = 1 , . . . , B \Longleftrightarrow x^+_i\in \arg\min_{x_i}f_i(x_i)+u^TA_ix_i,\quad i=1,...,B xi+argximinfi(xi)+uTAixi,i=1,...,B

对偶分解算法:对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x i ( k ) ∈ arg ⁡ min ⁡ x i f i ( x i ) + ( u ( k − 1 ) ) T A i x i , i = 1 , . . . , B x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B xi(k)argximinfi(xi)+(u(k1))TAixi,i=1,...,B u ( k ) = u ( k − 1 ) + t k ( ∑ i = 1 B A i x i ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b) u(k)=u(k1)+tk(i=1BAixi(k)b)

可以将这两个步骤描述为:

  • 广播(Broadcast):将 u u u发送给 B B B个处理器,B个处理器并行优化找到各自的 x i x_i xi
  • 聚集(Gather):从每个处理器收集 A i x i A_ix_i Aixi,然后更新全局对偶变量 u u u

在这里插入图片描述

不等式约束

考虑如下问题
min ⁡ x ∑ i = 1 B f i ( x i ) s u b j e c t   t o   ∑ i = 1 B A i x i ≤ b \min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ \sum^B_{i=1}A_ix_i\leq b xmini=1Bfi(xi)subject to i=1BAixib

对偶分解算法(投影次梯度法):对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x i ( k ) ∈ arg ⁡ min ⁡ x i f i ( x i ) + ( u ( k − 1 ) ) T A i x i , i = 1 , . . . , B x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B xi(k)argximinfi(xi)+(u(k1))TAixi,i=1,...,B u ( k ) = ( u ( k − 1 ) + t k ( ∑ i = 1 B A i x i ( k ) − b ) ) + u^{(k)}=(u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b))_+ u(k)=(u(k1)+tk(i=1BAixi(k)b))+

其中 u + u_+ u+表示 u u u的正部分,即 ( u + ) i = max ⁡ { 0 , u i } , i = 1 , . . . , m (u_+)i=\max\{0,u_i\},\quad i=1,...,m (u+)i=max{0,ui},i=1,...,m

增广拉格朗日方法(乘子法)

对偶上升法的缺点在于其要求较强的约束条件来保证收敛。使用增广拉格朗日方法(Augmented Lagrangian method)(也称为乘子法,method of multipliers)可以对其做改进。我们将原问题变为:
min ⁡ x f ( x ) + ρ 2 ∥ A x − b ∥ 2 2 s u b j e c t   t o A x = b \begin{aligned} \min_{x}f(x)+\frac{\rho}{2}\|Ax-b\|^2_2\\ subject\ to\quad Ax=b\\ \end{aligned} xminf(x)+2ρAxb22subject toAx=b

其中 ρ > 0 \rho>0 ρ>0是一个参数。该形式明显等价于原问题,且当 A A A是满列秩时目标函数是强凸的。使用对偶梯度上升:对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x ( k ) = arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x + ρ 2 ∥ A x − b ∥ 2 2 x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2 x(k)=argxminf(x)+(u(k1))TAx+2ρAxb22 u ( k ) = u ( k − 1 ) + ρ ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+\rho(Ax^{(k)}-b) u(k)=u(k1)+ρ(Ax(k)b)

注意到步长选择变为了 t k = ρ , k = 1 , 2 , 3 , . . . t_k=\rho,\quad k=1,2,3,... tk=ρ,k=1,2,3,...。这是因为,既然 x ( k ) x^{(k)} x(k)最小化 f ( x ) + ( u ( k − 1 ) ) T A x + ρ 2 ∥ A x − b ∥ 2 2 f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2 f(x)+(u(k1))TAx+2ρAxb22,那么
0 ∈ ∂ f ( x ( k ) ) + A T ( u ( k − 1 ) + ρ ( A x ( k ) − b ) ) = ∂ f ( x ( k ) ) + A T u ( k ) \begin{aligned} 0&\in \partial f(x^{(k)})+A^T(u^{(k-1)}+\rho(Ax^{(k)}-b))\\ &=\partial f(x^{(k)})+A^Tu^{(k)} \end{aligned} 0f(x(k))+AT(u(k1)+ρ(Ax(k)b))=f(x(k))+ATu(k)

这是原问题的稳定性条件。因此,在相对温和的条件下( A x ( k ) − b Ax^{(k)}-b Ax(k)b接近0),KKT条件就可以满足, x ( k ) , u ( k ) x^{(k)}, u^{(k)} x(k),u(k)可达到最优值。

乘子法有较好的收敛性质,但缺点是失去了可分解性。那有没有同时具有好的收敛性和可分解性的方法呢,我们下次来做介绍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值