最优化方法 23:算子分裂法 & ADMM

前面章节中,针对 min ⁡ f ( x ) + g ( A x ) \min f(x)+g(Ax) minf(x)+g(Ax) 形式的优化问题,我们介绍了如 PG、dual PG、ALM、PPA 等方法。但是比如 PG 方法为
x k + 1 = prox t h ( x k − t k ∇ g ( x k ) ) x_{k+1}=\text{prox}_{th}(x_k-t_k\nabla g(x_k)) xk+1=proxth(xktkg(xk))
ALM 的第一步要解一个联合优化问题
( x k + 1 , y k + 1 ) = arg ⁡ min ⁡ x , y L t ( x , y , z k ) (x^{k+1},y^{k+1}) = \arg\min_{x,y} L_t(x,y,z^k) (xk+1,yk+1)=argx,yminLt(x,y,zk)
他们都把 f , g f,g f,g 耦合在一起了。如果我们看原始问题 min ⁡ f ( x ) + g ( A x ) \min f(x)+g(Ax) minf(x)+g(Ax) 实际上就是要找 x ⋆ x^\star x 使得 0 ∈ ∂ f ( x ⋆ ) + A T ∂ g ( x ⋆ ) 0\in\partial f(x^\star)+A^T\partial g(x^\star) 0f(x)+ATg(x),这一节要介绍的 Douglas-Rachford splitting method 实际上就是要 decoupling。

1.Douglas-Rachford splitting Algorithm

针对如下优化问题,其中 f , g f,g f,g 都是闭凸函数
min ⁡ f ( x ) + g ( x ) \min f(x)+g(x) minf(x)+g(x)

先给出 DR-splitting 方法的迭代方程
x k + 1 = prox ⁡ f ( y k ) y k + 1 = y k + prox ⁡ g ( 2 x k + 1 − y k ) − x k + 1 \begin{array}{l} x_{k+1}=\operatorname{prox}_{f}\left(y_{k}\right) \\ y_{k+1}=y_{k}+\operatorname{prox}_{g}\left(2 x_{k+1}-y_{k}\right)-x_{k+1} \end{array} xk+1=proxf(yk)yk+1=yk+proxg(2xk+1yk)xk+1

为什么叫做 splitting 呢?回忆 PPA 是不是需要求解 x + = prox t ( f + g ) ( x ) x^+ = \text{prox}_{t(f+g)}(x) x+=proxt(f+g)(x),而这里则可以分开依次求 prox f \text{prox}_f proxf prox g \text{prox}_g proxg,所以被称为 splitting。这个迭代方程看起来没有规律,那么他能不能收敛呢?答案当然是可以的, x k x_k xk 最终会收敛到 0 ∈ ∂ f ( x ) + ∂ g ( x ) 0\in \partial f(x)+\partial g(x) 0f(x)+g(x),这个证明放到后面,先来从别的方面认识一下这个方法。

首先 f , g f,g f,g 并没有区分,因此可以交换两者的位置,那么迭代方程也可以写为
x k + 1 = prox ⁡ g ( y k ) y k + 1 = y k + prox ⁡ f ( 2 x k + 1 − y k ) − x k + 1 \begin{array}{l} x_{k+1}=\operatorname{prox}_{g}\left(y_{k}\right) \\ y_{k+1}=y_{k}+\operatorname{prox}_{f}\left(2 x_{k+1}-y_{k}\right)-x_{k+1} \end{array} xk+1=proxg(yk)yk+1=yk+proxf(2xk+1yk)xk+1
但需要注意的是这两种不同的迭代方程产生的序列是不一样的,也可能会影响收敛的速度,因此这个方法关于 f , g f,g f,g 是不对称的。

