ADMM (Alternating Direction Method of Multipliers)

Introduction

ADMM 适合解决 equality constrained convex programming problem,其问题的标准形式可以被表示为

其中 $x \in \mathbb{R}^n, z \in \mathbb{R}^m, A \in \mathbb{R}^{p\times n}, B \in \mathbb{R}^{p\times m}, c \in \mathbb{R}^p$

ADMM 的基本思想是将问题转化为 dual problem 来解决,由于 primal problem 是 equality constrained,所以 dual problem 就是 unconstrained optimization problem,dual problem 可以表示为

其中 $h(y) = \underset{x, z}{\min} L(x, z, y), \;\; L(x, z, y) = f(x) + g(z) + y^T (Ax + Bz - c)$,$L(x, z, y)$ 就是 lagrangian function,$h(y)$ 即 dual function

下面几节将详细介绍 ADMM 算法,首先介绍与 ADMM 密切相关的一些算法,包括 Dual Ascent, Method of Multipliers,然后介绍 ADMM,之后介绍 ADMM 的一个常见应用场景,最后给出其在 sparse logistic regression 中的应用

Dual Ascent

假设 primal problem 是

其中 $x \in \mathbb{R}^n, A \in \mathbb{R}^{m\times n}$,同时 $f: \mathbb{R}^n \rightarrow \mathbb{R}$ 是 convex function

将其转换为 dual problem,其对应的 Lagrangian 是

令 $g(y) = \underset{x}{\inf} L(x, y)$,则有

因此 dual problem 是

由于这是个 maximize 问题,所以可以用 gradient ascent 来解决,为此需要求得

如果 $x \in \partial f^*(-A^T y)$,则 $x \in \underset{u}{\arg\min} \; f(u) + y^T A u = \underset{u}{\arg\min} L(u, y)$, 由此可知 dual ascent 每步迭代可以分为如下两个部分

Dual Decomposition

如果 primal function $f(x)$ 是一个可拆分的函数,即

其中 $x = (x_1, \cdots, x_N), x_i \in \mathbb{R}^{n_i}, \sum_{i=1}^{N} n_i = n$,则 dual ascent 迭代的第一部分又可以进一步被分解为 N 个独立的子问题,具体做法如下

将 $A$ 相应地拆分成 $A = (A_1, \cdots, A_N), A_i \in \mathbb{R}^{m\times n_i}$,则有

这样 $\underset{x}{\arg\min} L(x, y^k)$ 就可以被拆分成 N 个独立的子问题,由此 dual ascent 的迭代就变为

第一部分可以由 N 个 process 同时执行,这样每步迭代就涉及一个 broadcast 和一个 gather 操作,在执行第二部分前先 gather 所有 N 个 process 的结果,然后更新 $y$,然后再将新的 $y$ broadcast 到 N 个 process

Method of Multipliers

Method of Multipliers 与 Dual Ascent 基本一样,不同的是在迭代的第一部分优化的是一个 augmented lagrangian function,即

它比标准的 lagrangian function 多了一项 $\frac{\rho}{2} \Vert Ax - b \Vert^2_2$,这么一个改动等价于在如下 primal problem 上应用 dual ascent

这个 primal problem 显然与 Dual Ascent 一节中给出的问题有相同的最优解,因为在最优解处 $x$ 满足 $Ax = b$,所以 $\frac{\rho}{2} \Vert Ax - b \Vert^2_2 = 0$,也就是说多出来的一项对最优解没有何影响,但它却给优化问题带来了更好的 convergence property

Method of Multipliers 的迭代包含如下两个部分


可以看到 Method of Multipliers 直接使用 $\rho$ 作为 step length,这么做的好处可以从 KKT condition 看出。假设 $(x^*, y^*)$ 为问题最优解,根据 KKT condition,$(x^*, y^*)$ 必须满足如下条件

对于 Method of Multipliers,$x^{k+1} = \underset{x}{\arg\min} L_{\rho}(x, y^{k})$ (因为我们假设 $f(x)$ differentiable,所以 $\in$ 变成了 $=$),也就是 $\nabla_x L_{\rho}(x^{k+1}, y^{k}) = 0$,展开有

所以可以看出,Method of Multipliers 每步迭代后 $(x^{k+1}, y^{k+1})$ 都满足上述 KKT condition 中的第一个,这就是使用 $\rho$ 作为 step length 带来的好处


注意 Method of Multipliers 虽然相对于 Dual Ascent 有更好的 convergence property,但它不一定能做 dual decomposition,因为即便 $f(x)$ 是可拆分的,$\frac{\rho}{2} \Vert Ax - b \Vert^2_2$ 很可能是不能拆分的,只有在某些特定的条件下比如 $A = I$ 的情况,它才是可拆分的

