交替方向乘子法(Alternating Direction Multiplier Method,ADMM)

交替方向乘子法(Alternating Direction Multiplier Method,ADMM)是一种求解具有可分结构的凸优化问题的重要方法,其最早由Gabay和Mercier于1967年提出。ADMM是结合对偶上升法的可分离特性以及ALM松弛收敛条件,所形成的一种改进方法,该算法在大规模数据分析处理领域因处理速度快,收敛性能好而备受关注[1]。

一、对偶上升法(Dual Ascent Algorithm)

  对偶上升法是通过对偶变量的更新获得原问题最优解的一种方法。考虑具有等式约束的优化问题:

\begin{equation}\label{E1}
\begin{array}{ll}{\underset{x}{\operatorname{min}}} & {
f(x)
}, \\ {\text { s.t. }} & {Ax=b},\end{array}
\end{equation}

其中$x\in \mathbb{R}^{n}$,$A\in\mathbb{R}^{m\times n}$,$f:\mathbb{R}^{n} \to \mathbb{R}$为凸函数。

  引入对偶变量(或拉格朗日乘子)$y \in \mathbb{R}^{m}$,,通过定义拉格朗日函数$L(x,y)$,可以将含约束的优化问题\eqref{E1}转化为无约束优化问题。$L(x,y)$定义为:

\begin{equation}\label{E2} L(x,y)=f(x)+y^{\mathrm{T}}(Ax-b)\end{equation}

  定义拉格朗日对偶函数$g(y)$为关于原变量$x$取得的最小值:$g(y)={\text{inf}_{x}} \ L(x,y)$。则问题\eqref{E1}的对偶问题为:$maximize \ g(y)$。原问题与对偶问题最优值相等时称该问题具有强对偶性。根据强对偶性得到:原问题的最小化等价于对偶问题的最大化;原问题在最优解$x^{*}$下的值$f(x^{*})$和对偶问题在最优解$y^{*}$下的值$g(y^{*})$是相同的。因此可以根据所获得对偶问题的最优解$y^{*}$来获得原问题的最优解$x^{*}$,即存在关系式:

\begin{equation}\label{E3}
x^{*}= \text{arg min} \ L(x,y^{*})
\end{equation}

  \eqref{E3}式表明:对偶变量$y$逼近最优解$y^{*}$时,原变量$x$也在逼近最优解$x^*$。当$g(y)$可微分时,可以通过利用梯度上升法获得对偶变量$y$的更新公式:$y^{k+1}=y^{k}+\alpha^{k}(Ax^{k+1}-b)$,其中$\alpha^{k}>0$为迭代步长,使$y$沿着$g(y)$值增大速度最快的方向移动,从而保证$g(y^{k+1})>g({y^{k}})$,这也是该方法被称作对偶上升法的原因。因此,采用对偶上升法求解原问题\eqref{E1}最优解的迭代公式为:

\begin{equation}\label{E4}
x^{k+1}=argmin_{x} \ L(x,y^{k}),\\  y^{k+1}=y^{k}+\alpha^{k}(Ax^{k+1}-b),
\end{equation}

  对偶上升法的迭代过程分为两部分:第一步,固定对偶变量$y^{k}$,最小化拉格朗日函数$L(x,  y^{k})$,求得更新后的$x^{k+1}$;第二步,固定$x^{k+1}$,采用梯度上升法,最大化拉格朗日对偶函数$g(y)$来获得对偶变量$y$的更新$y^{k+1}$。原问题\eqref{E1}通过与其对偶问题的交替迭代,同时达到最优。

  对偶上升升法可以应用于$f(x)$可分离的情况,即:$f(x)=\sum_{i=1}^{n}f_{i}(x_{i})$,其中$x=(x_1,\ldots,x_n)$,$x_i \in \mathbb{R}^{n}$,$A=[A_1, \ldots, A_n]$, $Ax=\sum_{i=1}^{n}A_{i}x_i$ 此时所对应的拉格朗日函数$L(x,y)$为:

\begin{equation}\label{E5} L(x,y)=\sum_{i=1}^{n} \ L_{i}(x_{i}, y)= \ \sum_{i=1}^{n}(f(x_i)+y^{\mathrm{T}}(A_i x_i)-(y^{\mathrm{T}}b)/n)\end{equation}

  由式\eqref{E4}可以看出,拉格朗日方程对变量来说也是可分离的,则对于求解可分离的目标函数的对偶上升法的迭代公式变为:

\begin{equation}\label{E6}
x^{k+1}_{i}=argmin_{x_i} \ L(x_i,y^{k}),\\  y^{k+1}=y^{k}+\alpha^{k}(Ax^{k+1}-b),
\end{equation}

  对偶上升法的优点是:当目标函数$f(x)$可分离时,变量$x$可以分块进行更新,从而减小了问题的复杂程度。然而,对偶上升法也存在缺点,该方法适用条件非常苛刻,要求原问题函数$f(x)$必须是严格凸且有界的,因此限制了对偶上升法的应用范围。针对对偶上升法对目标函数$f(x)$要求比较苛刻的缺点,扩展拉格朗日法松弛了收敛条件,使得目标函数即可以是非严格凸的,也可以是非有界的。

二、扩展拉格朗日乘子法

  扩展拉格朗日函数是通过在问题\eqref{E1}中的拉格朗日函数中加入一个惩罚项得到:

\begin{equation}\label{E7} L_{\lambda}(x,y)=f(x)+y^{\mathrm{T}}(Ax-b) +\lambda/2\|Ax-b\|_{2}^{2}\end{equation}

其中,$\lambda$为惩罚参数,$\lambda>0$,$\|\cdot\|_{2}$为$l_2$范数。

  同样扩展拉格朗日函数\eqref{E7}的对偶函数$g(y)$为:$g(y)={\text{inf}_{x}} \ L_{\lambda}(x,y)$。将对偶上升法应用到扩展拉格朗日函数\eqref{E7}的最优求解上,可以通过交替更新原变量$x$和对偶变量$y$来获得其最优解,并可得扩展拉格朗日法的迭代公式为:

\begin{equation}\label{E8}
x^{k+1}_{i}=argmin_{x_i} \ L(x_i,y^{k}),\\  y^{k+1}=y^{k}+\lambda^{k}(Ax^{k+1}-b),
\end{equation}

  扩展拉格朗日法和对偶上升法一个区别是,扩展拉格朗日法用惩罚参数$\lambda$代替了对偶上升法中的步长$\alpha^k$;另一个区别是,扩展拉格朗日法基于扩展拉格朗日函数,该函数是在拉格朗日函数后增加了惩罚项$\lambda/2\|Ax-b\|_{2}^{2}$得到的。惩罚项的加入好处是松弛了收敛条件,即:使$f(x)$在非严格凸或者非有界条件下该算法仍然成立。扩展拉格朗日法的缺点是,加入的惩罚项$\lambda/2\|Ax-b\|_{2}^{2}$对$x$而言是不可分离的,不能用于解决目标函数$f(x)$可分离的情况。

三、交替方向乘子法

  交替方向乘子法(ADMM)算法整合了对偶上升法可分离性和扩展拉格朗日法松弛的收敛特性,可用于解决具有两个目标函数的凸优化问题:

\begin{equation}\label{E9}
\begin{array}{ll}{\underset{x}{\operatorname{min}}} & {
f(x)+g(z)
}, \\ {\text { s.t. }} & {Ax+Bz=c},\end{array}
\end{equation}

其中,$x \in \mathbb{R}^{n}$,为目标函数$f(x)$的自变量;$z \in \mathbb{R}^{m}$,为目标函数$g(z)$的自变量;$A \in \mathbb{R}^{p \times n} $,$B \in \mathbb{R}^{p \times m} $,$c \in \mathbb{R}^{p}$,$f$和$g$为凸函数。

  增广拉格朗日函数为:

\begin{equation}\label{E10}
L_{\lambda}(x,z,y)=f(x)+g(z)+y^{\mathrm{T}}(Ax+Bz-c) +\lambda/2\|Ax+Bz-c\|_{2}^{2}
\end{equation}

其中,$y$称为拉格朗日乘子,$y \in \mathbb{R}^{p}$,$\lambda>0$为惩罚参数。同时,我们可以进行简化变形,将一次项$y^{\mathrm{T}}(Ax+Bz-c)$与二次项$\lambda/2\|Ax+Bz-c\|_{2}^{2}$合并,具体的,令$u=y/ \lambda$,可以扩展拉格朗日函数被化简为:

\begin{equation}\label{E11}
L_{\lambda}(x,z,y)=f(x)+g(z)+\lambda/2\|Ax+Bz-c+u\|_{2}^{2}
\end{equation}

此时求解问题\eqref{E9}的优化问题,变为最小化\eqref{E11}的问题。ADMM的思想就是利用两个目标函数$f(x)$和$g(z)$,通过分别对其变量$x$和$z$的交替更新,得到问题\eqref{E9}的最优解,迭代公式为:

\begin{equation}\label{E12}
\left\{\begin{aligned} x_{k}=& \arg \min _{x\in \mathcal{X}}\left\{f_{k-1}^{\mathrm{T}} x+\frac{\alpha}{2}\left\|A x+B z_{k-1}-c-u_{k-1} \right\|_{2}^{2}\right.\}, \\ z_{k}=& \arg \min _{z\in\mathcal{Z}}\left\{g(z)+\frac{\alpha}{2}\left\|A x_{k}+B z-c-u_{k-1} \right\|_{2}^{2}\right\}, \\ u_{k}=& u_{k-1}-\left(A x_{k}+B z_{k}-c\right), \end{aligned}\right.
\end{equation}

  值得注意的是:ADMM只是一种求解优化问题的计算框架,将大的全局问题分解为多个较小、较容易求解的子问题,并通过协调子问题的解而得到全局问题的解。每一个子问题(12a)和(12b)如何有效求解,需要根据和具体形式来确定。

四、在线临近梯度-交替方向乘子法

  离线和在线的区别就在于ADMM框架中是否存在 一个临近项,即对于当前要估计状态和上一时刻估计状态的约束项。这种约束项在卡尔曼滤波等在线估计器中是常见的。

The optimization problem of separable objective functions with linear constraints is of the form:

\begin{equation}\label{E13}
\begin{array}{ll}
\underset{ x\in \mathcal{X}, z\in\mathcal{Z}}{\text{minimize}} &f(x)+g(z) \\ \text {s.t.} & A x+B z=c,
\end{array}
\end{equation}

where $x \in \mathbb{R}^{n}$ and $z \in \mathbb{R}^{m}$ are the decision variables; $A \in \mathbb{R}^{p \times n}, B \in \mathbb{R}^{p \times m}, c \in \mathbb{R}^{p}$; $f$ and $g$ are convex closed and proper functions; $\mathcal{X}$ and $\mathcal{Z}$ are closed convex sets.

For the purpose of online estimation, we leverage the computational framework OPG-ADMM for solving problem \eqref{E13} that was proposed in [2]. The algorithm comprises two steps: 1) using the augmented Lagrangian for \eqref{E13}:

\begin{equation}\label{E14}
\mathrm{L}(x, z, \lambda)=f(x)+g(z)+(\alpha / 2)\left\|A x+B z-c-\lambda / \alpha\right\|_{2}^{2},
\end{equation}

where $\lambda\in \mathbb{R}^{p}$ is the Lagrangian multiplier, $\alpha>0$ is the penalty parameter, and we have used completion of squares to obtain a compact form of the augmented Lagrangian), the original problem is split into two separate subproblems with respect to $f$ and $g$; 2) utilizing OPG method as the update rule for $f$-sub-problem (i.e., using subgradient to linearize $f$ and perform a proximal gradient update). 

At the $k$-th instant, OPG-ADMM solves two separate sub-problems over $x$ and $z$, respectively, then updates the Lagrange multiplier $\lambda$. The iterates are given by:

\begin{equation}\label{E15}
\left\{\begin{aligned} x_{k}=& \arg \min _{x\in \mathcal{X}}\left\{f_{k-1}^{\mathrm{T}} x+\frac{\alpha}{2}\left\|A x+B z_{k-1}-c-\lambda_{k-1} / \alpha\right\|_{2}^{2}\right.\\ &\left.\quad \quad \quad+\left(1 / 2 \eta_{k}\right)\left\|x-x_{k-1}\right\|_{P_k}^{2}\right\}, \\ z_{k}=& \arg \min _{z\in\mathcal{Z}}\left\{g(z)+\frac{\alpha}{2}\left\|A x_{k}+B z-c-\lambda_{k-1} / \alpha\right\|_{2}^{2}\right\}, \\ \lambda_{k}=& \lambda_{k-1}-\alpha\left(A x_{k}+B z_{k}-c\right), \end{aligned}\right.
\end{equation}

where $f_{k-1} \in \partial f\left.(x)\right|_{x=x_{k-1}}$ is a subgradient of $f(x)$ at $x_{k-1}$; $\eta_{k}>0$ is the proximal gradient step size; $\|\cdot\|_{P}^{2}$ is defined via $\|x\|_{P}^{2}:=x^{\mathrm{T}} P x$, where $P$ is a positive definite matrix.

 

Reference:

[1]:Zhang Jiao-jiao等. "进一步改进的交替方向乘子法及其在量子态估计的应用." 第17届中国系统仿真技术及其应用学术年会论文集(17th CCSSTA 2016) 中国自动化学会;中国系统仿真学会, 2016.

[2] T. Suzuki, “Dual averaging and proximal gradient descent for online alternating direction multiplier method,” International Conference on Machine Learning, pp. 392–400, 2013

 

posted @ 2021-12-02 11:23  kkzhang  阅读(1316)  评论(0编辑  收藏  举报