如果把 x k + 1 x_{k+1} xk+1 带入到第二步,整个过程实际上可以用一个迭代方程表示
y k + 1 = F ( y ) F ( y ) = y + prox ⁡ g ( 2 prox ⁡ f ( y ) − y ) − prox ⁡ f ( y ) y_{k+1} = F(y) \\ F(y)=y+\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)-\operatorname{prox}_{f}(y) yk+1=F(y)F(y)=y+proxg(2proxf(y)y)proxf(y)
这是个什么式子呢?不动点迭代(fixed-point iteration)!就是在找函数 F ( y ) F(y) F(y) 的不动点。这个函数 F ( y ) F(y) F(y) 是连续的吗?是的,这是因为上一节中我们证明了 prox h ( x ) \text{prox}_{h}(x) proxh(x) 满足firmly nonexpansive(co-coercivite) 性质
( prox ⁡ h ( x ) − prox ⁡ h ( y ) ) T ( x − y ) ≥ ∥ prox ⁡ h ( x ) − prox ⁡ h ( y ) ∥ 2 2 \left(\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right)^{T}(x-y) \geq\left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_{2}^{2} (proxh(x)proxh(y))T(xy)proxh(x)proxh(y)22
因此近似点算子是 Lipschitz continuous 的,所以 F ( y ) F(y) F(y) 也是连续的。那么假如最终找到了不动点 y y y,他有什么性质呢?
y = F ( y )    ⟺    0 ∈ ∂ f ( prox ⁡ f ( y ) ) + ∂ g ( prox ⁡ f ( y ) ) y=F(y) \\ \iff 0 \in \partial f\left(\operatorname{prox}_{f}(y)\right)+\partial g\left(\operatorname{prox}_{f}(y)\right) y=F(y)0f(proxf(y))+g(proxf(y))
证明:对于不动点 y = F ( y ) y=F(y) y=F(y),取 x = prox f ( y ) x=\text{prox}_f(y) x=proxf(y),我们有
x = prox f ( y ) , F ( y ) = y    ⟺    x = prox f ( y ) , x = prox g ( 2 x − y )    ⟺    y − x ∈ ∂ f ( x ) , x − y ∈ ∂ g ( x ) \begin{aligned}x=\text{prox}_f(y),&\quad F(y)=y \\ \iff x=\text{prox}_f(y),&\quad x=\text{prox}_g(2x-y) \\\iff y-x\in \partial f(x),&\quad x-y\in\partial g(x)\end{aligned} x=proxf(y),x=proxf(y),yxf(x),F(y)=yx=proxg(2xy)xyg(x)
其中第一个等价性只需要把 x x x 带入到 F ( y ) F(y) F(y) 中,由此我们就可以得到
0 = ( y − x ) + ( x − y ) ∈ ∂ f ( x ) + ∂ g ( x ) 0=(y-x)+(x-y)\in\partial f(x)+\partial g(x) 0=(yx)+(xy)f(x)+g(x)
自然而然地我们证明了一开始提到的 x k x_{k} xk 的收敛性。

等价形式:下面这部分则主要是对原始形式做了一些变量代换,使其看起来更简洁,并没有新的内容。首先交换 x , y x,y x,y 的迭代次序
y k + 1 = y k + prox ⁡ g ( 2 x k − y k ) − x k x k + 1 = prox ⁡ f ( y k + 1 ) \begin{array}{l} y_{k+1}=y_{k}+\operatorname{prox}_{g}\left(2 x_{k}-y_{k}\right)-x_{k} \\ x_{k+1}=\operatorname{prox}_{f}\left(y_{k+1}\right) \end{array} yk+1=yk+proxg(2xkyk)xkxk+1=proxf(yk+1)
引入新变量 u k + 1 = prox g ( 2 x k − y k ) , w k = x k − y k u_{k+1}=\text{prox}_g(2x_k-y_k),w_k=x_k-y_k uk+1=proxg(2xkyk),wk=xkyk
u k + 1 = prox ⁡ g ( x k + w k ) x k + 1 = prox ⁡ f ( u k + 1 − w k ) w k + 1 = w k + x k + 1 − u k + 1 \begin{aligned} u_{k+1} &=\operatorname{prox}_{g}\left(x_{k}+w_{k}\right) \\ x_{k+1} &=\operatorname{prox}_{f}\left(u_{k+1}-w_{k}\right) \\ w_{k+1} &=w_{k}+x_{k+1}-u_{k+1} \end{aligned} uk+1xk+1wk+1=proxg(xk+wk)=proxf(uk+1wk)=wk+xk+1uk+1
放缩:除此之外,我们还可以对原始问题做一个放缩变为 min ⁡ t f ( x ) + t g ( x ) \min tf(x)+tg(x) mintf(x)+tg(x),那么迭代方程就变为如下形式,并没有本质的变化
u k + 1 = prox ⁡ t g ( x k + w k ) x k + 1 = prox ⁡ t f ( u k + 1 − w k ) w k + 1 = w k + x k + 1 − u k + 1 \begin{aligned} u_{k+1} &=\operatorname{prox}_{tg}\left(x_{k}+w_{k}\right) \\ x_{k+1} &=\operatorname{prox}_{tf}\left(u_{k+1}-w_{k}\right) \\ w_{k+1} &=w_{k}+x_{k+1}-u_{k+1} \end{aligned} uk+1xk+1wk+1=proxtg(xk+wk)=proxtf(uk+1wk)=wk+xk+1uk+1
松弛:前面降到了实际上是在对 y y y 做不动点迭代,那么我们可以改为
y k + 1 = y k + ρ k ( F ( y k ) − y k ) y_{k+1}=y_{k}+\rho_{k}\left(F\left(y_{k}\right)-y_{k}\right) yk+1=yk+ρk(F(yk)yk)
如果 1 < ρ k < 2 1<\rho_k<2 1<ρk<2 就是超松弛,如果 0 < ρ k < 1 0<\rho_k<1 0<ρk<1 就是低松弛。这个时候迭代方程稍微复杂了一点点
u k + 1 = prox ⁡ g ( x k + w k ) x k + 1 = prox ⁡ f ( x k + ρ k ( u k + 1 − x k ) − w k ) w k + 1 = w k + x k + 1 − x k + ρ k ( x k − u k + 1 ) \begin{aligned} u_{k+1} &=\operatorname{prox}_{g}\left(x_{k}+w_{k}\right) \\ x_{k+1} &=\operatorname{prox}_{f}\left(x_{k}+\rho_{k}\left(u_{k+1}-x_{k}\right)-w_{k}\right) \\ w_{k+1} &=w_{k}+x_{k+1}-x_{k}+\rho_{k}\left(x_{k}-u_{k+1}\right) \end{aligned} uk+1xk+1wk+1=proxg(xk+wk)=proxf(xk+ρk(uk+1xk)wk)=wk+xk+1xk+ρk(xkuk+1)
共轭函数:根据 Moreau decomposition prox g ( x ) + prox g ⋆ ( x ) = x \text{prox}_g(x)+\text{prox}_{g^\star}(x)=x proxg(x)+proxg(x)=x,如果 prox g \text{prox}_g proxg 比较难计算,我们就可以换到共轭函数上去计算
x k + 1 = prox ⁡ f ( y k ) y k + 1 = x k + 1 − prox ⁡ g ∗ ( 2 x k + 1 − y k ) \begin{array}{l} x_{k+1}=\operatorname{prox}_{f}\left(y_{k}\right) \\ y_{k+1}=x_{k+1}-\operatorname{prox}_{g^{*}}\left(2 x_{k+1}-y_{k}\right) \end{array} xk+1=proxf(yk)yk+1=xk+1proxg(2xk+1yk)
下面举几个例子,主要就是练习近似点算子的计算,因为 DR-splitting 方法主要就是在计算 f , g f,g f,g 的近似点。

