D-PSGD

可能更好的阅读体验 Jeefy's Blog: D-PSGD

这篇文章在对比 C-PSGD 和 D-PSGD 有什么区别。文章采用的是静态的环链路。计算复杂度相同,但是通讯复杂度,C-PSGD 是 \(O(n)\),而 D-PSGD 是与图结构相关的复杂度。

贡献:

  1. 发现当 \(n\) 足够大时,由于没有中心资源调度的问题,所以速度会比 C-PSGD 快,而且是线性倍数。
  2. 当边缘不稳定(宽带带宽非常小或者延迟非常高),那么 D-PSGD 会快很多。

\(K\) 表示迭代次数, \(n\) 表示节点数,考虑收敛率:

  • SGD 对于凸问题 \(O(\frac 1 {\sqrt K})\),强凸问题 \(O(1/ K)\)
  • C-PSGD 有 \(O(1/ \sqrt{Kn})\)
  • D-PSGD 一致,但是计算复杂度是凸问题 \(O(n / \epsilon^2)\) ,强凸问题是 \(O(n / \epsilon)\)。提出的算,使得通信和计算可以并行执行,也就是说,可以让通信的时间被覆盖,使得计算速度优于 C-PSGD。

算法步骤(对于每一个节点设备来说):

  1. 初始化
  2. 随机采样若干本地数据
  3. 计算本地的随机梯度和下降参数 \(\nabla\)
  4. 计算相邻设备的参数平均 \(x_{k + \frac 1 2, i}\)
  5. 计算新一轮的参数:\(x_{k + 1, i} = x_{k + \frac 1 2, i} - \gamma \nabla\)
  6. 迭代足够的次数(回到 2)
  7. 最终输出 \(x_{k, i}\) 的平均。

如果说让全局参数聚合到一个矩阵表示,那么每一轮算法其实就是在:

\[X_{k + 1} = X_k W - \gamma \partial F(X_k ; \xi_k) \]

我们说,这个算法给出了一个 \(\epsilon\) 近似解,如果:

\[K^{-1} \left( \sum_{k = 0}^{K - 1} {\mathbb E} \left \| \nabla f\left(\frac {X_k {\bf 1}_n}{n}\right) \right\|^2 \right) \le \epsilon \]

其中 \(f(x) = {\mathbb E}_{\xi \sim D} F(x ; \xi)\),也就是在数据集上的平均损失。

如何证明收敛?

根据神秘言论:D-PSGD 收敛性证明的核心逻辑是“共识误差与优化进展解耦”:将去中心化迭代拆解为虚拟中心化 SGD 动力学与节点分歧误差,利用图拉普拉斯谱间隙控制共识收缩,再将分歧误差作为扰动项注入光滑下降不等式,最终通过 telescoping 求和导出非凸优化下的 \(O(1/ \sqrt{K})\) 速率。
看不懂思密达

关键假设:

假设 数学表述 作用
\(L\)-Smoothness \(|\nabla f(x)-\nabla f(y)| \le L|x-y|\) 保证二次上界与下降步长可控
有界方差 \(\mathbb{E}[|g_{i,k}-\nabla f_i(x_{i,k})|^2] \le \sigma^2\) 控制随机噪声累积
双随机图网络 \(W\mathbf{1}=\mathbf{1}, \mathbf{1}^\top W=\mathbf{1}^\top\) 保证平均序列 \(\bar{x}_k\) 无偏漂移

具体证明过程暂略,有点复杂(论文 11 页????????????。

结论是,D-PSGD 的收敛速率是 \(O(\frac 1 K + \frac 1 {\sqrt{nK}})\),当 \(K\) 足够大时,以后者为主导,这说明,如果需要达到一个 \(\epsilon\) 近似解,需要 \(O(\frac 1 {\epsilon^2})\) 的计算复杂度。

对于图网络,作者设为了:

\[W = \begin{pmatrix} 1 /3 & 1/3 & & & & 1/3 \\ 1/3 & 1/3 & 1/3 & & & \\ & 1/3 & 1/3 & \ddots & & \\ & & \ddots & \ddots & 1/3 & \\ & & & 1/3 & 1/3 & 1/3 \\ 1/3 & & & & 1/3 & 1/3 \end{pmatrix} \]

posted @ 2026-04-15 17:17  jeefy  阅读(19)  评论(0)    收藏  举报