最优化学习笔记:对偶算法

8.5 对偶算法(1)

对于复合优化问题,许多实际问题的原始问题有时候比较难以处理,这时候可以考虑它的对偶问题.本节将讲解两种算法:一种是把前面提到的算法应用到对偶问题上,例如对偶近似点梯度法;另一种是同时把原始问题和对偶问题结合起来考虑,例如原始–对偶混合梯度类的算法.
为了方便起见,这一节主要考虑如下形式的问题:
( P ) min ⁡ x ∈ R n ψ ( x ) = f ( x ) + h ( A x ) ( 8.5.1 ) (\text{P})\quad\min\limits_{x\in\mathbb{R}^n}\quad\psi(x)=f(x)+h(Ax)\qquad(8.5.1) (P)xRnminψ(x)=f(x)+h(Ax)(8.5.1)

其中 f , h f, h f,h 都是闭凸函数, A ∈ R m × n A\in\mathbb{R}^{m\times n} ARm×n 为实数矩阵. 通过引入约束 y = A x y=Ax y=Ax, 可以写出与问题 (8.5.1) 等价的约束优化问题:
min ⁡ f ( x ) + h ( y ) s . t . y = A x ( 8.5.2 ) \begin{aligned}\min&\quad f(x)+h(y)\\\mathrm{s.t.}&\quad y=Ax\end{aligned}\qquad(8.5.2) mins.t.f(x)+h(y)y=Ax(8.5.2)

对约束 y = A x y=Ax y=Ax 引入乘子 z z z, 得到拉格朗日函数
L ( x , y , z ) = f ( x ) + h ( y ) − z T ( y − A x ) = ( f ( x ) + ( A T z ) T x ) + ( h ( y ) − z T y ) . \begin{aligned}L(x,y,z)&=f(x)+h(y)-z^{\mathrm{T}}(y-Ax)\\&=\big(f(x)+(A^{\mathrm{T}}z)^{\mathrm{T}}x\big)+\big(h(y)-z^{\mathrm{T}}y\big).\end{aligned} L(x,y,z)=f(x)+h(y)zT(yAx)=(f(x)+(ATz)Tx)+(h(y)zTy).

利用共轭函数的定义 (2.6.1), 可计算拉格朗日对偶问题
( D ) max ⁡ z ϕ ( z ) = − f ∗ ( − A T z ) − h ∗ ( z ) ( 8.5.3 ) \mathrm{(D)}\quad\max_z\quad\phi(z)=-f^*(-A^\mathrm{T}z)-h^*(z)\qquad(8.5.3) (D)zmaxϕ(z)=f(ATz)h(z)(8.5.3)

定义 2.19 (共轭函数) 任一适当函数 f f f 的共轭函数定义为 f ∗ ( y ) = sup ⁡ x ∈ dom f { y T x − f ( x ) } ( 2.6.1 ) f^*(y)=\sup\limits_{x\in\textbf{dom}f}\{y^\text{T}x-f(x)\}\quad(2.6.1) f(y)=xdomfsup{yTxf(x)}(2.6.1).

8.5.1 对偶近似点梯度法

本小节我们将近似点梯度算法应用到对偶问题上,得到对偶近似点梯度法,还将讨论与其等价的、针对原始问题设计的算法.
对偶问题 (8.5.3) 是无约束的复合优化形式,因此可以考虑近似点梯度算法. 要在对偶问题上使用近似点梯度法,要求对偶问题的目标函数 ϕ ( z ) \phi(z) ϕ(z) 满足 “可微函数+凸函数” 的复合形式.
如果假设原始问题中 f ( x ) f(x) f(x) 是闭的强凸函数 (强凸参数为 μ \mu μ), 下面的引理说明其共轭函数是定义在全空间 R n \mathbb{R}^n Rn 上的梯度利普希茨连续函数:

引理 8.5 (强凸函数共轭函数的性质) f ( x ) f(x) f(x) 是适当且闭的强凸函数, 其强凸参数为 μ > 0 , f ∗ ( y ) \mu>0, f^*(y) μ>0,f(y) f ( x ) f(x) f(x) 的共轭函数,则 f ∗ ( y ) f^*(y) f(y) 在全空间 R n \mathbb{R}^n Rn 上有定义,且 f ∗ ( y ) f^*(y) f(y) 是梯度 1 μ \displaystyle\frac{1}{\mu} μ1-利普希茨连续的可微函数.

证明:
对任意的 y ∈ R n y\in\mathbb{R}^n yRn, 函数 f ( x ) − x T y f(x)-x^\mathrm{T}y f(x)xTy 是强凸函数,因此对任意的 y ∈ R n y\in\mathbb{R}^n yRn, 存在唯一的 x ∈ d o m f x\in\mathbf{dom}f xdomf, 使得 f ∗ ( y ) = x T y − f ( x ) f^*(y)=x^\text{T}y-f(x) f(y)=xTyf(x). 根据凸优化问题的一阶最优性条件可知
y ∈ ∂ f ( x ) ⇔ f ∗ ( y ) = x T y − f ( x ) y\in\partial f(x)\Leftrightarrow f^*(y)=x^\mathrm{T}y-f(x) yf(x)f(y)=xTyf(x)

由于 f ( x ) f(x) f(x) 是闭凸函数,由定理 2.15 可知 f ( x ) f(x) f(x) 的二次共轭为其本身,于是对同一组 x , y x, y x,y
x T y − f ∗ ( y ) = f ( x ) = f ∗ ∗ ( x ) = sup ⁡ y { x T y − f ∗ ( y ) } x^\mathrm{T}y-f^*(y)=f(x)=f^{**}(x)=\sup_{y}\left\{x^\mathrm{T}y-f^*(y)\right\} xTyf(y)=f(x)=f∗∗(x)=ysup{xTyf(y)}