例子 1:变量 X ∈ S n X\in S^n XSn,参数 C ∈ S + n , γ > 0 C\in S_+^n,\gamma>0 CS+n,γ>0
 minimize  tr ⁡ ( C X ) − log ⁡ det ⁡ X + γ ∑ i > j ∣ X i j ∣ \text { minimize } \quad \operatorname{tr}(C X)-\log \operatorname{det} X+\gamma \sum_{i>j}\left|X_{i j}\right|  minimize tr(CX)logdetX+γi>jXij
我们取 f ( X ) = tr ⁡ ( C X ) − log ⁡ det ⁡ X , g ( X ) = γ ∑ i > j ∣ X i j ∣ f(X)=\operatorname{tr}(C X)-\log \operatorname{det} X,\quad g(X)=\gamma \sum_{i>j}\left|X_{i j}\right| f(X)=tr(CX)logdetX,g(X)=γi>jXij

X = prox t f ( X ^ )    ⟺    C − X − 1 + ( 1 / t ) ( X − X ^ ) X=\text{prox}_{tf}(\hat{X}) \iff C-X^{-1}+(1/t)(X-\hat{X}) X=proxtf(X^)CX1+(1/t)(XX^),这个方程可以通过对 X ^ − t C \hat{X}-tC X^tC 进行特征值分解求解

X = prox t g ( X ^ ) X=\text{prox}_{tg}(\hat{X}) X=proxtg(X^) 可以通过软阈值(soft-thresholding)求解

