最优化方法 23:算子分裂法 ADMM
前面章节中,针对 minf(x)+g(Ax)\min f(x)+g(Ax)minf(x)+g(Ax) 形式的优化问题,我们介绍了如 PG、dual PG、ALM、PPA 等方法。但是比如 PG 方法为
xk+1=proxth(xk−tk∇g(xk))x_{k+1}=\text{prox}_{th}(x_k-t_k\nabla g(x_k)) xk+1=proxth(xk−tk∇g(xk))
ALM 的第一步要解一个联合优化问题
(xk+1,yk+1)=argminx,yLt(x,y,zk)(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,gf,gf,g 耦合在一起了。如果我们看原始问题 minf(x)+g(Ax)\min f(x)+g(Ax)minf(x)+g(Ax) 实际上就是要找 x⋆x^\starx⋆ 使得 0∈∂f(x⋆)+AT∂g(x⋆)0\in\partial f(x^\star)+A^T\partial g(x^\star)0∈∂f(x⋆)+AT∂g(x⋆),这一节要介绍的 Douglas-Rachford splitting method 实际上就是要 decoupling。
1.Douglas-Rachford splitting Algorithm
针对如下优化问题,其中 f,gf,gf,g 都是闭凸函数
minf(x)+g(x)\min f(x)+g(x) minf(x)+g(x)
先给出 DR-splitting 方法的迭代方程
xk+1=proxf(yk)yk+1=yk+proxg(2xk+1−yk)−xk+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+1−yk)−xk+1
为什么叫做 splitting 呢?回忆 PPA 是不是需要求解 x+=proxt(f+g)(x)x^+ = \text{prox}_{t(f+g)}(x)x+=proxt(f+g)(x),而这里则可以分开依次求 proxf\text{prox}_fproxf 和 proxg\text{prox}_gproxg,所以被称为 splitting。这个迭代方程看起来没有规律,那么他能不能收敛呢?答案当然是可以的,xkx_kxk 最终会收敛到 0∈∂f(x)+∂g(x)0\in \partial f(x)+\partial g(x)0∈∂f(x)+∂g(x),这个证明放到后面,先来从别的方面认识一下这个方法。
首先 f,gf,gf,g 并没有区分,因此可以交换两者的位置,那么迭代方程也可以写为
xk+1=proxg(yk)yk+1=yk+proxf(2xk+1−yk)−xk+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+1−yk)−xk+1
但需要注意的是这两种不同的迭代方程产生的序列是不一样的,也可能会影响收敛的速度,因此这个方法关于 f,gf,gf,g 是不对称的。
如果把 xk+1x_{k+1}xk+1 带入到第二步,整个过程实际上可以用一个迭代方程表示
yk+1=F(y)F(y)=y+proxg(2proxf(y)−y)−proxf(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) 是连续的吗?是的,这是因为上一节中我们证明了 proxh(x)\text{prox}_{h}(x)proxh(x) 满足firmly nonexpansive(co-coercivite) 性质
(proxh(x)−proxh(y))T(x−y)≥∥proxh(x)−proxh(y)∥22\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(x−y)≥∥proxh(x)−proxh(y)∥22
因此近似点算子是 Lipschitz continuous 的,所以 F(y)F(y)F(y) 也是连续的。那么假如最终找到了不动点 yyy,他有什么性质呢?
y=F(y)⟺0∈∂f(proxf(y))+∂g(proxf(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)⟺0∈∂f(proxf(y))+∂g(proxf(y))
证明:对于不动点 y=F(y)y=F(y)y=F(y),取 x=proxf(y)x=\text{prox}_f(y)x=proxf(y),我们有
x=proxf(y),F(y)=y⟺x=proxf(y),x=proxg(2x−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),⟺y−x∈∂f(x),F(y)=yx=proxg(2x−y)x−y∈∂g(x)
其中第一个等价性只需要把 xxx 带入到 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=(y−x)+(x−y)∈∂f(x)+∂g(x)
自然而然地我们证明了一开始提到的 xkx_{k}xk 的收敛性。
等价形式:下面这部分则主要是对原始形式做了一些变量代换,使其看起来更简洁,并没有新的内容。首先交换 x,yx,yx,y 的迭代次序
yk+1=yk+proxg(2xk−yk)−xkxk+1=proxf(yk+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(2xk−yk)−xkxk+1=proxf(yk+1)
引入新变量 uk+1=proxg(2xk−yk),wk=xk−yku_{k+1}=\text{prox}_g(2x_k-y_k),w_k=x_k-y_kuk+1=proxg(2xk−yk),wk=xk−yk
uk+1=proxg(xk+wk)xk+1=proxf(uk+1−wk)wk+1=wk+xk+1−uk+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+1−wk)=wk+xk+1−uk+1
放缩:除此之外,我们还可以对原始问题做一个放缩变为 mintf(x)+tg(x)\min tf(x)+tg(x)mintf(x)+tg(x),那么迭代方程就变为如下形式,并没有本质的变化
uk+1=proxtg(xk+wk)xk+1=proxtf(uk+1−wk)wk+1=wk+xk+1−uk+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+1−wk)=wk+xk+1−uk+1
松弛:前面降到了实际上是在对 yyy 做不动点迭代,那么我们可以改为
yk+1=yk+ρk(F(yk)−yk)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<21<\rho_k<21<ρk<2 就是超松弛,如果 0<ρk<10<\rho_k<10<ρk<1 就是低松弛。这个时候迭代方程稍微复杂了一点点
uk+1=proxg(xk+wk)xk+1=proxf(xk+ρk(uk+1−xk)−wk)wk+1=wk+xk+1−xk+ρk(xk−uk+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+1−xk)−wk)=wk+xk+1−xk+ρk(xk−uk+1)
共轭函数:根据 Moreau decomposition proxg(x)+proxg⋆(x)=x\text{prox}_g(x)+\text{prox}_{g^\star}(x)=xproxg(x)+proxg⋆(x)=x,如果 proxg\text{prox}_gproxg 比较难计算,我们就可以换到共轭函数上去计算
xk+1=proxf(yk)yk+1=xk+1−proxg∗(2xk+1−yk)\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+1−proxg∗(2xk+1−yk)
下面举几个例子,主要就是练习近似点算子的计算,因为 DR-splitting 方法主要就是在计算 f,gf,gf,g 的近似点。
例子 1:变量 X∈SnX\in S^nX∈Sn,参数 C∈S+n,γ>0C\in S_+^n,\gamma>0C∈S+n,γ>0
minimize tr(CX)−logdetX+γ∑i>j∣Xij∣\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>j∑∣Xij∣
我们取 f(X)=tr(CX)−logdetX,g(X)=γ∑i>j∣Xij∣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>j∣Xij∣
X=proxtf(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^)⟺C−X−1+(1/t)(X−X^),这个方程可以通过对 X^−tC\hat{X}-tCX^−tC 进行特征值分解求解
X=proxtg(X^)X=\text{prox}_{tg}(\hat{X})X=proxtg(X^) 可以通过软阈值(soft-thresholding)求解
例子 2:考虑等式约束的优化问题
minf(x)s.t.x∈V\begin{aligned} \min \quad& f(x)\\ \text{s.t.} \quad& x\in V \end{aligned} mins.t.f(x)x∈V
等价于 g=δVg=\delta_Vg=δV
xk+1=proxg(yk)yk+1=yk+PV(2xk+1−yk)−xk+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+1−yk)−xk+1
例子 3:考虑这种复合形式 minf1(x)+f2(Ax)\min f_1(x)+f_2(Ax)minf1(x)+f2(Ax),可以引入等式约束
minf1(x)+f2(y)s.t.Ax=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(x1,x2)=f1(x1)+f2(x2)f(x_1,x_2)=f_1(x_1)+f_2(x_2)f(x1,x2)=f1(x1)+f2(x2),他的近似点算子是可分的
proxtf(x1,x2)=(proxtf1(x1),proxtf2(x2))\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][x1,x2]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)minf1(x1)+f2(x2)s.t.A1x1+A2x2=b(D)max−bTz−f1∗(−A1Tz)−f2∗(−A2Tz)\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=b−bTz−f1∗(−A1Tz)−f2∗(−A2Tz)
取 g(z)=bTz+f1⋆(−A1Tz),f(z)=f2⋆(−A2Tz)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+=proxtg(z+w),z+=proxtf(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=argminx1(f1(x1)+zT(A1x1−b)+t2∥A1x1−b+w/t∥22)u+=z+w+t(A1x^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(A1x1−b)+2t∥A1x1−b+w/t∥22)=z+w+t(A1x^1−b)
这个证明很不直观,上一节分析 PPA 与 ALM 的关系的时候,证明了一个很不直观的结论:对 h(z)=g⋆(z)+f⋆(−ATz)h(z)=g^{\star}(z)+f^{\star}\left(-A^{T} z\right)h(z)=g⋆(z)+f⋆(−ATz),有
z+=proxth(z)=z+t(Ax^−y^)(x^,y^)=argminx,y(f(x)+g(y)+zT(Ax−y)+t2∥Ax−y∥22)\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(Ax−y)+2t∥Ax−y∥22)
第二步:与第一个式子是类似的,等价于
x^2=argminx2(f2(x2)+zTA2x2+t2∥A1x^1+A2x2−b∥22z+=z+t(A1x^1+A2x^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+2t∥A1x^1+A2x2−b∥22z+=z+t(A1x^1+A2x^2−b)
第三步:w+=tA2x^2w^+=tA_2\hat{x}_2w+=tA2x^2
现在我们就可以引出 ADMM 方法了,他包括三个步骤
xk+1,1=argminx~1(f1(x~1)+zkTA1x~1+t2∥A1x~1+A2xk,2−b∥22)xk+1,2=argminx~2(f2(x~2)+zkTA2x~2+t2∥A1xk+1,1+A2x~2−b∥22)zk+1=zk+t(A1xk+1,1+A2xk+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+2t∥A1x~1+A2xk,2−b∥22)=x~2argmin(f2(x~2)+zkTA2x~2+2t∥A1xk+1,1+A2x~2−b∥22)=zk+t(A1xk+1,1+A2xk+1,2−b)
前两步分别对应了增广拉格朗日函数的两部分,分别对 x1,x2x_1,x_2x1,x2 进行优化。与原本的 ALM 算法相比,ALM 是每次对 (x1,x2)(x_1,x_2)(x1,x2) 进行联合优化,即
(xk+1,1,xk+1,2)=argminx1,x2Lt(x1,x2,zk)zk+1=zk+t(A1xk+1,1+A2xk+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,2−b)
另外我们前面还讲到了 dual PG 方法跟 ALM 也很像,也是增广拉格朗日函数先对 x1x_1x1 优化再对 x2x_2x2 优化,但注意他跟 ADMM 不同的地方在于:前者对 x1x_1x1 优化的时候不包含后面的二次正则项,而 ADMM 则包含,写出来对比一下就知道了
(dualPG)x^=argminx(f(x)+zTAx)y^=argminy(g(y)−zTy+t2∥Ax^−y∥22)(ADMM)xk+1,1=argminx~1(f1(x~1)+zkTA1x~1+t2∥A1x~1+A2xk,2−b∥22)xk+1,2=argminx~2(f2(x~2)+zkTA2x~2+t2∥A1xk+1,1+A2x~2−b∥22)\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+2t∥Ax^−y∥22)=x~1argmin(f1(x~1)+zkTA1x~1+2t∥A1x~1+A2xk,2−b∥22)=x~2argmin(f2(x~2)+zkTA2x~2+2t∥A1xk+1,1+A2x~2−b∥22)
3. 收敛性分析
DR 方法可以看成是一个不动点迭代,因此要证明收敛性,我们需要证明以下两个结论:
- yky_kyk 收敛到 F(y)F(y)F(y) 的不动点 y⋆y^\stary⋆
- xk+1=proxf(yk)x_{k+1}=\text{prox}_f(y_k)xk+1=proxf(yk) 收敛到 x⋆=proxf(y⋆)x^\star=\text{prox}_f(y^\star)x⋆=proxf(y⋆)
在证明收敛性之前,需要先定义两个函数
F(y)=y+proxg(2proxf(y)−y)−proxf(y)G(y)=y−F(y)=proxf(y)−proxg(2proxf(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)=y−F(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^)∥22for all y,y^(G(y)−G(y^))T(y−y^)≥∥G(y)−G(y^)∥22\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(y−y^)(G(y)−G(y^))T(y−y^)≥∥F(y)−F(y^)∥22 for all y,y^≥∥G(y)−G(y^)∥22
证明:令 x=proxf(y),x^=proxf(y^)x=\text{prox}_f(y),\hat{x}=\text{prox}_f(\hat{y})x=proxf(y),x^=proxf(y^),v=proxg(2x−y),v^=proxg(2x^−y^)v=\operatorname{prox}_{g}(2 x-y), \quad \hat{v}=\operatorname{prox}_{g}(2 \hat{x}-\hat{y})v=proxg(2x−y),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+v−x,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^∥22=(v−v^)T(y−y^)+∥y−x−y^+x^∥22=(v−v^)T(2x−y−2x^+y^)−∥v−v^∥22+∥F(y)−F(y^)∥22≥∥F(y)−F(y^)∥22\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(y−y^)≥(y+v−x−y^−v^+x^)T(y−y^)−(x−x^)T(y−y^)+∥x−x^∥22=(v−v^)T(y−y^)+∥y−x−y^+x^∥22=(v−v^)T(2x−y−2x^+y^)−∥v−v^∥22+∥F(y)−F(y^)∥22≥∥F(y)−F(y^)∥22
其中用到了 prox\text{prox}prox 算子的firm nonexpansiveness 性质
(x−x^)T(y−y^)≥∥x−x^∥22,(2x−y−2x^+y^)T(v−v^)≥∥v−v^∥22(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} (x−x^)T(y−y^)≥∥x−x^∥22,(2x−y−2x^+y^)T(v−v^)≥∥v−v^∥22
证毕。
然后我们就可以根据以下的不动点迭代方程证明前面提到的收敛性
yk+1=(1−ρk)yk+ρkF(yk)=yk−ρkG(yk)\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)
其中需要假设 FFF 的不动点存在,且满足 0∈∂f(x)+∂g(x)0\in\partial f(x)+\partial g(x)0∈∂f(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^\stary⋆ 为 F(y)F(y)F(y) 的不动点(也即 G(y)G(y)G(y) 的零点),考虑第 kkk 步迭代
∥y+−y⋆∥22−∥y−y⋆∥22=2(y+−y)T(y−y⋆)+∥y+−y∥22=−2ρG(y)T(y−y⋆)+ρ2∥G(y)∥22≤−ρ(2−ρ)∥G(y))∥22≤−M∥G(y))∥22\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+−y⋆∥∥22−∥y−y⋆∥22=2(y+−y)T(y−y⋆)+∥∥y+−y∥∥22=−2ρG(y)T(y−y⋆)+ρ2∥G(y)∥22≤−ρ(2−ρ)∥G(y))∥22≤−M∥G(y))∥22
其中 M=ρmin(2−ρmax)M=\rho_{\min}(2-\rho_{\max})M=ρmin(2−ρmax)。上式表明
M∑k=0∞∥G(yk)∥22≤∥y0−y⋆∥22,∥G(y)∥2→0M \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=0∑∞∥G(yk)∥22≤∥y0−y⋆∥22,∥G(y)∥2→0
还可以得到 ∥yk−y⋆∥2\| y_k-y^\star\|_2∥yk−y⋆∥2 是单调不增的,因此 yky_kyk 有界。
由于 ∥yk−y⋆∥2\| y_k-y^\star\|_2∥yk−y⋆∥2 单调不增,故极限 limk→∞∥yk−y⋆∥2\lim_{k\to \infty} \| y_k-y^\star\|_2limk→∞∥yk−y⋆∥2 存在;又由于 yky_kyk 有界,故存在收敛子序列。
记 yˉk\bar{y}_kyˉk 为一个收敛子序列,收敛值为 yˉ\bar{y}yˉ,根据 GGG 的连续性有 0=limk→∞G(yˉk)=G(yˉ)0=\lim _{k \rightarrow \infty} G\left(\bar{y}_{k}\right)=G(\bar{y})0=limk→∞G(yˉk)=G(yˉ),因此 yˉ\bar{y}yˉ 是 GGG 的l零点,且极限 limk→∞∥yk−yˉ∥2\lim_{k\to \infty} \| y_k-\bar{y}\|_2limk→∞∥yk−yˉ∥2 存在。
接着需要证明唯一性,假设 uˉ,vˉ\bar{u},\bar{v}uˉ,vˉ 是两个不同的极限点,收敛极限 limk→∞∥yk−uˉ∥2,limk→∞∥yk−vˉ∥2\lim_{k\to \infty} \| y_k-\bar{u}\|_2,\lim_{k\to \infty} \| y_k-\bar{v}\|_2limk→∞∥yk−uˉ∥2,limk→∞∥yk−vˉ∥2 存在,因此
∥uˉ−vˉ∥2=limk→∞∥yk−uˉ∥2=limk→∞∥yk−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=k→∞lim∥yk−uˉ∥2=k→∞lim∥yk−vˉ∥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
最优化方法 23:算子分裂法 ADMM相关推荐
- 最优化方法——0.618法matlab实现
一.基本思想 0.618法的基本思想是通过取试探点和进行函数值的比较,使包含极小点的搜索区间不断缩短,当区间长度缩短到一定程度时,区间上各点的函数值均接近极小值,从而各点可以看作为极小点的近似. 二. ...
- matlab增广拉格朗日,[Opt] 拉格朗日乘子法 | ADMM | Basis pursuit
乘子法 本文先简要介绍三个乘子法,它们的收敛条件依次减弱(不做具体介绍),然后应用 ADMM 算法求解 Basis pursuit 问题最后读读 Boyd 给出的代码. Lagrange Multip ...
- 最优化方法 24:ADMM
上一节讲了对偶问题上的 DR-splitting 就等价于原问题的 ADMM,这一节在详细的讲一下 ADMM 及其变种. 1. 标准 ADMM 形式 首先还是给出 ADMM 要求解的问题的格式,也就是 ...
- 最优化方法 26:不动点迭代
前面讲了很多具体的算法,比如梯度.次梯度.近似点梯度.加速近似点梯度.PPA.DR方法.ADMM.ALM等,对这些方法的迭代过程有了一些了解.这一节则主要是针对算法的收敛性进行分析,试图从一个更加抽象 ...
- 一文详解从拉格朗日乘子法、KKT条件、对偶上升法到罚函数与增广Lagrangian乘子法再到ADMM算法(交替方向乘子法)
最近看了ADMM算法,发现这个算法需要用到许多不少前备知识,在搜索补齐这些知识的过程中感觉网上的资料与总结在零散的同时又不够清晰,在此本文对这一块的内容进行汇总,同时表达自己的一些理解. 目录 拉格朗 ...
- 8)排序①排序算法之交换排序[1]冒泡排序法
1 #include "iostream" 2 using namespace std; 3 4 //************冒泡排序法********* 5 int bubble ...
- 最优化方法 ——— 一阶优化
投影梯度下降算法PGD(Projected Gradient Descent) , P为投影算子,其根据具体的优化问题而定.比如: , 投影算子为 AmsGrad (Adam的改进版) , 其中是常 ...
- 笔记:Tensor RPCA: Exact recovery of corrupted low-rank tensors via convex optimization
Lu, C., et al., Tensor robust principal component analysis: Exact recovery of corrupted low-rank ten ...
- 多无人机(UAV)协同任务分配
一.协同任务规划的功能与结构 多无人机协同任务规划即是根据一组特定条件的约束,以实现某个准则函数的最优或次优为目标,将某项作战任务分解成一些子任务并分配给多无人机系统中的各个无人机分别去完成的过程. ...
最新文章
- java中的ThreadLocal
- mysql 1418 错误原因及解决
- 掉一根头发,搞定二叉排序(搜索)树
- Android FileUtil(android文件工具类)
- LG将授权webOS给其他电视厂商使用
- typescript 接口 interface 的理解
- VS 2015 64位CMake编译openCV3.1.0必备文件
- 11.05T5 另类背包
- paip.java OutOfMemoryError 解决方法o33
- 详细版【机器学习概述】(邱锡鹏)
- 百度云网页视频加速播放
- 软件建模与分析--共享单车管理系统
- Vbox虚拟机无法启动错误Mark
- IOS App的简单开发实例
- 查询python答案的app_2020知到APP大数据分析的python基础最新免费答案查询
- length()与lengthb()的区别
- Win11双屏怎么设置不同壁纸
- java聊天室持续监听,[Java聊天室server]实战之二 监听类
- 第一次学习计划(含用pytorch跑通mnist例子)
- 用 Python 快速追踪基金的收益情况(2022年4月更新) | Python财经实践