这说明 y y y 也使得 x T y − f ∗ ( y ) x^\mathrm{T}y-f^*(y) xTyf(y) 取到最大值. 根据一阶最优性条件, x ∈ ∂ f ∗ ( y ) x\in\partial f^*(y) xf(y).
再根据 x x x 的唯一性容易推出 ∂ f ∗ ( y ) \partial f^*(y) f(y) 中只含一个元素,故 f ∗ ( y ) f^*(y) f(y) 可微.
下证 f ∗ ( y ) f^*(y) f(y) 为梯度 1 μ \displaystyle\frac{1}{\mu} μ1-利普希茨连续的. 对任意的 y 1 , y 2 y_1,y_2 y1,y2, 存在唯一的 x 1 , x 2 ∈ d o m f x_1,x_2\in\mathbf{dom} f x1,x2domf 使得
y 1 ∈ ∂ f ( x 1 ) , y 2 ∈ ∂ f ( x 2 ) . y_1\in\partial f(x_1),\quad y_2\in\partial f(x_2). y1f(x1),y2f(x2).

根据次梯度性质以及 f ( x ) − μ 2 ∥ x ∥ 2 f(x)-\displaystyle\frac{\mu}{2}\|x\|^2 f(x)2μx2 是凸函数,
f ( x 2 ) − μ 2 ∥ x 2 ∥ 2 ⩾ f ( x 1 ) − μ 2 ∥ x 1 ∥ 2 + ( y 1 − μ x 1 ) T ( x 2 − x 1 ) , f ( x 1 ) − μ 2 ∥ x 1 ∥ 2 ⩾ f ( x 2 ) − μ 2 ∥ x 2 ∥ 2 + ( y 2 − μ x 2 ) T ( x 1 − x 2 ) , \begin{aligned}f(x_2)-\frac{\mu}{2}\|x_2\|^2&\geqslant f(x_1)-\frac{\mu}{2}\|x_1\|^2+(y_1-\mu x_1)^\mathrm{T}(x_2-x_1),\\f(x_1)-\frac{\mu}{2}\|x_1\|^2&\geqslant f(x_2)-\frac{\mu}{2}\|x_2\|^2+(y_2-\mu x_2)^\mathrm{T}(x_1-x_2),\end{aligned} f(x2)2μx22f(x1)2μx12f(x1)2μx12+(y1μx1)T(x2x1),f(x2)2μx22+(y2μx2)T(x1x2),

将上述两式相加得
( y 1 − y 2 ) T ( x 1 − x 2 ) ⩾ μ ∥ x 1 − x 2 ∥ 2 . (y_1-y_2)^\mathrm{T}(x_1-x_2)\geqslant\mu\|x_1-x_2\|^2. (y1y2)T(x1x2)μx1x22.
根据 x x x y y y 的关系我们有 x 1 = ∇ f ∗ ( y 1 ) , x 2 = ∇ f ∗ ( y 2 ) x_1=\nabla f^*(y_1),x_2=\nabla f^*(y_2) x1=f(y1),x2=f(y2), 代入上式可得
( y 1 − y 2 ) T ( ∇ f ∗ ( y 1 ) − ∇ f ∗ ( y 2 ) ) ⩾ μ ∥ ∇ f ∗ ( y 1 ) − ∇ f ∗ ( y 2 ) ∥ 2 . (y_1-y_2)^\mathrm{T}(\nabla f^*(y_1)-\nabla f^*(y_2))\geqslant\mu\|\nabla f^*(y_1)-\nabla f^*(y_2)\|^2. (y1y2)T(f(y1)f(y2))μ∥∇f(y1)f(y2)2.

这正是 ∇ f ∗ ( y ) \nabla f^*(y) f(y) 的余强制性,根据引理 6.1 可知 ∇ f ∗ ( y ) \nabla f^*(y) f(y) 1 μ \displaystyle\frac{1}{\mu} μ1-利普希茨连续的.

经过上面的推导,我们知道 ∇ f ∗ \nabla f^* f 是利普希茨连续函数,因此在对偶问题 (8.5.3) 中 f ∗ ( − A T z ) f^*(-A^{\mathrm{T}}z) f(ATz) 是梯度 1 μ ∥ A ∥ 2 2 \displaystyle\frac{1}{\mu}\|A\|_{2}^{2} μ1A22-利普希茨连续的函数,这是因为对于任意的 z 1 , z 2 z_1,z_2 z1,z2, 有
∥ A ∇ f ∗ ( − A T z 1 ) − A ∇ f ∗ ( − A T z 2 ) ∥ ⩽ 1 μ ∥ A ∥ 2 ∥ A T ( z 1 − z 2 ) ∥ ⩽ ∥ A ∥ 2 2 μ ∥ z 1 − z 2 ∥ \begin{aligned}\|A\nabla f^{*}(-A^{\mathrm{T}}z_{1})-A\nabla f^{*}(-A^{\mathrm{T}}z_{2})\|&\leqslant\frac{1}{\mu}\|A\|_{2}\|A^{\mathrm{T}}(z_{1}-z_{2})\|\leqslant\frac{\|A\|_{2}^{2}}{\mu}\|z_{1}-z_{2}\|\end{aligned} Af(ATz1)Af(ATz2)μ1A2AT(z1z2)μA22z1z2

考虑在对偶问题上应用近似点梯度算法,每次迭代更新如下:
z k + 1 = p r o x t h ∗ ( z k + t A ∇ f ∗ ( − A T z k ) ) ( 8.5.4 ) z^{k+1}=\mathrm{prox}_{th^*}(z^k+tA\nabla f^*(-A^\mathrm{T}z^k))\qquad(8.5.4) zk+1=proxth(zk+tAf(ATzk))(8.5.4)

注意对偶问题是取最大值,因此邻近算子内部应该取上升方向. 引入变量 x k + 1 = ∇ f ∗ ( − A T z k ) x^{k+1}=\nabla f^*(-A^{\mathrm{T}}z^k) xk+1=f(ATzk), 利用共轭函数的性质得 − A T z k ∈ ∂ f ( x k + 1 ) -A^\mathrm{T}z^k\in\partial f(x^{k+1}) ATzkf(xk+1). 因此选代格式 (8.5.4) 等价于
x k + 1 = arg min ⁡ x { f ( x ) + ( A T z k ) T x } z k + 1 = p r o x t h ∗ ( z k + t A x k + 1 ) ( 8.5.5 ) \begin{aligned}&x^{k+1}=\argmin_{x}\{f(x)+(A^{\mathrm{T}}z^{k})^{\mathrm{T}}x\}\\&z^{k+1}=\mathrm{prox}_{th^{*}}(z^{k}+tAx^{k+1})\end{aligned}\qquad(8.5.5) xk+1=xargmin{f(x)+(ATzk)Tx}zk+1=proxth(zk+tAxk+1)(8.5.5)