例子 2:考虑等式约束的优化问题
min ⁡ f ( x ) s.t. x ∈ V \begin{aligned} \min \quad& f(x)\\ \text{s.t.} \quad& x\in V \end{aligned} mins.t.f(x)xV
等价于 g = δ V g=\delta_V g=δV
x k + 1 = prox ⁡ g ( y k ) y k + 1 = y k + P V ( 2 x k + 1 − y k ) − x k + 1 \begin{array}{l} x_{k+1}=\operatorname{prox}_{g}\left(y_{k}\right) \\ y_{k+1}=y_{k}+P_V\left(2 x_{k+1}-y_{k}\right)-x_{k+1} \end{array} xk+1=proxg(yk)yk+1=yk+PV(2xk+1yk)xk+1
例子 3:考虑这种复合形式 min ⁡ f 1 ( x ) + f 2 ( A x ) \min f_1(x)+f_2(Ax) minf1(x)+f2(Ax),可以引入等式约束
min ⁡ f 1 ( x ) + f 2 ( y ) s.t. A x = y \begin{aligned} \min \quad& f_1(x)+f_2(y) \\ \text{s.t.} \quad& Ax=y \end{aligned} mins.t.f1(x)+f2(y)Ax=y
f ( x 1 , x 2 ) = f 1 ( x 1 ) + f 2 ( x 2 ) f(x_1,x_2)=f_1(x_1)+f_2(x_2) f(x1,x2)=f1(x1)+f2(x2),他的近似点算子是可分的
prox ⁡ t f ( x 1 , x 2 ) = ( prox ⁡ t f 1 ( x 1 ) , prox ⁡ t f 2 ( x 2 ) ) \operatorname{prox}_{t f}\left(x_{1}, x_{2}\right)=\left(\operatorname{prox}_{t f_{1}}\left(x_{1}\right), \operatorname{prox}_{t f_{2}}\left(x_{2}\right)\right) proxtf(x1,x2)=(proxtf1(x1),proxtf2(x2))
然后像例子 2 一样,向超平面 [ A , − I ] [ x 1 , x 2 ] T = 0 [A,-I][x_1,x_2]^T=0 [A,I][x1,x2]T=0 做个投影。

2. ADMM

交替方向乘子法(Alternating Direction Method of Multipliers)也是一个很重要而且很受欢迎的算法,下一节还会详细讲,这里主要是看看他与 DR-splitting 的联系。

这里还是先给出结论:DR-splitting 中取 ρ k = 1 \rho_k=1 ρk=1,应用在对偶问题上,就等价于原问题的 ADMM 算法。我们先推导对偶问题上的 DR-splitting 迭代形式,然后再引出 ADMM 方法。

