论文笔记:分布式优化之EXTRA算法

论文笔记:分布式优化之EXTRA算法

这两天看了一下分布式优化算法,讲下15年的一篇文章:EXTRA算法,做个笔记。

一、问题描述

我们要求解的问题是:

\min_{x\in \mathbb{R}^p} \{f(x):=\sum_{i=1}^n f_i(x)\} \\ \tag{1}

这里的 f_i 代表某个代理商。分布式优化就是每个代理商自己算自己的,对每一个代理商,都有自己的 x_{(i)} . 在计算的时候,会跟邻近的代理商交流下自己算的结果。为什么要用分布式优化,参考这个回答

先做一下符号说明:

\mathbf{f(x)} = \sum_{i=1}^n f_i(x_{(i)}),~~ \mathbf{x} = \left(\begin{array}{c} x_{(1)}^T \\ x_{(2)}^T\\ \vdots \\ x_{(n)}^T \end{array} \right),~~\nabla \mathbf{f(x)} = \left(\begin{array}{c} \nabla^T f_1(x_{(1)})\\ \nabla^T f_2(x_{(2)})\\ \vdots \\ \nabla^T f_n(x_{(n)}) \end{array} \right)

注意区分 x\mathbf{x} , f\mathbf{f} .

二、 分布式梯度(DGD)及其不足

DGD的基本迭代过程为x_{(i)}^{k+1} = \sum_{j=1}^n w_{ij}x_{(j)}^k - \alpha_k \nabla f_i(x_{(i)}^k) \\ \tag{2} 这里的 x_{(i)}^{k} \in \mathbb{R}^p 为第 i 个代理商在第 k 步迭代算得的结果。 W = [w_{ij}]\in \mathbb{R}^{n \times n} 是混合矩阵,相当于图的邻接矩阵,所以通常是稀疏的。 它要满足 null(I-W) = span(\mathbf{1}) 以及 \sigma_{\max}(W - \frac{1}{n}\mathbf{1}\mathbf{1}^T)<1 。 其中对称性加第一个条件说明了 W\mathbf{1} = W^T\mathbf{1} = \mathbf{1}

通过上节的符号说明,我们可以将(2)写成

\mathbf{x}^{k+1} = W\mathbf{x}^k - \alpha_k \nabla \mathbf{f}(\mathbf{x}^k) \\ \tag{3}

上面这个是分布式梯度的基本迭代,其中步长有两种选择,分别是固定步长,以及逐渐趋于零的步长。对于固定步长 \alpha_k = \alpha ,该算法只能是非精确收敛,非精确收敛的意思是对于每个代理商,他计算的解 x^*_{(i)} 在问题(1)最优解的一个邻域内,这个邻域跟 \alpha 有关,并且不同代理商得到的 x^*_{(i)} 是不同的,但都在这个邻域内。

让我们来分析下固定步长只能是非精确收敛。假设 \{\mathbf{x}^k\} 收敛,并且 \mathbf{x^*} = \lim_{k \rightarrow \infty} \mathbf{x}^k ,根据迭代(3),我们知道

\mathbf{x}^{*} = W\mathbf{x}^* - \alpha \nabla \mathbf{f}(\mathbf{x}^*) \\

假定每个代理商能收敛到同一个点 x^* ,那么 \mathbf{x}^* = \mathbf{1}x^{*T} ,再根据 W 的性质 W\mathbf{1} = \mathbf{1} , 得到

W\mathbf{x}^* = W\mathbf{1}x^{*T} = \mathbf{1}x^{*T} = \mathbf{x}^* \\

也就是 W\mathbf{x}^* = \mathbf{x}^* 。 由于 \alpha 是一个固定的数,所以有 \nabla \mathbf{f}(\mathbf{x}^*) = 0

根据 \mathbf{x}^* 的一致性,于是对于每个代理商,都有 \nabla f_i(x^*)=0 。这是不太可能的,因为这要求,对于每个代理商的最优解都是一样的,也就是 x^* 同时最小化了所有的代理商,所以我们不能这样要求。退一步说即便是这样的话,那么我们只需要求解其中一个代理商即可,就没必要这么麻烦了。

实际上我们最后希望得到的应该是 \sum_{i=1}^n\nabla f_i(x^*)=0

另外一种策略是 \alpha_k 慢慢趋于零,这能够实现精确收敛,但带来的问题就是收敛变慢了。


三、EXTRA算法

前面讲到了分布式梯度算法(3)在固定步长下,只能是非精确收敛,而步长趋于零又会导致收敛变慢。EXTRA就是解决这个问题,它实现了固定步长下的精确收敛。

首先给出一个对于分布式算法求解问题(1)的一个最优性和一致性的条件(充分非必要)。其中一致性是指每个代理商收敛到同一个点,而最优性是指这个点就是最优解。


Proposition 1. 假设 null(I-W) = span(\mathbf{1}) , 令

\mathbf{x}^* = \left(\begin{array}{c} x_{(1)}^{*T} \\ x_{(2)}^{*T}\\ \vdots \\ x_{(n)}^{*T} \end{array} \right) \\ 如果 \mathbf{x}^* 满足如下两个条件:

  1. \mathbf{x}^* = W\mathbf{x}^* (一致性)
  2. \mathbf{1}^T \nabla \mathbf{f}(\mathbf{x}^*) = 0 (最优性)

那么我们有结论: x^* = x_{(i)}^* 是优化问题(1)的一个解。