迭代格式 (8.5.5) 仅仅将计算 ∇ f ∗ ( − A T z k ) \nabla f^*(-A^{\mathrm{T}}z^k) f(ATzk) 化成了一个共轭函数的求解问题, 本质上和迭代格式 (8.5.4) 是一样的.

下面的分析提供另一种角度来理解对偶近似点梯度法.
我们先引入有关邻近算子和共轭函数的一个重要性质:Moreau 分解.

引理 8.6 (Moreau 分解) f f f 是定义在5 R n \mathbb{R}^n Rn 上的适当的闭凸函数,则对任意的 x ∈ R n x\in\mathbb{R}^n xRn,
x = p r o x f ( x ) + p r o x f ∗ ( x ) ( 8.5.6 ) x=\mathrm{prox}_f(x)+\mathrm{prox}_{f^*}(x)\qquad(8.5.6) x=proxf(x)+proxf(x)(8.5.6)

或更一般地,
x = p r o x λ f ( x ) + λ p r o x λ − 1 f ∗ ( x λ ) ( 8.5.7 ) x=\mathrm{prox}_{\lambda f}(x)+\lambda\mathrm{prox}_{\lambda^{-1}f^*}\left(\frac{x}{\lambda}\right)\qquad(8.5.7) x=proxλf(x)+λproxλ1f(λx)(8.5.7)

其中 λ > 0 \lambda>0 λ>0 为任意正实数.

Moreau 分解的结论表明:对任意的闭凸函数 f f f, 空间 R n \mathbb{R}^n Rn 上的恒等映射总可以分解成两个函数 f f f f ∗ f^* f 邻近算子的和.

根据 Moreau 分解的一般形式 (取 λ = t , f = h ∗ \lambda=t, f=h^* λ=t,f=h, 并注意到 h ∗ ∗ = h h^{**}=h h∗∗=h), 我们有
z k + t A x k + 1 = p r o x t h ∗ ( z k + t A x k + 1 ) + t   p r o x t − 1 h ( z k t + A x k + 1 ) = z k + 1 + t   p r o x t − 1 h ( z k t + A x k + 1 ) \begin{aligned}z^{k}+tAx^{k+1}&=\mathrm{prox}_{th^{*}}(z^{k}+tAx^{k+1})+t\mathrm{~prox}_{t^{-1}h}\left(\frac{z^{k}}{t}+Ax^{k+1}\right)\\&=z^{k+1}+t\:\mathrm{prox}_{t^{-1}h}(\frac{z^{k}}{t}+Ax^{k+1})\end{aligned} zk+tAxk+1=proxth(zk+tAxk+1)+t proxt1h(tzk+Axk+1)=zk+1+tproxt1h(tzk+Axk+1)

由此给出对偶近似点梯度法等价的针对原始问题的更新格式:
x k + 1 = arg min ⁡ x { f ( x ) + ( z k ) T A x } y k + 1 = p r o x t − 1 h ( z k t + A x k + 1 ) = arg min ⁡ y { h ( y ) − ( z k ) T ( y − A x k + 1 ) + t 2 ∥ A x k + 1 − y ∥ 2 2 } z k + 1 = z k + t ( A x k + 1 − y k + 1 ) ( 8.5.8 ) \begin{aligned} &x^{k+1} =\argmin_{x}\left\{f(x)+(z^{k})^{\mathrm{T}}Ax\right\}\\ &y^{k+1} =\mathrm{prox}_{t^{-1}h}\left(\frac{z^{k}}{t}+Ax^{k+1}\right)=\argmin_{y}\left\{h(y)-(z^{k})^{\mathrm{T}}(y-Ax^{k+1})+\frac{t}{2}\|Ax^{k+1}-y\|_{2}^{2}\right\} \\ &z^{k+1} =z^{k}+t(Ax^{k+1}-y^{k+1})\end{aligned}\qquad(8.5.8) xk+1=xargmin{f(x)+(zk)TAx}yk+1=proxt1h(tzk+Axk+1)=yargmin{h(y)(zk)T(yAxk+1)+2tAxk+1y22}zk+1=zk+t(Axk+1yk+1)(8.5.8)

考虑约束优化问题 (8.5.2):
min ⁡ x , y f ( x ) + h ( y ) s . t . y = A x \min_{x,y}\quad f(x)+h(y)\qquad{s.t.}\quad y=Ax x,yminf(x)+h(y)s.t.y=Ax

定义拉格朗日函数和增广拉格朗日函数:
L ( x , y , z ) = f ( x ) + h ( y ) − z T ( y − A x ) L t ( x , y , z ) = f ( x ) + h ( y ) − z T ( y − A x ) + t 2 ∥ y − A x ∥ 2 \begin{aligned}&L(x,y,z)=f(x)+h(y)-z^{\mathrm{T}}(y-Ax)\\&L_{t}(x,y,z)=f(x)+h(y)-z^{\mathrm{T}}(y-Ax)+\frac{t}{2}\|y-Ax\|^{2}\end{aligned} L(x,y,z)=f(x)+h(y)zT(yAx)Lt(x,y,z)=f(x)+h(y)zT(yAx)+2tyAx2

则迭代格式 (8.5.8) 可以等价地写为
x k + 1 = arg min ⁡ x L ( x , y k , z k ) y k + 1 = arg min ⁡ y L t ( x k + 1 , y , z k ) z k + 1 = z k + t ( A x k + 1 − y k + 1 ) ( 8.5.9 ) \begin{aligned} &x^{k+1} =\argmin_{x}L(x,y^{k},z^{k})\\ &y^{k+1} =\argmin_{y}L_{t}(x^{k+1},y,z^{k}) \\ &z^{k+1} =z^{k}+t(Ax^{k+1}-y^{k+1})\end{aligned}\qquad(8.5.9) xk+1=xargminL(x,yk,zk)yk+1=yargminLt(xk+1,y,zk)zk+1=zk+t(Axk+1yk+1)(8.5.9)