对可分离的凸优化问题
( P ) min ⁡ f 1 ( x 1 ) + f 2 ( x 2 ) s.t. A 1 x 1 + A 2 x 2 = b ( D ) max ⁡ − b T z − f 1 ∗ ( − A 1 T z ) − f 2 ∗ ( − A 2 T z ) \begin{aligned} (P)\min \quad& f_1(x_1)+f_2(x_2) \\ \text{s.t.} \quad& A_1x_1+A_2x_2=b \\ (D)\max \quad& -b^{T} z-f_{1}^{*}\left(-A_{1}^{T} z\right)-f_{2}^{*}\left(-A_{2}^{T} z\right) \end{aligned} (P)mins.t.(D)maxf1(x1)+f2(x2)A1x1+A2x2=bbTzf1(A1Tz)f2(A2Tz)
g ( z ) = b T z + f 1 ⋆ ( − A 1 T z ) , f ( z ) = f 2 ⋆ ( − A 2 T z ) g(z)=b^{T} z+f_{1}^{\star}\left(-A_{1}^{T} z\right), f(z)=f_{2}^{\star}\left(-A_{2}^{T} z\right) g(z)=bTz+f1(A1Tz),f(z)=f2(A2Tz),DR 方法为
u + = prox ⁡ t g ( z + w ) , z + = prox ⁡ t f ( u + − w ) , w + = w + z + − u + u^{+}=\operatorname{prox}_{t g}(z+w), \quad z^{+}=\operatorname{prox}_{t f}\left(u^{+}-w\right), \quad w^{+}=w+z^{+}-u^{+} u+=proxtg(z+w),z+=proxtf(u+w),w+=w+z+u+
第一步:他等价于计算
x ^ 1 = argmin ⁡ x 1 ( f 1 ( x 1 ) + z T ( A 1 x 1 − b ) + t 2 ∥ A 1 x 1 − b + w / t ∥ 2 2 ) u + = z + w + t ( A 1 x ^ 1 − b ) \begin{aligned} \hat{x}_{1} &=\underset{x_{1}}{\operatorname{argmin}}\left(f_{1}\left(x_{1}\right)+z^{T}\left(A_{1} x_{1}-b\right)+\frac{t}{2}\left\|A_{1} x_{1}-b+w / t\right\|_{2}^{2}\right) \\ u^{+} &=z+w+t\left(A_{1} \hat{x}_{1}-b\right) \end{aligned} x^1u+=x1argmin(f1(x1)+zT(A1x1b)+2tA1x1b+w/t22)=z+w+t(A1x^1b)
这个证明很不直观,上一节分析 PPA 与 ALM 的关系的时候,证明了一个很不直观的结论:对 h ( z ) = g ⋆ ( z ) + f ⋆ ( − A T z ) h(z)=g^{\star}(z)+f^{\star}\left(-A^{T} z\right) h(z)=g(z)+f(ATz),有
z + = prox t h ( z ) = z + t ( A x ^ − y ^ ) ( x ^ , y ^ ) = argmin ⁡ x , y ( f ( x ) + g ( y ) + z T ( A x − y ) + t 2 ∥ A x − y ∥ 2 2 ) \begin{aligned}z^+&=\text{prox}_{th}(z) = z+t(A\hat{x}-\hat{y}) \\(\hat{x}, \hat{y})&=\underset{x, y}{\operatorname{argmin}}\left(f(x)+g(y)+z^{T}(A x-y)+\frac{t}{2}\|A x-y\|_{2}^{2}\right)\end{aligned} z+(x^,y^)=proxth(z)=z+t(Ax^y^)=x,yargmin(f(x)+g(y)+zT(Axy)+2tAxy22)
第二步:与第一个式子是类似的,等价于
x ^ 2 = argmin ⁡ x 2 ( f 2 ( x 2 ) + z T A 2 x 2 + t 2 ∥ A 1 x ^ 1 + A 2 x 2 − b ∥ 2 2 z + = z + t ( A 1 x ^ 1 + A 2 x ^ 2 − b ) \begin{array}{l}\hat{x}_{2}=\underset{x_{2}}{\operatorname{argmin}}\left(f_{2}\left(x_{2}\right)+z^{T} A_{2} x_{2}+\frac{t}{2}\left\|A_{1} \hat{x}_{1}+A_{2} x_{2}-b\right\|_{2}^{2}\right. \\z^{+}=z+t\left(A_{1} \hat{x}_{1}+A_{2} \hat{x}_{2}-b\right)\end{array} x^2=x2argmin(f2(x2)+zTA2x2+2tA1x^1+A2x2b22z+=z+t(A1x^1+A2x^2b)
第三步 w + = t A 2 x ^ 2 w^+=tA_2\hat{x}_2 w+=tA2x^2

现在我们就可以引出 ADMM 方法了,他包括三个步骤
x k + 1 , 1 = argmin ⁡ x ~ 1 ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + t 2 ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) x k + 1 , 2 = argmin ⁡ x ~ 2 ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + t 2 ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 ) z k + 1 = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b ) \begin{aligned}x_{k+1,1}&=\underset{\tilde{x}_{1}}{\operatorname{argmin}}\left(f_{1}\left(\tilde{x}_{1}\right)+z_{k}^{T} A_{1} \tilde{x}_{1}+\frac{t}{2}\left\|A_{1} \tilde{x}_{1}+A_{2} x_{k, 2}-b\right\|_{2}^{2}\right) \\x_{k+1,2}&=\underset{\tilde{x}_{2}}{\operatorname{argmin}}\left(f_{2}\left(\tilde{x}_{2}\right)+z_{k}^{T} A_{2} \tilde{x}_{2}+\frac{t}{2}\left\|A_{1} x_{k+1,1}+A_{2} \tilde{x}_{2}-b\right\|_{2}^{2}\right) \\z_{k+1}&=z_{k}+t\left(A_{1} x_{k+1,1}+A_{2} x_{k+1,2}-b\right)\end{aligned} xk+1,1xk+1,2zk+1=x~1argmin(f1(x~1)+zkTA1x~1+2tA1x~1+A2xk,2b22)=x~2argmin(f2(x~2)+zkTA2x~2+2tA1xk+1,1+A2x~2b22)=zk+t(A1xk+1,1+A2xk+1,2b)
前两步分别对应了增广拉格朗日函数的两部分,分别对 x 1 , x 2 x_1,x_2 x1,x2 进行优化。与原本的 ALM 算法相比,ALM 是每次对 ( x 1 , x 2 ) (x_1,x_2) (x1,x2) 进行联合优化,即
( x k + 1 , 1 , x k + 1 , 2 ) = arg ⁡ min ⁡ x 1 , x 2 L t ( x 1 , x 2 , z k ) z k + 1 = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b ) \begin{aligned}(x_{k+1,1},x_{k+1,2}) = \arg\min_{x_1,x_2} L_t(x_1,x_2,z_k) \\z_{k+1} = z_k + t\left(A_{1} x_{k+1,1}+A_{2} x_{k+1,2}-b\right)\end{aligned} (xk+1,1,xk+1,2)=argx1,x2minLt(x1,x2,zk)zk+1=zk+t(A1xk+1,1+A2xk+1,2b)
另外我们前面还讲到了 dual PG 方法跟 ALM 也很像,也是增广拉格朗日函数先对 x 1 x_1 x1 优化再对 x 2 x_2 x2 优化,但注意他跟 ADMM 不同的地方在于:前者对 x 1 x_1 x1 优化的时候不包含后面的二次正则项,而 ADMM 则包含,写出来对比一下就知道了
( d u a l   P G ) x ^ = argmin ⁡ x ( f ( x ) + z T A x ) y ^ = argmin ⁡ y ( g ( y ) − z T y + t 2 ∥ A x ^ − y ∥ 2 2 ) ( A D M M ) x k + 1 , 1 = argmin ⁡ x ~ 1 ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + t 2 ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) x k + 1 , 2 = argmin ⁡ x ~ 2 ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + t 2 ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 ) \begin{aligned} (dual\ PG)\hat{x} &=\underset{x}{\operatorname{argmin}}\left(f(x)+z^{T} A x\right) \\ \hat{y} &=\underset{y}{\operatorname{argmin}}\left(g(y)-z^{T} y+\frac{t}{2}\|A \hat{x}-y\|_{2}^{2}\right) \\ (ADMM) x_{k+1,1}&=\underset{\tilde{x}_{1}}{\operatorname{argmin}}\left(f_{1}\left(\tilde{x}_{1}\right)+z_{k}^{T} A_{1} \tilde{x}_{1}+\frac{t}{2}\left\|A_{1} \tilde{x}_{1}+A_{2} x_{k, 2}-b\right\|_{2}^{2}\right) \\ x_{k+1,2}&=\underset{\tilde{x}_{2}}{\operatorname{argmin}}\left(f_{2}\left(\tilde{x}_{2}\right)+z_{k}^{T} A_{2} \tilde{x}_{2}+\frac{t}{2}\left\|A_{1} x_{k+1,1}+A_{2} \tilde{x}_{2}-b\right\|_{2}^{2}\right) \end{aligned} (dual PG)x^y^(ADMM)xk+1,1xk+1,2=xargmin(f(x)+zTAx)=yargmin(g(y)zTy+2tAx^y22)=x~1argmin(f1(x~1)+zkTA1x~1+2tA1x~1+A2xk,2b22)=x~2argmin(f2(x~2)+zkTA2x~2+2tA1xk+1,1+A2x~2b22)

