ADMM

ADMM(Alternating Direction Method of Multipliers,多项式交替方向乘子法)是一种用于求解凸优化问题的迭代算法。该算法是由Gabriel Peyré, Neal Parikh和Mathieu Chanaux等人在2010年左右提出的,是一种分布式算法,适用于大规模数据和分布式计算环境。

ADMM的目标是求解以下形式的凸优化问题:

\[\min_x f(x) + g(z) \]

\[s.t. \quad Ax + Bz = c \]

其中,\(x\)\(z\)是待求解的变量,\(f(x)\)\(g(z)\)是凸函数,\(A,B\)\(c\)是常数矩阵。

ADMM的基本思想是将原问题转化为一系列子问题,每个子问题都是容易求解的。具体地,ADMM将原问题拆分为以下三个子问题:

优化\(x\),固定\(z\)\(\lambda\)

\[\min_x f(x) + \frac{\rho}{2} \left| Ax + Bz - c + \lambda \right|_2^2 \]

其中,\(\lambda\)是拉格朗日乘子,\(\rho\)是一个正的惩罚参数。

优化\(z\),固定\(x\)\(\lambda\)

\[\min_z g(z) + \frac{\rho}{2} \left| Ax + Bz - c + \lambda \right|_2^2 \]

更新拉格朗日乘子\(\lambda\)

\[\lambda = \lambda + \rho (Ax + Bz - c) \]

其中,\(\rho\)是ADMM算法的一个参数,也称为步长。

以上三个子问题可以通过交替迭代的方式求解,具体地,ADMM的迭代过程如下:

初始化\(x^0,z^0,\lambda^0\)

重复执行以下步骤直至收敛:

通过固定\(z\)\(\lambda\),使用优化算法求解\(x\),更新\(x\)
通过固定\(x\)\(\lambda\),使用优化算法求解\(z\),更新\(z\)
更新拉格朗日乘子\(\lambda\)
其中,优化算法可以选择不同的方法,如梯度下降、牛顿法、共轭梯度等。

ADMM的优点在于可以将大规模优化问题分解为多个小规模子问题,并可以分布式地求解这些子问题。此外,ADMM的收敛性和收敛速度都得到了严格的证明,具有一定的理论保证。

posted @ 2023-03-13 10:41  penuel  阅读(317)  评论(0编辑  收藏  举报