ADMM (Alternating Direction Method of Multipliers)

ADMM 在 Method of Multipliers 基础上做了点修改。考虑如下问题

其中 $x \in \mathbb{R}^n, z \in \mathbb{R}^m, A \in \mathbb{R}^{p\times n}, B \in \mathbb{R}^{p\times m}, c \in \mathbb{R}^p$

如果以 Method of Multipliers 来解决这个问题,则每步迭代是这样

其中 $L_{\rho}(x, z, y) = f(x) + g(z) + y^T (Ax + Bz - c) + \frac{\rho}{2} \Vert Ax + Bz - c \Vert^2_2$

ADMM 较 Method of Multipliers 不同的地方就是它将上述第一部分进一步拆分成两个部分来做,如下

这种一步拆成两步使得 $x^{k+1}, z^{k+1}$ 的计算在更多的时候可以被拆分成独立的 process 来解决,由于先算 $x$ 再算 $z$,所以有了 alternating direction 一说

Optimality Condition

根据 KKT condition,如果 $(x^*, z^*, y^*)$ 为问题最优解,则有


Stopping Criteria

根据上面对 Optimality Condition 的讨论可知,但 $s^k$ 和 $r^k$ 趋于 0 时,迭代达到最优解,因此可以如下条件作为 stopping criteria

Convergence Proof

证明做两个假设

具体证明过程参考 appendix of admm_distr_stats

Global Consensus Problem

考虑实践中经常遇到的如下优化形式

其中 $x \in \mathbb{R}^n, f: \mathbb{R}^n\rightarrow \mathbb{R}, g: \mathbb{R}^n \rightarrow \mathbb{R}$,$f$ 和 $g$ 都是 convex function,N 表示数据集样本或分片个数

这个问题可以转化为 equality constrained convex programming problem,如下

由于所有的 $x_i$ 都必须等于共同的一个变量 $z$,因此这个问题也被称为 global consensus problem


下面我们看看如何得到 global consensus problem 对应的 ADMM 迭代


综上所述,global consensus problem 对应的 ADMM 迭代可以表示为

其中第二步计算实际上应用了 $g$ 对应的 proximal operator,可以表示为

Sparse Logistic Regression

下面我们看看 ADMM 在 Sparse Logistic Regression (下面简称 SLR) 优化中的应用,SLR 的 loss function 可以表示为

其中 $m$ 表示训练样本个数,$b_i \in \{-1, 1\}$ 为样本类别,$a_i \in \mathbb{R}^n$ 为样本对应的 feature vector,$w \in \mathbb{R}^n$ 为 feature weight,$v \in \mathbb{R}$。将其转化为等式约束问题

其中 $l_i(w_i, v_i) = \sum_{j=1}^{m_i} \log(1 + \exp(-b_j(a_j^T w_i + v_i)))$,$\sum_{i=1}^{N} m_i = m$,$N$ 表示数据的 partition 数,$(w_i, v_i)$ 可以理解为每个 partition 对应的 local model,$l_i(w_i, v_i)$ 为每个 partition 对应的 loss

定义 $\mu_i \in \mathbb{R}^n, \eta_i \in \mathbb{R}$ 为 $w_i$ 和 $v_i$ 对应的 lagrange multiplier,则 LSR 对应的 ADMM 迭代可以表示为

其中第一部分可以用任意经典的优化算法解决,如 L-BFGS, gradient descent 等

训练流程可以用下面的流程图表示

首先数据被分成 N 份,然后分别独立训练得到 N 份 model,之后做 consensus 计算,包括迭代中的后面两部分

几个有用的概念和定理

A convex function is proper if its effective domain is nonempty and it never attains $-\infty$. Effective domain is defined by $\text{dom} f = \{ x \in X : f(x) < +\infty\}$ for function $f: X \rightarrow \mathbb{R} \cup \{\pm \infty\}$
A convex function is closed if its epigraph is a closed set
If $f$ is closed and convex, then $f^{**}(x) = f(x)$
If $f$ is closed and convex, then $$y \in \partial f(x) \Longleftrightarrow x \in \partial f^*(y) \Longleftrightarrow x^T y = f(x) + f^*(y)$$
$x \in \partial f^*(y) \Longleftrightarrow x \in \underset{u}{\arg\min} \; f(u) - y^T u$
The proximal operator of $\lambda \Vert x \Vert_1, \lambda > 0$ is $$ \text{prox}(x)_i = \left \{ \begin{array}{ll} x_i - \lambda & x_i > \lambda \\ 0 & x_i \in [-\lambda, \lambda] \\ x_i + \lambda & x_i < -\lambda \end{array} \right.$$ $\text{prox}(x)_i$ 表示 $x$ 每一维对应的 proximal operator