3. 收敛性分析

DR 方法可以看成是一个不动点迭代,因此要证明收敛性,我们需要证明以下两个结论:

  1. y k y_k yk 收敛到 F ( y ) F(y) F(y) 的不动点 y ⋆ y^\star y
  2. x k + 1 = prox f ( y k ) x_{k+1}=\text{prox}_f(y_k) xk+1=proxf(yk) 收敛到 x ⋆ = prox f ( y ⋆ ) x^\star=\text{prox}_f(y^\star) x=proxf(y)

在证明收敛性之前,需要先定义两个函数
F ( y ) = y + prox ⁡ g ( 2 prox ⁡ f ( y ) − y ) − prox ⁡ f ( y ) G ( y ) = y − F ( y ) = prox ⁡ f ( y ) − prox ⁡ g ( 2 prox ⁡ f ( y ) − y ) \begin{aligned}F(y) &=y+\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)-\operatorname{prox}_{f}(y) \\G(y) &=y-F(y) \\&=\operatorname{prox}_{f}(y)-\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)\end{aligned} F(y)G(y)=y+proxg(2proxf(y)y)proxf(y)=yF(y)=proxf(y)proxg(2proxf(y)y)
需要用到的是这两个函数的 firmly nonexpansive(co-coercive with parameter 1) 的性质
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2  for all  y , y ^ ( G ( y ) − G ( y ^ ) ) T ( y − y ^ ) ≥ ∥ G ( y ) − G ( y ^ ) ∥ 2 2 \begin{aligned}(F(y)-F(\hat{y}))^{T}(y-\hat{y}) &\geq\|F(y)-F(\hat{y})\|_{2}^{2} \quad \text { for all } y, \hat{y} \\(G(y)-G(\hat{y}))^{T}(y-\hat{y}) &\geq\|G(y)-G(\hat{y})\|_{2}^{2}\end{aligned} (F(y)F(y^))T(yy^)(G(y)G(y^))T(yy^)F(y)F(y^)22 for all y,y^G(y)G(y^)22
证明:令 x = prox f ( y ) , x ^ = prox f ( y ^ ) x=\text{prox}_f(y),\hat{x}=\text{prox}_f(\hat{y}) x=proxf(y),x^=proxf(y^) v = prox ⁡ g ( 2 x − y ) , v ^ = prox ⁡ g ( 2 x ^ − y ^ ) v=\operatorname{prox}_{g}(2 x-y), \quad \hat{v}=\operatorname{prox}_{g}(2 \hat{x}-\hat{y}) v=proxg(2xy),v^=proxg(2x^y^)