迭代格式 (8.5.9) 又称为交替极小化方法:第一步迭代为在拉格朗日函数中关于 x x x 求极小,第二步迭代为在增广拉格朗日函数中关于 y y y 求极小,第三步迭代为更新拉格朗日乘子.上面的分析表明,对偶近似点梯度法等价于对原始约束问题(8.5.2)使用交替极小化方法.若 f f f 可分,可将 x x x 的求解划分成几个独立的子问题求解;在 z z z 的更新中,步长 t t t 可以为常数,或者由线搜索决定.在上述更新框架下,还可以考虑引入加速版本的近似点梯度算法.

下面给出四个例子来说明如何拆分和使用对偶近似点梯度法.

例 8.15 (正则化范数近似) 假设 f f f 是强凸函数,考虑
min ⁡ f ( x ) + ∥ A x − b ∥ \min\quad f(x)+\|Ax-b\| minf(x)+Axb

其中 ∥ ⋅ ∥ \|\cdot\| 是任意一种范数. 对应原始问题 (8.5.1), 有 h ( y ) = ∥ y − b ∥ h(y)=\|y-b\| h(y)=yb, 可计算出 h ( y ) h(y) h(y) 的共轭函数为
h ∗ ( z ) = { b T z , ∥ z ∥ ∗ ⩽ 1 + ∞ , 其他 h^*(z)=\begin{cases}b^\mathrm{T}z,\quad\|z\|_*\leqslant 1\\[1ex]+\infty,\quad\text{其他}\end{cases} h(z)={bTz,z1+,其他

其中 ∥ ⋅ ∥ ∗ \|\cdot\|_* 表示 ∥ ⋅ ∥ \|\cdot\| 的对偶范数.

计算 h ( y ) = ∥ y − b ∥ h(y)=\|y-b\| h(y)=yb 的共轭函数 h ∗ ( z ) h^*(z) h(z), 使用共轭函数的定义. 共轭函数 h ∗ ( z ) h^*(z) h(z) 定义为: h ∗ ( z ) = sup ⁡ y ( y T z − h ( y ) ) h^*(z)=\sup\limits_y\left(y^\mathrm{T}z-h(y)\right) h(z)=ysup(yTzh(y)) h ( y ) = ∥ y − b ∥ h(y)=\|y-b\| h(y)=yb
因此,我们需要计算:
h ∗ ( z ) = sup ⁡ y ( y T z − ∥ y − b ∥ ) h^*(z)=\sup_y\left(y^\mathrm{T}z-\|y-b\|\right) h(z)=ysup(yTzyb)

首先进行变量替换,令 u = y − b u=y-b u=yb, 有 y = u + b y=u+b y=u+b, 并且 h ( y ) = ∥ u ∥ h(y)=\|u\| h(y)=u。将变量替换代入共轭函数的定义中,得到:
h ∗ ( z ) = sup ⁡ u ( ( u + b ) T z − ∥ u ∥ ) = sup ⁡ u ( u T z + b T z − ∥ u ∥ ) = b T z + sup ⁡ u ( u T z − ∥ u ∥ ) \begin{aligned} h^{*}(z)=&\sup_u\left((u+b)^\mathrm{T}z-\|u\|\right)\\=&\sup_u\left(u^\mathrm{T}z+b^\mathrm{T}z-\|u\|\right)\\=&b^\mathrm{T}z+\sup_u\left(u^\mathrm{T}z-\|u\|\right)\end{aligned} h(z)===usup((u+b)Tzu)usup(uTz+bTzu)bTz+usup(uTzu)

然后考虑 sup ⁡ u ( u T z − ∥ u ∥ ) \sup\limits_u\left(u^\mathrm{T}z-\|u\|\right) usup(uTzu)
∥ z ∥ ∗ ⩽ 1 \|z\|_*\leqslant 1 z1 时:
u = 0 u=0 u=0 u T z − ∥ u ∥ = 0 T z − ∥ 0 ∥ = 0 u^\text{T}z-\|u\|=0^\text{T}z-\|0\|=0 uTzu=0Tz∥0∥=0
对于其他的 u u u 假设 u T z − ∥ u ∥ > 0 u^\mathrm{T}z-\|u\|>0 uTzu>0. 根据对偶范数的定义,对于任何 u u u,有 u T z ≤ ∥ u ∥ ∥ z ∥ ∗ u^\mathrm{T}z\leq\|u\|\|z\|_* uTzu∥∥z
∥ z ∥ ∗ ≤ 1 \|z\|_*\leq1 z1 时, u T z ≤ ∥ u ∥ u^\mathrm{T}z\leq\|u\| uTzu
所以: u T z − ∥ u ∥ ≤ 0 u^\mathrm{T}z-\|u\|\leq0 uTzu0,与假设矛盾.
因此,当 ∥ z ∥ ∗ ≤ 1 \|z\|_*\leq1 z1时, sup ⁡ u ( u T z − ∥ u ∥ ) = 0 \sup_u\left(u^\text{T}z-\|u\|\right)=0 supu(uTzu)=0

∥ z ∥ ∗ > 1 \|z\|_*>1 z>1 时,假设 u u u 的方向与 z z z 相同,使得 u = λ z u=\lambda z u=λz, 且 λ → ∞ \lambda\to\infty λ, 有:
u T z = λ z T z u^\mathrm{T}z=\lambda z^\mathrm{T}z uTz=λzTz
∥ u ∥ = ∥ λ z ∥ = λ ∥ z ∥ \|u\|=\|\lambda z\|=\lambda\|z\| u=λz=λz
λ → ∞ \lambda\to\infty λ 时, u T z − ∥ u ∥ = λ z T z − λ ∥ z ∥ u^\mathrm{T}z-\|u\|=\lambda z^\mathrm{T}z-\lambda\|z\| uTzu=λzTzλz
由于 ∥ z ∥ ∗ > 1 \|z\|_*>1 z>1, 有 $\sup_u\left(u^\mathrm{T}z-|u|\right)=\infty $

从而对偶问题为:
max ⁡ ∥ z ∥ ∗ ⩽ 1 − f ∗ ( − A T z ) − b T z \max_{\|z\|_*\leqslant 1}\quad-f^*(-A^\mathrm{T}z)-b^\mathrm{T}z z1maxf(ATz)bTz

应用对偶近似点梯度法,更新如下:
x k + 1 = arg min ⁡ x { f ( x ) + ( A T z k ) T x } z k + 1 = P ∥ z ∥ ∗ ⩽ 1 ( z k + t ( A x k + 1 − b ) ) \begin{aligned} x^{k+1}=&\argmin_{x}\left\{f(x)+(A^{\mathrm{T}}z^{k})^{\mathrm{T}}x\right\}\\z^{k+1}=&\mathcal{P}_{\|z\|_{*}\leqslant 1}(z^{k}+t(Ax^{k+1}-b))\end{aligned} xk+1=zk+1=xargmin{f(x)+(ATzk)Tx}Pz1(zk+t(Axk+1b))

例 8.16 假设 f f f 是强凸函数,考虑
min ⁡ f ( x ) + ∑ i = 1 p ∥ B i x ∥ 2 \min\quad f(x)+\sum_{i=1}^p\|B_ix\|_2 minf(x)+i=1pBix2

h ( y 1 , y 2 , ⋯   , y p ) = ∑ i = 1 p ∥ y i ∥ 2 h(y_{1},y_{2},\cdots,y_{p})=\sum\limits_{i=1}^{p}\|y_{i}\|_{2} h(y1,y2,,yp)=i=1pyi2, 且
A = [ B 1 T B 1 T ⋯ B p T ] T A=\begin{bmatrix}B_1^\mathrm{T}&B_1^\mathrm{T}&\cdots&B_p^\mathrm{T}\end{bmatrix}^\mathrm{T} A=[B1TB1TBpT]T

假定 B i ∈ R m i × n B_i\in\mathbb{R}^{m_i\times n} BiRmi×n, 记 C i C_i Ci R m i \mathbb{R}_{m_i} Rmi 中的单位欧几里得球,根据 ∥ ⋅ ∥ 2 \|\cdot\|_2 2 的共轭函数定义,对偶问题形式如下:
max ⁡ ∥ z i ∥ 2 ⩽ 1 − f ∗ ( − ∑ i = 1 p B i T z i ) \max_{\|z_i\|_2\leqslant1}\quad-f^*\left(-\sum_{i=1}^pB_i^\mathrm{T}z_i\right) zi21maxf(i=1pBiTzi)

从而对偶近似点梯度法更新如下:
x k + 1 = arg min ⁡ x { f ( x ) + ( ∑ i = 1 p B i T z i ) T x } z i k + 1 = P C i ( z i k + t B i x k + 1 ) , i = 1 , 2 , ⋯   , p \begin{aligned}x^{k+1}=\argmin_{x}\left\{f(x)+(\sum_{i=1}^{p}B_{i}^{\mathrm{T}}z_{i})^{\mathrm{T}}x\right\}\\ z_{i}^{k+1}=\mathcal{P}_{C_{\mathrm{i}}}(z_{i}^{k}+tB_{i}x^{k+1}),i=1,2,\cdots,p\end{aligned} xk+1=xargmin{f(x)+(i=1pBiTzi)Tx}zik+1=PCi(zik+tBixk+1),i=1,2,,p

计算对偶问题形式
1.给定原问题:
min ⁡ x f ( x ) + ∑ i = 1 p ∥ B i x ∥ 2 \min_x\quad f(x)+\sum_{i=1}^p\|B_ix\|_2 xminf(x)+i=1pBix2

引入变量 y i = B i x y_i=B_ix yi=Bix, 将问题转化为:
min ⁡ x , y 1 , … , y p f ( x ) + ∑ i = 1 p ∥ y i ∥ 2 s . t . y i = B i x ,   i = 1 , … , p \begin{aligned}\min_{x,y_1,\ldots,y_p}&\quad f(x)+\sum_{i=1}^p\|y_i\|_2\\\mathrm{s.t.}&\quad y_i=B_ix,\:i=1,\ldots,p\end{aligned} x,y1,,ypmins.t.f(x)+i=1pyi2yi=Bix,i=1,,p

2.拉格朗日函数
引入拉格朗日乘子 z i z_i zi, 构建拉格朗日函数:
L ( x , y 1 , … , y p , z 1 , … , z p ) = f ( x ) + ∑ i = 1 p ∥ y i ∥ 2 + ∑ i = 1 p z i T ( B i x − y i ) \mathcal{L}(x,y_1,\ldots,y_p,z_1,\ldots,z_p)=f(x)+\sum_{i=1}^p\|y_i\|_2+\sum_{i=1}^pz_i^\mathrm{T}(B_ix-y_i) L(x,y1,,yp,z1,,zp)=f(x)+i=1pyi2+i=1pziT(Bixyi)

3.对偶函数的定义
对偶函数 g ( z 1 , … , z p ) g(z_1,\ldots,z_p) g(z1,,zp) 定义为:
g ( z 1 , … , z p ) = inf ⁡ x , y 1 , … , y p L ( x , y 1 , … , y p , z 1 , … , z p ) g(z_1,\ldots,z_p)=\inf_{x,y_1,\ldots,y_p}\mathcal{L}(x,y_1,\ldots,y_p,z_1,\ldots,z_p) g(z1,,zp)=x,y1,,ypinfL(x,y1,,yp,z1,,zp)

首先对 y i y_i yi 进行极小化:
inf ⁡ y i ( ∥ y i ∥ 2 − z i T y i ) \inf_{y_i}\left(\|y_i\|_2-z_i^\mathrm{T}y_i\right) yiinf(yi2ziTyi)

4.求解 y i y_i yi 的极小值
对每个 i i i 而言,求解上述极小化问题:
inf ⁡ y i ( ∥ y i ∥ 2 − z i T y i ) = { 0 if ∥ z i ∥ 2 ≤ 1 − ∞ 其他 \inf\limits_{y_i}\left(\|y_i\|_2-z_i^\mathrm{T}y_i\right)=\begin{cases}0&\text{if}\|z_i\|_2\leq 1\\-\infty&\text{其他}\end{cases} yiinf(yi2ziTyi)={0ifzi21其他

这意味着 z i z_i zi 必须满足 ∥ z i ∥ 2 ≤ 1. \|z_i\|_2\leq1. zi21.
5.求解 x x x 的极小值
接下来对 x x x 进行极小化
inf ⁡ x ( f ( x ) + ∑ i = 1 p z i T B i x ) = inf ⁡ x ( f ( x ) + ( ∑ i = 1 p B i T z i ) T x ) \inf_x\left(f(x)+\sum_{i=1}^pz_i^\mathrm{T}B_ix\right)=\inf_x\left(f(x)+\left(\sum\limits_{i=1}^pB_i^\mathrm{T}z_i\right)^\mathrm{T}x\right) xinf(f(x)+i=1pziTBix)=xinf f(x)+(i=1pBiTzi)Tx
g = − ∑ i = 1 p B i T z i g=-\sum\limits_{i=1}^pB_i^\mathrm{T}z_i g=i=1pBiTzi, 上述表达式等价于:
− f ∗ ( g ) -f^*(g) f(g)

其中, f ∗ ( g ) f^*(g) f(g) f ( x ) f(x) f(x) 的共轭函数,定义为:
f ∗ ( g ) = sup ⁡ x ( g T x − f ( x ) ) f^*(g)=\sup_x\left(g^\text{T}x-f(x)\right) f(g)=xsup(gTxf(x))

因此,对 x x x 的极小化问题变为:
inf ⁡ x ( f ( x ) + g T x ) = − f ∗ ( − g ) \inf_x\left(f(x)+g^\mathrm{T}x\right)=-f^*(-g) xinf(f(x)+gTx)=f(g)

6.对偶问题的形式化
综合上述结果,对偶函数为:
g ( z 1 , … , z p ) = { − f ∗ ( − ∑ i = 1 p B i T z i ) if  ∥ z i ∥ 2 ≤ 1   ∀ i − ∞ 其他 g(z_1,\ldots,z_p)=\begin{cases}-f^*\left(-\sum\limits_{i=1}^pB_i^\mathrm{T}z_i\right)&\text{if}\ \|z_i\|_2\leq 1\ \forall i\\-\infty&\text{其他}\end{cases} g(z1,,zp)= f(i=1pBiTzi)if zi21 i其他

对偶问题即最大化对偶函数:
max ⁡ z 1 , … , z p g ( z 1 , … , z p ) \max_{z_1,\ldots,z_p}\quad g(z_1,\ldots,z_p) z1,,zpmaxg(z1,,zp)

这等价于
max ⁡ ∥ z i ∥ 2 ⩽ 1 − f ∗ ( − ∑ i = 1 p B i T z i ) \max_{\|z_i\|_2\leqslant 1}\quad-f^*\left(-\sum_{i=1}^pB_i^\mathrm{T}z_i\right) zi21maxf(i=1pBiTzi)

例 8.17 (在凸集交上的极小化) 假设 f f f 是强凸函数,考虑
min ⁡ f ( x ) s . t . x ∈ C 1 ∩ C 2 ∩ ⋯ ∩ C m \begin{aligned}&\min\quad f(x)\\&\mathrm{s.t.}\quad x\in C_{1}\cap C_{2}\cap\cdots\cap C_{m}\end{aligned} minf(x)s.t.xC1C2Cm

其中 C i C_i Ci 为闭凸集,易于计算投影. 记 h ( y 1 , y 2 , ⋯   , y m ) = ∑ i = 1 m I C i ( y i ) h(y_1,y_2,\cdots,y_m)=\sum\limits_{i=1}^m I_{C_i}(y_i) h(y1,y2,,ym)=i=1mICi(yi), 以及 A = [ I I ⋯ I ] T A=\begin{bmatrix}I&I&\cdots&I\end{bmatrix}^\mathrm{T} A=[III]T

从而对偶问题形式如下:
max ⁡ z i ∈ C i − f ∗ ( − ∑ i = 1 m z i ) − ∑ i = 1 m I C i ∗ ( z i ) \max_{z_{i}\in C_{i}}\quad-f^{*}\left(-\sum_{i=1}^{m}z_{i}\right)-\sum_{i=1}^{m}I_{C_{i}}^{*}(z_{i}) ziCimaxf(i=1mzi)i=1mICi(zi)

利用共轭函数的性质可知 I C i ∗ ( z i ) I_{C_i}^*(z_i) ICi(zi) 是集合 C i C_i Ci 的支撑函数,其显式表达式不易求出. 因此我们利用 Moreau 分解将迭代格式写成交替极小化方法的形式:
x k + 1 = arg min ⁡ x { f ( x ) + ( ∑ i = 1 m z i ) T x } y i k + 1 = P C i ( z i k t + x k + 1 ) , i = 1 , 2 , ⋯   , m z i k + 1 = z i k + t ( x k + 1 − y i k + 1 ) , i = 1 , 2 , ⋯   , m \begin{aligned}&x^{k+1}=\argmin_{x}\left\{f(x)+\left(\sum_{i=1}^{m}z_{i}\right)^{\mathrm{T}}x\right\}\\&y_{i}^{k+1}=\mathcal{P}_{C_{i}}\left(\frac{z_{i}^{k}}{t}+x^{k+1}\right),\quad i=1,2,\cdots,m\\&z_{i}^{k+1}=z_{i}^{k}+t(x^{k+1}-y_{i}^{k+1}),\quad i=1,2,\cdots,m\end{aligned} xk+1=xargmin f(x)+(i=1mzi)Tx yik+1=PCi(tzik+xk+1),i=1,2,,mzik+1=zik+t(xk+1yik+1),i=1,2,,m

在这里插入图片描述

例 8.18 (可分问题的拆分) 假设 f i f_i fi 是强凸函数, h i ∗ h_i^* hi 有易于计算的邻近算子. 考虑
min ⁡ ∑ j = 1 n f j ( x j ) + ∑ i = 1 m h i ( A i 1 x 1 + A i 2 x 2 + ⋯ + A i n x N ) \min\quad\sum\limits_{j=1}^nf_j(x_j)+\sum\limits_{i=1}^mh_i(A_{i1}x_1+A_{i2}x_2+\cdots+A_{in}x_N) minj=1nfj(xj)+i=1mhi(Ai1x1+Ai2x2++AinxN)

其对偶问题形式如下:
max ⁡ − ∑ i = 1 m h i ∗ ( z i ) − ∑ j = 1 n f j ∗ ( − A 1 j T z 1 − A 2 j T z 2 − ⋯ − A m j T z m ) \max\quad-\sum_{i=1}^mh_i^*(z_i)-\sum_{j=1}^nf_j^*(-A_{1j}^\mathrm{T}z_1-A_{2j}^\mathrm{T}z_2-\cdots-A_{mj}^\mathrm{T}z_m) maxi=1mhi(zi)j=1nfj(A1jTz1A2jTz2AmjTzm)

对偶近似点梯度法更新如下:
x j k + 1 = arg min ⁡ x j { f j ( x j ) + ( ∑ i = 1 m A i j z i k ) T x j } , j = 1 , 2 , ⋯   , n z i k + 1 = p r o x t h i ∗ ( z i + t ∑ j = 1 n A i j x j k + 1 ) , i = 1 , 2 , ⋯   , m x_{j}^{k+1}=\argmin_{x_{j}}\left\{f_{j}(x_{j})+(\sum_{i=1}^{m}A_{ij}z_{i}^{k})^{\mathrm{T}}x_{j}\right\},\quad j=1,2,\cdots,n\\z_{i}^{k+1}=\mathrm{prox}_{th_{i}^{*}}\left(z_{i}+t\sum_{j=1}^{n}A_{ij}x_{j}^{k+1}\right),\quad i=1,2,\cdots,m xjk+1=xjargmin{fj(xj)+(i=1mAijzik)Txj},j=1,2,,nzik+1=proxthi(zi+tj=1nAijxjk+1),i=1,2,,m

8.5.2 原始–对偶混合梯度算法

本小节介绍原始–对偶混合梯度(primal-dual hybrid gradient, PDHG)算法.对于给定的优化问题,我们可以从原始问题或对偶问题出发来设计相应算法求解.相比于直接在原始问题上或者对偶问题上应用优化算法求解,PDHG 算法在每次迭代时同时考虑原始变量和对偶变量的更新.这使得它在一定程度上可以有效避免单独针对原始问题或对偶问题求解算法中可能出现的问题,例如,原始问题梯度为零向量或不可微,对偶问题形式复杂等.本小节将介绍原始–对偶混合梯度算法以及它的一个变形——Chambolle-Pock 算法

PDHG 算法的构造要从鞍点问题谈起. 考虑原始问题:
min ⁡ f ( x ) + h ( A x ) ( 8.5.1 ) \min\quad f(x)+h(Ax)\qquad(8.5.1) minf(x)+h(Ax)(8.5.1)

其中 f , h f, h f,h 是适当的闭凸函数. 由于 h h h 有自共轭性,我们将问题 (8.5.1) 变形为
( L P D ) min ⁡ x max ⁡ z ψ P D ( x , z ) = d e f f ( x ) − h ∗ ( z ) + z T A x ( 8.5.10 ) (\mathrm{L}_{\mathrm{PD}})\quad\min\limits_{x}\max\limits_{z}\quad\psi_{PD}(x,z)\stackrel{\mathrm{def}}{=}f(x)-h^{*}(z)+z^{\mathrm{T}}Ax\qquad(8.5.10) (LPD)xminzmaxψPD(x,z)=deff(x)h(z)+zTAx(8.5.10)

此时问题变成了一个极小-极大问题,即关于变量 x x x 求极小,关于变量 z z z 求极大,这是一个典型的鞍点问题.

另一种常用的鞍点问题定义方式是直接利用带约束的问题 (8.5.2) 构造拉格朗日函数. 问题
min ⁡ x ∈ R n , y ∈ R m f ( x ) + h ( y ) , s . t . y = A x . \min_{x\in\mathbb{R}^n,y\in\mathbb{R}^m}\quad f(x)+h(y),\quad\mathrm{s.t.}\quad y=Ax. xRn,yRmminf(x)+h(y),s.t.y=Ax.

相应的鞍点问题形式如下:
( L P ) min ⁡ x , y   max ⁡ z f ( x ) + h ( y ) + z T ( A x − y ) ( 8.5.11 ) (\mathrm{L}_{\mathrm{P}})\quad\min\limits_{x,y}\ \max\limits_{z}\quad f(x)+h(y)+z^{\mathrm T}(Ax-y)\qquad(8.5.11) (LP)x,ymin zmaxf(x)+h(y)+zT(Axy)(8.5.11)

类似地,在对偶问题 (8.5.3) 中引入变量 w = − A T z w=-A^\mathrm{T}z w=ATz, 则可定义鞍点问题
( L D ) min ⁡ p   max ⁡ w , z − f ∗ ( w ) − h ∗ ( z ) + p T ( w + A T z ) ( 8.5.12 ) \mathrm{(L_D)}\quad\min\limits_{p}\ \max\limits_{w,z}\quad-f^*(w)-h^*(z)+p^\mathrm{T}(w+A^\mathrm{T}z)\qquad(8.5.12) (LD)pmin w,zmaxf(w)h(z)+pT(w+ATz)(8.5.12)

鞍点问题是关于某些变量求极小的同时关于另一些变量求极大,直接求解比较困难. PDHG 算法的思想就是分别对两类变量应用近似点梯度算法. 以求解问题 (8.5.10) 为例,PDHG 算法交替更新原始变量以及对偶变量,其迭代格式如下:
z k + 1 = arg max ⁡ z { − h ∗ ( z ) + ⟨ A x k , z − z k ⟩ − 1 2 δ k ∥ z − z k ∥ 2 2 } = p r o x δ k h ∗ ( z k + δ k A x k ) x k + 1 = arg min ⁡ x { f ( x ) + ( z k + 1 ) T A ( x − x k ) + 1 2 α k ∥ x − x k ∥ 2 2 } = p r o x α k f ( x k − α k A T z k + 1 ) ( 8.5.13 ) \begin{aligned}z^{k+1}&=\argmax_{z}\left\{-h^{*}(z)+\left\langle Ax^{k},z-z^{k}\right\rangle-\frac{1}{2\delta_{k}}\|z-z^{k}\|_{2}^{2}\right\}\\&=\mathrm{prox}_{\delta_{k}h^{*}}(z^{k}+\delta_{k}Ax^{k}) \\x^{k+1}&=\argmin_{x}\left\{f(x)+(z^{k+1})^{\mathrm{T}}A(x-x^{k})+\frac{1}{2\alpha_{k}}\|x-x^{k}\|_{2}^{2}\right\}\\&=\mathrm{prox}_{\alpha_{k}f}(x^{k}-\alpha_{k}A^{\mathrm{T}}z^{k+1})\end{aligned}\qquad(8.5.13) zk+1xk+1=zargmax{h(z)+Axk,zzk2δk1zzk22}=proxδkh(zk+δkAxk)=xargmin{f(x)+(zk+1)TA(xxk)+2αk1xxk22}=proxαkf(xkαkATzk+1)(8.5.13)

其中 α k , δ k \alpha_k,\delta_k αk,δk 分别为原始变量和对偶变量的更新步长.它在第一步固定原始变量 x k x^k xk 针对对偶变量做梯度上升,在第二步固定更新后的对偶变量 z k + 1 z^{k+1} zk+1 针对原始变量做梯度下降. 在这里注意,原始变量和对偶变量的更新顺序是无关紧要的,若先更新原始变量,其等价于在另一初值下先更新对偶变量.

事实上,PDHG 算法在 α k = + ∞ , δ k = + ∞ \alpha_k=+\infty,\delta_k=+\infty αk=+,δk=+ 这两种特殊情况下等价于近似点梯度算法分别应用于对偶问题和原始问题. 首先考虑 α k = + ∞ \alpha_k=+\infty αk=+ 的情形. 此时交换两步迭代的顺序,PDHG 算法 (8.5.13) 可以写为
x k + 1 = arg min ⁡ x { f ( x ) + ( z k ) T A x } z k + 1 = p r o x δ k h ∗ ( z k + δ k A x k + 1 ) ( 8.5.14 ) \begin{aligned}x^{k+1}&=\argmin_{x}\{f(x)+(z^{k})^{\mathrm{T}}Ax\}\\z^{k+1}&=\mathrm{prox}_{\delta_{k}h^{*}}(z^{k}+\delta_{k}Ax^{k+1})\end{aligned}\qquad(8.5.14) xk+1zk+1=xargmin{f(x)+(zk)TAx}=proxδkh(zk+δkAxk+1)(8.5.14)

可以看到,其实质上就是迭代格式 (8.5.5), 其中 δ k \delta_k δk 是步长. 类似地,我们也可以写出 δ k = + ∞ \delta_k=+\infty δk=+ 的情形:
z k + 1 = arg min ⁡ z { h ∗ ( z ) − ( A x k ) T z } x k + 1 = p r o x α k f ( x k − α k A T z k + 1 ) ( 8.5.15 ) \begin{aligned}z^{k+1}&=\argmin_{z}\{h^{*}(z)-(Ax^{k})^{\mathrm{T}}z\}\\x^{k+1}&=\mathrm{prox}_{\alpha_{k}f}(x^{k}-\alpha_{k}A^{\mathrm{T}}z^{k+1})\end{aligned}\qquad(8.5.15) zk+1xk+1=zargmin{h(z)(Axk)Tz}=proxαkf(xkαkATzk+1)(8.5.15)

假定 h h h h ∗ h^* h 都是可微的,由迭代格式 (8.5.15) 的第一式的最优性条件,可知 A x k = ∇ h ∗ ( z k + 1 ) Ax^{k}=\nabla h^{*}(z^{k+1}) Axk=h(zk+1).

设目标函数为 ϕ ( z ) = h ∗ ( z ) − ( A x k ) T z \phi(z)=h^{*}(z)-(Ax^{k})^{\mathrm{T}}z ϕ(z)=h(z)(Axk)Tz,为了找到其最优点 z k + 1 z^{k+1} zk+1,我们需要满足最优性条件,即:
∇ ϕ ( z k + 1 ) = 0 \nabla\phi(z^{k+1})=0 ϕ(zk+1)=0

ϕ ( z ) \phi(z) ϕ(z) 求梯度: ∇ ϕ ( z ) = ∇ h ∗ ( z ) − A x k \nabla\phi(z)=\nabla h^*(z)-Ax^k ϕ(z)=h(z)Axk

因此,最优性条件为: ∇ h ∗ ( z k + 1 ) − A x k = 0 \nabla h^*(z^{k+1})-Ax^k=0 h(zk+1)Axk=0

A x k = ∇ h ∗ ( z k + 1 ) . Ax^{k}=\nabla h^{*}(z^{k+1}). Axk=h(zk+1).

再利用共轭函数的性质,有 z k + 1 = ∇ h ( A x k ) z^{k+1}=\nabla h(Ax^{k}) zk+1=h(Axk), 所以 x k + 1 x^{k+1} xk+1 的更新等价于
x k + 1 = p r o x α k f ( x k − α k A T ∇ h ( A x k ) ) x^{k+1}=\mathrm{prox}_{\alpha_kf}(x^k-\alpha_kA^\mathrm{T}\nabla h(Ax^k)) xk+1=proxαkf(xkαkATh(Axk))

这实际上就是对原始问题应用近似点梯度算法.

PDHG 算法的收敛性需要比较强的条件,在有些情形下未必收敛.
Chambolle-Pock 算法与 PDHG 算法的区别在于多了一个外推步,具体的迭代格式如下:
z k + 1 = p r o x δ k h ∗ ( z k + δ k A y k ) x k + 1 = p r o x α k f ( x k − α k A T z k + 1 ) y k + 1 = 2 x k + 1 − x k ( 8.5.16 ) \begin{aligned}&z^{k+1}=\mathrm{prox}_{\delta_{k}h^{*}}(z^{k}+\delta_{k}Ay^{k})\\&x^{k+1}=\mathrm{prox}_{\alpha_{k}f}(x^{k}-\alpha_{k}A^{\mathrm{T}}z^{k+1})\\&y^{k+1}=2x^{k+1}-x^{k}\end{aligned}\qquad(8.5.16) zk+1=proxδkh(zk+δkAyk)xk+1=proxαkf(xkαkATzk+1)yk+1=2xk+1xk(8.5.16)

参考教材:最优化:建模、算法与理论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值