交替方向乘子法(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

交替方向乘子法(Alternating Direction Multiplier Method,ADMM)的更多相关文章

  1. 交替方向乘子法(ADMM)

    交替方向乘子法(ADMM) 参考1 参考2 经典的ADMM算法适用于求解如下2-block的凸优化问题( 是最优值,令 表示一组最优解): Block指我们可以将决策域分块,分成两组变量, 这里面 都 ...

  2. 交替方向乘子法(ADMM)的原理和流程的白话总结

    交替方向乘子法(ADMM)的原理和流程的白话总结 2018年08月27日 14:26:42 qauchangqingwei 阅读数 19925更多 分类专栏: 图像处理   作者:大大大的v链接:ht ...

  3. 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

  4. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    [整理]   在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...

  5. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    参考文献:https://www.cnblogs.com/sddai/p/5728195.html 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush ...

  6. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  7. Machine Learning系列--深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  8. 【机器学习】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  9. 增广拉格朗日乘子法(Augmented Lagrange Method)

    转载自:增广拉格朗日乘子法(Augmented Lagrange Method) 增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t ...

随机推荐

  1. mmdetection训练出现nan

    训练出现nan 在使用MMDetection训练模型时,发现打印信息中出现了很多nan.现象是,loss在正常训练下降的过程中,突然变为nan. 梯度裁减 在模型配置中加上grad_clip: opt ...

  2. 斯坦福NLP课程 | 第2讲 - 词向量进阶

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  3. 虚拟机(Vmvare)与配置,得到一台学习机

    准备: 1.Vmvare 2.CentOS7.4镜像 安装与配置操作系统: 1.配置虚拟机上网 2.配置静态ip地址 开始安装 1. 2.直接下一步选择我们准备好的镜像,然后下一步 3.修改虚拟机的名 ...

  4. Spring 源码(9)Spring Bean的创建过程的前期准备

    回顾总结 到目前为止,Spring源码中AbstractApplicationContext#refresh方法的已经解读到第11个方法finishBeanFactoryInitialization, ...

  5. 手脱无名壳tslgame_rl

    1.使用Detect It Easy查壳,该壳未显示出壳信息,至于为何有壳,我们使用IDA打开,查看其的导入表,其中没有太多函数使用: 2.我们使用x32dbg打开,运行至入口点,此处没有pushad ...

  6. Java学习笔记-基础语法ⅩⅠ-UDP、TCP

    网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...

  7. Linux下使用ssh测试端口是否开启

    当服务器上不允许使用telnet时,可以使用ssh测试远程服务器端口是否开启 具体命令如下 -v 显示连接debug信息 -p port 指定端口 ssh -v -p 80 root@192.168. ...

  8. 一些GIT操作的技巧

    一.git stash 我们有时会遇到这样的情况,正在分支a上开发一半,然后分支b上发现Bug,需要马上处理.这时候分支a上的修改怎么办呢,git add 是不行的,有的git客户端版本会提示还有ad ...

  9. 好客租房20-react组件介绍

    1react组件介绍 组件是react中的一等公民 组件表示页面中的部分功能 组合多个组件实现完整的页面功能 特点 可复用性 独立 可组合

  10. 149_1秒获取Power BI Pro帐号

    一.背景 当你来到这篇文章的时候,我想你已经在网上搜索了一圈了.网上有一大把教你如何注册Power BI帐号的方法,我们这里就不在赘述了.因为各种因素的限制确实比较麻烦.我们直接提供Power BI ...