ADMM 算法原理简介

主要介绍 ADMM (Alternating Direction Method of Multipliers) 算法。

材料来源:

ADMM算法原理详解,Rookiee


1. ADMM 基本形式

ADMM 用于求解如下最优化问题:

\[\begin{aligned} &\underset{\boldsymbol{x}, \boldsymbol{z}}{\min} f(\boldsymbol{x}) + g(\boldsymbol{z}) \\ &s.t. \ \boldsymbol{Ax} + \boldsymbol{Bz} = \boldsymbol{c} \end{aligned}\]

其中,\(\boldsymbol{x} \in \mathbb{R}^{p}\), \(\boldsymbol{z} \in \mathbb{R}^{q}\), \(\boldsymbol{A} \in \mathbb{R}^{m \times p}\), \(\boldsymbol{B} \in \mathbb{R}^{m \times q}\), \(\boldsymbol{c} \in \mathbb{R}^{k}\), \(f: \mathbb{R}^{p} \rightarrow \mathbb{R}\), \(g: \mathbb{R}^{q} \rightarrow \mathbb{R}\)

简单来讲,这一优化问题的目标函数包含两组可分离自变量( \(\boldsymbol{x}\)\(\boldsymbol{z}\) ),且存在线性等式约束。对于这一优化问题,ADMM 算法首先对目标函数进行增广,将原始优化问题转化为:

\[\begin{aligned} &\underset{\boldsymbol{x}, \boldsymbol{z}}{\min} Q_{\rho}(\boldsymbol{x}, \boldsymbol{z}) = f(\boldsymbol{x}) + g(\boldsymbol{z}) + \frac{\rho}{2}||\boldsymbol{Ax} + \boldsymbol{Bz} - \boldsymbol{c}||^{2}_{2} \\ &s.t. \ \boldsymbol{Ax} + \boldsymbol{Bz} = \boldsymbol{c} \end{aligned}\]

其中,\(\rho\) 为某参数。

进一步,上述问题的拉格朗日函数式子为:

\[\begin{aligned} L_{\rho}(\boldsymbol{x}, \boldsymbol{z}, \boldsymbol{\lambda}) &= Q_{\rho}(\boldsymbol{x}, \boldsymbol{z}) + \boldsymbol{\lambda}^{T} (\boldsymbol{Ax} + \boldsymbol{Bz} - \boldsymbol{c}) \\ &= f(\boldsymbol{x}) + g(\boldsymbol{z}) + \frac{\rho}{2}||\boldsymbol{Ax} + \boldsymbol{Bz} - \boldsymbol{c}||^{2}_{2} + \boldsymbol{\lambda}^{T} (\boldsymbol{Ax} + \boldsymbol{Bz} - \boldsymbol{c}) \end{aligned}\]

其中,\(\boldsymbol{\lambda} \in \mathbb{R}^{k}\) 为拉格朗日乘子(向量)。

接下来,通过如下更新步骤进行迭代(第 \(k\) 步更新)直至收敛:

  1. 更新 \(\boldsymbol{x}\)\(\boldsymbol{x}^{(k)} = \arg \min_{\boldsymbol{x}} L_{\rho}(\boldsymbol{x}, \boldsymbol{z}^{(k-1)}, \boldsymbol{\lambda}^{(k-1)})\)

  2. 更新 \(\boldsymbol{z}\)\(\boldsymbol{z}^{(k)} = \arg \min_{\boldsymbol{z}} L_{\rho}(\boldsymbol{x}^{(k)}, \boldsymbol{z}, \boldsymbol{\lambda}^{(k-1)})\)

  3. 更新 \(\boldsymbol{\lambda}\)\(\boldsymbol{\lambda}^{(k)} = \boldsymbol{\lambda}^{(k-1)} + \rho (\boldsymbol{Ax}^{(k)} + \boldsymbol{Bz}^{(k)} - \boldsymbol{c})\)

上述推导过程及更新步骤都非常清晰。但是,跟最初的优化问题什么关系、如何对应、以及思路,仍然不清楚。下面将继续展开介绍。

2.

posted @ 2023-03-31 14:58  wghou09  阅读(548)  评论(0编辑  收藏  举报