根据 F ( y ) = y + v − x , F ( y ^ ) = y ^ + v ^ − x ^ F(y)=y+v-x,F(\hat{y})=\hat{y}+\hat{v}-\hat{x} F(y)=y+vx,F(y^)=y^+v^x^
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ≥ ( y + v − x − y ^ − v ^ + x ^ ) T ( y − y ^ ) − ( x − x ^ ) T ( y − y ^ ) + ∥ x − x ^ ∥ 2 2 = ( v − v ^ ) T ( y − y ^ ) + ∥ y − x − y ^ + x ^ ∥ 2 2 = ( v − v ^ ) T ( 2 x − y − 2 x ^ + y ^ ) − ∥ v − v ^ ∥ 2 2 + ∥ F ( y ) − F ( y ^ ) ∥ 2 2 ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2 \begin{array}{l}(F(y)-F(\hat{y}))^{T}(y-\hat{y}) \\\quad \geq \quad(y+v-x-\hat{y}-\hat{v}+\hat{x})^{T}(y-\hat{y})-(x-\hat{x})^{T}(y-\hat{y})+\|x-\hat{x}\|_{2}^{2} \\\quad=(v-\hat{v})^{T}(y-\hat{y})+\|y-x-\hat{y}+\hat{x}\|_{2}^{2} \\\quad=(v-\hat{v})^{T}(2 x-y-2 \hat{x}+\hat{y})-\|v-\hat{v}\|_{2}^{2}+\|F(y)-F(\hat{y})\|_{2}^{2} \\\quad \geq\|F(y)-F(\hat{y})\|_{2}^{2}\end{array} (F(y)F(y^))T(yy^)(y+vxy^v^+x^)T(yy^)(xx^)T(yy^)+xx^22=(vv^)T(yy^)+yxy^+x^22=(vv^)T(2xy2x^+y^)vv^22+F(y)F(y^)22F(y)F(y^)22
其中用到了 prox \text{prox} prox 算子的firm nonexpansiveness 性质
( x − x ^ ) T ( y − y ^ ) ≥ ∥ x − x ^ ∥ 2 2 , ( 2 x − y − 2 x ^ + y ^ ) T ( v − v ^ ) ≥ ∥ v − v ^ ∥ 2 2 (x-\hat{x})^{T}(y-\hat{y}) \geq\|x-\hat{x}\|_{2}^{2}, \quad(2 x-y-2 \hat{x}+\hat{y})^{T}(v-\hat{v}) \geq\|v-\hat{v}\|_{2}^{2} (xx^)T(yy^)xx^22,(2xy2x^+y^)T(vv^)vv^22
证毕。

然后我们就可以根据以下的不动点迭代方程证明前面提到的收敛性
y k + 1 = ( 1 − ρ k ) y k + ρ k F ( y k ) = y k − ρ k G ( y k ) \begin{aligned}y_{k+1} &=\left(1-\rho_{k}\right) y_{k}+\rho_{k} F\left(y_{k}\right) \\&=y_{k}-\rho_{k} G\left(y_{k}\right)\end{aligned} yk+1=(1ρk)yk+ρkF(yk)=ykρkG(yk)
其中需要假设 F F F 的不动点存在,且满足 0 ∈ ∂ f ( x ) + ∂ g ( x ) 0\in\partial f(x)+\partial g(x) 0f(x)+g(x),以及松弛变量 ρ k ∈ [ ρ min ⁡ , ρ max ⁡ ] , 0 < ρ min ⁡ < ρ max ⁡ < 2 \rho_k\in [\rho_{\min},\rho_{\max}],0<\rho_{\min}<\rho_{\max}<2 ρk[ρmin,ρmax],0<ρmin<ρmax<2