Proof. 根据条件1我们知道 \mathbf{x}^* \in null(I-W) = span(\mathbf{1}),所以存在一个 x^* 使得 \mathbf{x}^* = \mathbf{1}\cdot x^{*T} ,这证明了 x^* = x_{(i)}^* 对于任意 i . 再结合条件2, \mathbf{1}^T \nabla \mathbf{f}(\mathbf{x}^*) = \sum_{i=1}^n \nabla f_i(x_{(i)}^*) = \sum_{i=1}^n \nabla f_i(x^*)= 0 \\

而最后一个等式也就说明了 x^* 就是优化问题的一个解。证毕。


EXTRA的迭代过程为:

\begin{split} \mathbf{x}^{k+2} & = W\mathbf{x}^{k+1} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k+1}), \\ \mathbf{x}^{k+1} & = \tilde{W}\mathbf{x}^{k} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k}), \end{split} \\ \tag{4}

其中\tilde{W} = \frac{I+W}{2} \\

迭代(4)和原来的分布式梯度(3)非常相似,如果 \tilde{W} = W 那就等价了。接下来通过对(4)两式相减得到

\mathbf{x}^{k+2} - \mathbf{x}^{k+1} = W\mathbf{x}^{k+1} -\tilde{W}\mathbf{x}^{k} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k+1}) + \alpha \nabla \mathbf{f}(\mathbf{x}^{k}) \\ \tag{5}


最后我们分析下迭代式子(5)的收敛点满足proposition 1的条件,这说明了EXTRA能够收敛到精确解。

假定 \{\mathbf{x}^k\} 是收敛的,并且令 \mathbf{x}^* = \lim_{k\rightarrow \infty } \mathbf{x}^k

\mathbf{x}^{*} - \mathbf{x}^{*} = W\mathbf{x}^{*} -\tilde{W}\mathbf{x}^{*} - \alpha \nabla \mathbf{f}(\mathbf{x}^{*}) + \alpha \nabla \mathbf{f}(\mathbf{x}^{*}) \\

根据 \tilde{W} 定义有 I = 2\tilde{W} - W ,于是

W \mathbf{x}^* - \mathbf{x}^* = W\mathbf{x}^* - (2\tilde{W} - W)\mathbf{x}^* = 2(W - \tilde{W} )\mathbf{x}^* = 0 \\

所以第一个条件满足了。

如果再加个对于 W\tilde{W}的限制:\mathbf{1}^T(W - \tilde{W}) = 0 ,我们来证明条件2也是满足的。

由于EXTRA需要用到前两步迭代的信息,所以它的第一步迭代简化为

\mathbf{x}^1 = W\mathbf{x}^0 - \alpha \nabla \mathbf{f}(\mathbf{x}^0) \\

把所有的迭代写下来就是:

\mathbf{x}^{k+2} - \mathbf{x}^{k+1} = W\mathbf{x}^{k+1} -\tilde{W}\mathbf{x}^{k} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k+1}) + \alpha \nabla \mathbf{f}(\mathbf{x}^{k}) \\ \vdots \\ \mathbf{x}^{2} - \mathbf{x}^{1} = W\mathbf{x}^{1} -\tilde{W}\mathbf{x}^{0} - \alpha \nabla \mathbf{f}(\mathbf{x}^{1}) + \alpha \nabla \mathbf{f}(\mathbf{x}^{0}) \\ \mathbf{x}^1 = W\mathbf{x}^0 - \alpha \nabla \mathbf{f}(\mathbf{x}^0) \\

然后做累加得到:\mathbf{x}^{k+2} = W\mathbf{x}^{k+1} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k+1}) + \sum_{t=0}^k (W - \tilde{W})\mathbf{x}^t \\ \tag{6}

上式趋于无穷,得到

\mathbf{x}^{*} = W\mathbf{x}^{*} - \alpha \nabla \mathbf{f}(\mathbf{x}^{*}) + \sum_{t=0}^k (W - \tilde{W})\mathbf{x}^t \\

前面我们分析了第一个条件是满足的,所以有 \alpha \nabla \mathbf{f}(\mathbf{x}^{*}) = \sum_{t=0}^k (W - \tilde{W})\mathbf{x}^t \\

两边乘一个 \mathbf{1}^T得到了\mathbf{1}^T\nabla \mathbf{f}(\mathbf{x}^{*}) = 0 \\

这就是条件2。

四、EXTRA和DGD的联系

根据上一节中式(6),我们知道EXTRA可以表示成

\mathbf{x}^{k+2} = W\mathbf{x}^{k+1} - \alpha \nabla \mathbf{f}(\mathbf{x}^{k+1}) + \sum_{t=0}^k (W - \tilde{W})\mathbf{x}^t \\ \tag{7}

可以发现和DGD相比,EXTRA多了一个累加项,也叫做矫正项(correction)。这保证了即使步长不趋于零,也能够得到精确解。当然我们得加一个条件,就是:

\mathbf{1}^T(W - \tilde{W}) = 0 \\

前面得分析也用到了,其实这个条件很好理解,为什么是 \mathbf{1} ,因为我们希望得到 \mathbf{1}^T \nabla \mathbf{f}(\mathbf{x}^{k+1}) = 0


欢迎关注我的专栏

参考文献

Shi, Wei, Qing Ling, Gang Wu, and Wotao Yin. "Extra: An exact first-order algorithm for decentralized consensus optimization." SIAM Journal on Optimization 25, no. 2 (2015): 944-966.

编辑于 2020-05-12 09:31