方向乘子法(Alternating Direction Method of Multipliers)"/>
交替方向乘子法(Alternating Direction Method of Multipliers)
总目录
一、 凸优化基础(Convex Optimization basics)
- 凸优化基础(Convex Optimization basics)
二、 一阶梯度方法(First-order methods)
- 梯度下降(Gradient Descent)
- 次梯度(Subgradients)
- 近端梯度法(Proximal Gradient Descent)
- 随机梯度下降(Stochastic gradient descent)
三、对偶
- 线性规划中的对偶(Duality in linear programs)
- 凸优化中的对偶(Duality in General Programs)
- KKT条件(Karush-Kuhn-Tucker Conditions)
- 对偶的应用及拓展(Duality Uses and Correspondences)
- 对偶方法(Dual Methods)
- 交替方向乘子法(Alternating Direction Method of Multipliers)
Introduction
上一节我们介绍了对偶梯度上升法和增广拉格朗日方法(也叫作乘子法)。在最后我们提到,对偶梯度上升法虽然可以做变量分解,但是需要较强的约束条件保证收敛;而对于乘子法而言,虽然有较好的收敛性,但是却失去了可分解性。那么有没有一种方法可以兼具两种特性呢?那就是本节要介绍的交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)。
交替方向乘子法
考虑如下形式的问题
min x , z f ( x ) + g ( z ) s u b j e c t t o A x + B z = c \begin{aligned} \min_{x,z}f(x)+g(z)\\ subject\ to\quad Ax+Bz=c\\ \end{aligned} x,zminf(x)+g(z)subject toAx+Bz=c
由乘子法可得
min x , z f ( x ) + g ( z ) + ρ 2 ∥ A x + B z − c ∥ 2 2 s u b j e c t t o A x + B z = c \begin{aligned} \min_{x,z}f(x)+g(z)+\frac{\rho}{2}\|Ax+Bz-c\|^2_2\\ subject\ to\quad Ax+Bz=c\\ \end{aligned} x,zminf(x)+g(z)+2ρ∥Ax+Bz−c∥22subject toAx+Bz=c
其中参数 ρ > 0 \rho >0 ρ>0。我们定义增广拉格朗日形式为
L ρ ( x , z , u ) = f ( x ) + g ( z ) + u T ( A x + B z − c ) + ρ 2 ∥ A x + B z − c ∥ 2 2 L_\rho(x,z,u)=f(x)+g(z)+u^T(Ax+Bz-c)+\frac{\rho}{2}\|Ax+Bz-c\|^2_2 Lρ(x,z,u)=f(x)+g(z)+uT(Ax+Bz−c)+2ρ∥Ax+Bz−c∥22
对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,ADMM重复迭代
x ( k ) = arg min x L ρ ( x , z ( k − 1 ) , u ( k − 1 ) ) x^{(k)}= \arg\min_x L_{\rho}(x,z^{(k-1)},u^{(k-1)}) x(k)=argxminLρ(x,z(k−1),u(k−1)) z ( k ) = arg min z L ρ ( x ( k ) , z , u ( k − 1 ) ) z^{(k)}= \arg\min_z L_{\rho}(x^{(k)},z,u^{(k-1)}) z(k)=argzminLρ(x(k),z,u(k−1)) u ( k ) = u ( k − 1 ) + ρ ( A x ( k ) + B z ( k ) − c ) u^{(k)}=u^{(k-1)}+\rho(Ax^{(k)}+Bz^{(k)}-c) u(k)=u(k−1)+ρ(Ax(k)+Bz(k)−c)
收敛性保证
在对 f f f和 g g g适当的假设下(不要求 A A A和 B B B是满秩的),ADMM迭代满足,对于任意 ρ > 0 \rho>0 ρ>0:
- 残差收敛(Residual convergence): r ( k ) = A x ( k ) + B z ( k ) − c → 0 r^{(k)}=Ax^{(k)}+Bz^{(k)}-c\to 0 r(k)=Ax(k)+Bz(k)−c→0;
- 目标收敛(Objective convergence): f ( x ( k ) ) + g ( z ( k ) ) → f ∗ + g ∗ f(x^{(k)})+g(z^{(k)})\to f^*+g^* f(x(k))+g(z(k))→f∗+g∗,其中 f ∗ + g ∗ f^*+g^* f∗+g∗是原问题的最优目标值;
- 对偶收敛(Dual convergence): u ( k ) → u ∗ u^{(k)}\to u^* u(k)→u∗,其中 u ∗ u^* u∗是对偶问题的解
收敛率一般是未知的。粗略来说,ADMM的收敛率与一阶方法相似或者更快一点。
缩放形式的ADMM
将对偶变量 u u u替换为一个缩放变量 w = u / ρ w=u/\rho w=u/ρ,原始ADMM步骤可以变为:
x ( k ) = arg min x f ( x ) + ρ 2 ∥ A x + B z ( k − 1 ) − c + w ( k − 1 ) ∥ 2 2 x^{(k)}= \arg\min_x f(x)+\frac{\rho}{2}\|Ax+Bz^{(k-1)}-c+w^{(k-1)}\|^2_2 x(k)=argxminf(x)+2ρ∥Ax+Bz(k−1)−c+w(k−1)∥22 z ( k ) = arg min z g ( z ) + ρ 2 ∥ A x ( k ) + B z − c + w ( k − 1 ) ∥ 2 2 z^{(k)}= \arg\min_zg(z)+\frac{\rho}{2}\|Ax^{(k)}+Bz-c+w^{(k-1)}\|^2_2 z(k)=argzming(z)+2ρ∥Ax(k)+Bz−c+w(k−1)∥22 w ( k ) = w ( k − 1 ) + A x ( k ) + B z ( k ) − c w^{(k)}=w^{(k-1)}+Ax^{(k)}+Bz^{(k)}-c w(k)=w(k−1)+Ax(k)+Bz(k)−c
在这种形式下,第 k k k次迭代的 w ( k ) w^{(k)} w(k)可以通过运行过程中积累的残差和计算出:
w ( k ) = w ( 0 ) + ∑ i = 1 k ( A x ( i ) + B z ( i ) − c ) w^{(k)}=w^{(0)}+\sum^k_{i=1}(Ax^{(i)}+Bz^{(i)}-c) w(k)=w(0)+i=1∑k(Ax(i)+Bz(i)−c)
ADMM与近端运算(proximal operators)的联系
回忆前面介绍过的近端投影法,近端算子定义为
p r o x h , t ( x ) = arg min z 1 2 t ∥ z − x ∥ 2 2 + h ( z ) prox_{h,t}(x)=\arg\min_z\frac{1}{2t}\|z-x\|^2_2+h(z) proxh,t(x)=argzmin2t1∥z−x∥22+h(z)
我们可以将ADMM表示为近端运算。考虑如下问题
min x f ( x + g ( x ) ) ⟺ min x , z f ( x ) + g ( z ) s u b j e c t t o x = z \min_xf(x+g(x)) \Longleftrightarrow \min_{x,z}f(x)+g(z)\quad subject\ to\quad x=z xminf(x+g(x))⟺x,zminf(x)+g(z)subject tox=z
ADMM的步骤可变为
x ( k ) = arg min x f ( x ) + ρ 2 ∥ x − z ( k − 1 ) + w ( k − 1 ) ∥ 2 2 = p r o x f , 1 / ρ ( z ( k − 1 ) − w ( k − 1 ) ) x^{(k)}=\arg\min_x f(x)+\frac{\rho}{2}\|x-z^{(k-1)}+w^{(k-1)}\|^2_2= prox_{f,1/\rho}(z^{(k-1)}-w^{(k-1)}) x(k)=argxminf(x)+2ρ∥x−z(k−1)+w(k−1)∥22=proxf,1/ρ(z(k−1)−w(k−1)) z ( k ) = arg min z g ( z ) + ρ 2 ∥ x ( k ) − z + w ( k − 1 ) ∥ 2 2 = p r o x g , 1 / ρ ( x ( k ) + w ( k − 1 ) ) z^{(k)}= \arg\min_z g(z)+\frac{\rho}{2}\|x^{(k)}-z+w^{(k-1)}\|^2_2=prox_{g,1/\rho}(x^{(k)}+w^{(k-1)}) z(k)=argzming(z)+2ρ∥x(k)−z+w(k−1)∥22=proxg,1/ρ(x(k)+w(k−1)) w ( k ) = w ( k − 1 ) + x ( k ) − z ( k ) w^{(k)}=w^{(k-1)}+x^{(k)}-z^{(k)} w(k)=w(k−1)+x(k)−z(k)
例子:lasso回归(lasso regression)
回忆lasso问题
min β 1 2 ∥ y − X β ∥ 2 2 + λ ∥ β ∥ 1 \min_{\beta}\frac{1}{2}\|y-X\beta\|^2_2+\lambda\|\beta\|_1 βmin21∥y−Xβ∥22+λ∥β∥1
我们可以将其重写为
min β , α 1 2 ∥ y − X β ∥ 2 2 + λ ∥ α ∥ 1 s u b j e c t t o β − α = 0 \min_{\beta,\alpha}\frac{1}{2}\|y-X\beta\|^2_2+\lambda\|\alpha\|_1 \quad subject\ to\quad \beta-\alpha=0 β,αmin21∥y−Xβ∥22+λ∥α∥1subject toβ−α=0
ADMM可以给出简单的算法:
β ( k ) = ( X T X + ρ I ) − 1 ( X T y + ρ ( α ( k − 1 ) − w ( k − 1 ) ) ) \beta^{(k)}=(X^TX+\rho I)^{-1}(X^Ty+\rho(\alpha^{(k-1)}-w^{(k-1)})) β(k)=(XTX+ρI)−1(XTy+ρ(α(k−1)−w(k−1))) α ( k ) = S λ / ρ ( β ( k ) + w ( k − 1 ) ) \alpha^{(k)}=S_{\lambda/\rho}(\beta^{(k)}+w^{(k-1)}) α(k)=Sλ/ρ(β(k)+w(k−1)) w ( k ) = w ( k − 1 ) + β ( k ) − α ( k ) w^{(k)}=w^{(k-1)}+\beta^{(k)}-\alpha^{(k)} w(k)=w(k−1)+β(k)−α(k)
可以注意到:
- 对任意 X X X,矩阵 X T X + ρ I X^TX+\rho I XTX+ρI总是可逆的
- 如果我们能在 O ( p 3 ) O(p^3) O(p3)的开销内计算因式分解,那么每次 β \beta β更新都花费 O ( p 2 ) O(p^2) O(p2)的开销
- α \alpha α更新通过软阈值算子 S t S_t St
- ADMM的步骤几乎就是在岭回归(ridge regression)的基础上迭代计算软阈值
下图展示了不同方法在计算lasso回归问题上的比较。ADMM与近端梯度法(PG)有着相似收敛速度,加速的近端梯度法(APG)会收敛更快一点并伴随着波动。坐标下降法(CD)由于使用了更多关于问题的信息因而会比其他方法快很多,但其缺点是并不总是适用的。
ADMM的实际应用
在实际应用中,ADMM通常可以在少量的迭代后就可以达到一个相对准确的解,但是如果想要得到一个高精度的解往往需要大量的迭代。
ρ \rho ρ的选择会极大地影响ADMM在实际中的收敛。
- ρ \rho ρ太大 → \to →收敛快但难以保证精度
- ρ \rho ρ太小 → \to →运行速度慢,迭代次数多
Boyed等人提出了可以一种自适应变化 ρ \rho ρ的策略,即在每次迭代中通过检查原问题残差和对偶残差来判断离目标值的距离,从而调整 ρ \rho ρ。虽然方法是有效的,但其并不能保证收敛。
正如生成对偶问题一样,将一个问题转换为ADMM可处理的形式往往不是唯一的。
例子:稀疏与低秩分解
给定 M ∈ R m × n M\in \mathcal{R}^{m\times n} M∈Rm×n,考虑稀疏和低秩分解(sparse plus low rank decomposition)问题:
min L , S ∥ L ∥ t r + λ ∥ S ∥ 1 s u b j e c t t o L + S = M \begin{aligned} \min_{L,S} \|L\|_{tr}+\lambda \|S\|_1\\ subject\ to\quad L+S=M\\ \end{aligned} L,Smin∥L∥tr+λ∥S∥1subject toL+S=M
ADMM步骤为:
L ( k ) = S 1 / ρ t r ( M − S ( k − 1 ) + W ( k − 1 ) ) L^{(k)}=S^{tr}_{1/\rho}(M-S^{(k-1)}+W^{(k-1)}) L(k)=S1/ρtr(M−S(k−1)+W(k−1)) S ( k ) = S λ / ρ l 1 ( M − L ( k ) + W ( k − 1 ) ) S^{(k)}=S^{l_1}_{\lambda/\rho}(M-L^{(k)}+W^{(k-1)}) S(k)=Sλ/ρl1(M−L(k)+W(k−1)) W ( k ) = W ( k − 1 ) + M − L ( k ) − S ( k ) W^{(k)}=W^{(k-1)}+M-L^{(k)}-S^{(k)} W(k)=W(k−1)+M−L(k)−S(k)
其中 S 1 / ρ t r S^{tr}_{1/\rho} S1/ρtr表示矩阵软阈值算子, S 1 / ρ l 1 S^{l_1}_{1/\rho} S1/ρl1表示元素软阈值算子。
下图展示了稀疏与低秩分解在监控视频中的应用。对于一个监控摄像头的许多视频帧,我们可以将每一帧分解为低秩部分(low-rank part),其代表着所有帧之间共有的部分(如静止的背景),和稀疏部分(sparse part),其代表着当前帧的特性(如运动的目标)。
更多推荐
交替方向乘子法(Alternating Direction Method of Multipliers)
发布评论