证明:设 y ⋆ y^\star y F ( y ) F(y) F(y) 的不动点(也即 G ( y ) G(y) G(y) 的零点),考虑第 k k k 步迭代
∥ y + − y ⋆ ∥ 2 2 − ∥ y − y ⋆ ∥ 2 2 = 2 ( y + − y ) T ( y − y ⋆ ) + ∥ y + − y ∥ 2 2 = − 2 ρ G ( y ) T ( y − y ⋆ ) + ρ 2 ∥ G ( y ) ∥ 2 2 ≤ − ρ ( 2 − ρ ) ∥ G ( y ) ) ∥ 2 2 ≤ − M ∥ G ( y ) ) ∥ 2 2 \begin{aligned}\left\|y^{+}-y^{\star}\right\|_{2}^{2}-\left\|y-y^{\star}\right\|_{2}^{2} &=2\left(y^{+}-y\right)^{T}\left(y-y^{\star}\right)+\left\|y^{+}-y\right\|_{2}^{2} \\&=-2 \rho G(y)^{T}\left(y-y^{\star}\right)+\rho^{2}\|G(y)\|_{2}^{2} \\&\leq-\rho(2-\rho) \| G(y)) \|_{2}^{2} \\&\leq-M \| G(y)) \|_{2}^{2}\end{aligned} y+y22yy22=2(y+y)T(yy)+y+y22=2ρG(y)T(yy)+ρ2G(y)22ρ(2ρ)G(y))22MG(y))22
其中 M = ρ min ⁡ ( 2 − ρ max ⁡ ) M=\rho_{\min}(2-\rho_{\max}) M=ρmin(2ρmax)。上式表明
M ∑ k = 0 ∞ ∥ G ( y k ) ∥ 2 2 ≤ ∥ y 0 − y ⋆ ∥ 2 2 , ∥ G ( y ) ∥ 2 → 0 M \sum_{k=0}^{\infty}\left\|G\left(y_{k}\right)\right\|_{2}^{2} \leq\left\|y_{0}-y^{\star}\right\|_{2}^{2}, \quad \| G(y)\|_2\to 0 Mk=0G(yk)22y0y22,G(y)20
还可以得到 ∥ y k − y ⋆ ∥ 2 \| y_k-y^\star\|_2 yky2 是单调不增的,因此 y k y_k yk 有界。

由于 ∥ y k − y ⋆ ∥ 2 \| y_k-y^\star\|_2 yky2 单调不增,故极限 lim ⁡ k → ∞ ∥ y k − y ⋆ ∥ 2 \lim_{k\to \infty} \| y_k-y^\star\|_2 limkyky2 存在;又由于 y k y_k yk 有界,故存在收敛子序列。

y ˉ k \bar{y}_k yˉk 为一个收敛子序列,收敛值为 y ˉ \bar{y} yˉ,根据 G G G 的连续性有 0 = lim ⁡ k → ∞ G ( y ˉ k ) = G ( y ˉ ) 0=\lim _{k \rightarrow \infty} G\left(\bar{y}_{k}\right)=G(\bar{y}) 0=limkG(yˉk)=G(yˉ),因此 y ˉ \bar{y} yˉ G G G 的l零点,且极限 lim ⁡ k → ∞ ∥ y k − y ˉ ∥ 2 \lim_{k\to \infty} \| y_k-\bar{y}\|_2 limkykyˉ2 存在。

接着需要证明唯一性,假设 u ˉ , v ˉ \bar{u},\bar{v} uˉ,vˉ 是两个不同的极限点,收敛极限 lim ⁡ k → ∞ ∥ y k − u ˉ ∥ 2 , lim ⁡ k → ∞ ∥ y k − v ˉ ∥ 2 \lim_{k\to \infty} \| y_k-\bar{u}\|_2,\lim_{k\to \infty} \| y_k-\bar{v}\|_2 limkykuˉ2,limkykvˉ2 存在,因此
∥ u ˉ − v ˉ ∥ 2 = lim ⁡ k → ∞ ∥ y k − u ˉ ∥ 2 = lim ⁡ k → ∞ ∥ y k − v ˉ ∥ 2 = 0 \|\bar{u}-\bar{v}\|_{2}=\lim _{k \rightarrow \infty}\left\|y_{k}-\bar{u}\right\|_{2}=\lim _{k \rightarrow \infty}\left\|y_{k}-\bar{v}\right\|_{2}=0 uˉvˉ2=klimykuˉ2=klimykvˉ2=0
证毕。

最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/

前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性
凸优化学习笔记 14:SDP Representablity
最优化方法 15:梯度方法
最优化方法 16:次梯度
最优化方法 17:次梯度下降法
最优化方法 18:近似点算子 Proximal Mapping
最优化方法 19:近似梯度下降
最优化方法 20:对偶近似点梯度下降法
最优化方法 21:加速近似梯度下降方法
最优化方法 22:近似点算法 PPA
最优化方法 23:算子分裂法 & ADMM
最优化方法 24:ADMM

你可能感兴趣的:(凸优化)