ADMM 算法原理简介
主要介绍 ADMM (Alternating Direction Method of Multipliers) 算法。
材料来源:
1. ADMM 基本形式
ADMM 用于求解如下最优化问题:
其中,\(\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 算法首先对目标函数进行增广,将原始优化问题转化为:
其中,\(\rho\) 为某参数。
进一步,上述问题的拉格朗日函数式子为:
其中,\(\boldsymbol{\lambda} \in \mathbb{R}^{k}\) 为拉格朗日乘子(向量)。
接下来,通过如下更新步骤进行迭代(第 \(k\) 步更新)直至收敛:
-
更新 \(\boldsymbol{x}\) : \(\boldsymbol{x}^{(k)} = \arg \min_{\boldsymbol{x}} L_{\rho}(\boldsymbol{x}, \boldsymbol{z}^{(k-1)}, \boldsymbol{\lambda}^{(k-1)})\)
-
更新 \(\boldsymbol{z}\) : \(\boldsymbol{z}^{(k)} = \arg \min_{\boldsymbol{z}} L_{\rho}(\boldsymbol{x}^{(k)}, \boldsymbol{z}, \boldsymbol{\lambda}^{(k-1)})\)
-
更新 \(\boldsymbol{\lambda}\) : \(\boldsymbol{\lambda}^{(k)} = \boldsymbol{\lambda}^{(k-1)} + \rho (\boldsymbol{Ax}^{(k)} + \boldsymbol{Bz}^{(k)} - \boldsymbol{c})\)
上述推导过程及更新步骤都非常清晰。但是,跟最初的优化问题什么关系、如何对应、以及思路,仍然不清楚。下面将继续展开介绍。