ProxSkip: Yes! Local Gradient Steps Provably Leadto Communication Acceleration! Finally!

Abstract

我们引入了proxskip——一种令人惊讶的简单且可证明有效的方法,用于最小化光滑函数(f)和昂贵的非光滑近似函数(ψ)的和。解决这类问题的标准方法是通过近端梯度下降(ProxGD)算法,该算法基于每次迭代中f的梯度和ψ的prox算子的评估。在这项工作中,我们特别感兴趣的是,相对于梯度的评估,对prox的评估是昂贵的,这是在许多应用中的情况。ProxSkip允许在大多数迭代中跳过昂贵的prox操作符:虽然它的迭代复杂度是O(κ log 1/ε),其中κ是f的条件数,但prox计算的数量仅为O(√κ log 1/ε)。我们的主要动机来自联邦学习,其中梯度运算符的求值对应于在所有设备上独立执行本地GD步骤,而prox的求值对应于梯度平均形式的(昂贵的)通信。在这种情况下,ProxSkip有效地加快了通信的复杂性。与其他局部梯度类型方法(如FedAvg、SCAFFOLD、S-Local-GD和FedLin)不同的是,在异构数据环境中,这些方法的理论通信复杂性比vanilla GD更差,或至多与之匹配,我们在没有任何异构边界假设的情况下获得了可证明的巨大改进。

1. Introductio

我们研究这种形式的优化问题

这样的问题无处不在,出现在与科学和工程几乎所有领域相关的许多应用中,包括信号处理(Combettes & Pesquet, 2009),图像处理(Luke, 2020),数据科学(Parikh & Boyd, 2014)和机器学习(ShalevShwartz & Ben-David, 2014)。

1.1. Proximal gradient descent

解决(1)最规范的方法之一,通常被用作进一步扩展和改进的基础,是近端梯度下降(ProxGD),也被称为前后向算法(Combettes & Pesquet, 2009;Nesterov, 2013)。该方法通过定义的迭代过程求解(1)

通常假设接近操作符(3)可以以封闭形式计算,这意味着定义ProxGD的迭代(2)可以精确地执行。ProxGD最适合于邻近算子的计算成本相对较低的情况,因此(2)的瓶颈在前一步(即梯度∇f的计算),而不是在后一步(即proxy γψ的计算)。这是许多正则子的情况,包括L1范数(ψ(x) = kxk1), L2范数(ψ(x) = kxk22)和弹性网(Zhou & hasttie, 2005)。对于更多的例子,我们建议读者参考书籍(帕里克和博伊德,2014;贝克,2017)。

1.2. Expensive proximity operators

然而,在这项工作中,我们感兴趣的情况下,接近算子的评估是昂贵的。也就是说,我们假设计算proxy γψ(后一步)相对于计算f的梯度(前一步)是昂贵的。

概念上简单而丰富的一类昂贵的接近算符来自正则子ψ:

将式(4)给出的ψ的接近算子的求值简化为C上的欧氏投影

这本身就是一个很难的优化问题。例如,当C是一个多面体或光谱集时,就会出现这种情况(Parikh & Boyd, 2014)

1.3. Distributed machine learning and consensus constraints

与指标函数(4)相关的昂贵接近算子的一个重要例子出现在分布式优化问题的共识表述中。特别地,考虑使用n个计算节点/客户端的集群最小化n个函数的平均值的问题,

其中函数fi: Rd→R及其描述数据归客户端i∈[n]:={1,2,…n}。这个问题在机器学习中至关重要,因为它是经验风险最小化的抽象(Shalev-Shwartz & Ben-David, 2014),这是目前训练有监督机器学习模型的主导范式。

编码共识约束:

计算(7)的接近算子在计算上并不昂贵,因为它仅仅相当于取变量的平均值(Parikh & Boyd, 2014):

然而,由于向量x1、…, xn存储在不同的计算节点上。事实上,即使是简单的平均也可能非常耗时,如果连接客户端的通信链接(例如,通过编排服务器)很慢,聚合向量/模型的维d很高,这就是联邦学习(FL)的情况(Koneˇcn´y等人,2016;凯鲁兹等人,2021)。

1.4. Federated learning

由于上述原因,实际的FL算法通常使用各种通信减少机制来实现有用的计算与通信比,例如延迟通信。也就是说,这些方法根据其局部目标独立地执行多个局部步骤(Mangasarian & Solodov, 1994;麦克唐纳等人,2010;Zhang et al, 2016;McMahan等人,2016;一首诗,2019;Lin等人,2018)。

然而,当所有本地函数fi都不同时(即,当每台机器都有来自不同分布的数据时),本地步骤会在每个客户机的更新中引入漂移,从而导致收敛问题。事实上,即使在最简单的局部梯度类型方法LocalGD的情况下,不需要任何数据相似性/同质性假设的理论理解也在很长一段时间内困扰着社区。直到最近才找到了解决方案(Khaled et al, 2019;2020;Koloskova等人,2020)。然而,在这些工作中获得的速率描绘了LocalGD的悲观图景;例如,由于客户端漂移,即使对于光滑和强凸问题,它们也是次线性的。

FL社区的下一个任务是提出算法调整,可以证明减轻客户漂移问题。最近的一些方法,包括Scaffold (Karimireddy等人,2020),S-Local-GD (Gorbunov等人,2021)和FedLin (Mitra等人,2021),都成功地做到了这一点。例如,在f为L-光滑、µ-强凸的假设下,条件号κ = L/µ,脚手架、S-Local-GD和FedLin得到一个O(κ log 1/ε)的通信复杂度,与通信匹配GD的复杂度(每轮通信在每个客户端上计算一个梯度)。然而,尽管这些方法在经验上优于常规GD,但其理论上的通信复杂性并没有随着GD而提高。这揭示了我们对本地方法理解的根本差距。

由于FL社区在过去几年里在这个方向上付出了巨大的努力,但没有取得预期的成果(kaairouz等人,2021年),从理论上证明执行独立的本地更新可以提高GD的通信复杂性似乎非常具有挑战性。相比之下,加速梯度下降(没有局部台阶)可以达到最优的O(√κ log 1/ε)通信复杂度(Lan, 2012;伍德沃斯等人,2020b;2021)。

这就提出了一个问题,这是否是局部方法的一个基本限制。对于简单的局部梯度类型方法,是否有可能证明比O(κ log 1/ε)更好的通信复杂度,而不诉诸任何显式的加速机制?

2. Contributions

2.1. ProxSkip: a general prox skipping algorithm

我们开发了一个新的类proxgd算法来解决一般正则问题(1)。我们的方法,我们称之为ProxSkip(参见算法1)被设计用来处理昂贵的近端操作符。

其设计中的一个关键成分是随机的代理跳过过程:在ProxSkip的每次迭代中,我们用概率p∈(0,1)来评估接近算子。如果p = 1,我们的方法中的几个步骤是空的,我们恢复ProxGD作为一个特殊情况(以及相关的标准理论)。当然,有趣的选择是0 < p < 1。在期望中,接近操作符每1/p次迭代计算一次,如果p很小,这可能是非常罕见的。

控制变量稳定prox跳过。我们不得不引入一些新的算法设计调整,以证明这种方法是有效的。特别是,在执行前一步时,ProxSkip在第3行上使用一个控制变量ht来移动梯度∇f(xt)。

注意,ht在两次连续的prox调用之间保持不变。实际上,这是因为在这种情况下,我们从第8行得到了xt+1 = xt+1,因此第10行简化为ht+1 = ht。因此,当在两次prox调用之间操作时,我们的方法执行表单的迭代

其中γ > 0是步长参数。当执行prox步骤时,迭代xt和控制变量ht都被调整,并重复该过程。

这种控制机制是允许代理跳转工作所必需的。为了说明这一点,考虑一个最优

理论。如果f是l -光滑且µ-强凸,我们证明ProxSkip以线性速度收敛。特别地,我们证明了在T次迭代之后,

2.2. Scaffnew: ProxSkip applied to federated learning

当应用于问题(5)的共识重新表述(6)-(7)时,ProxSkip可以被解释为一种执行局部步骤的新的分布式梯度类型方法,增加了现有丰富的局部方法文献。在这种情况下,我们决定将我们的方法命名为Scaffnew (Algorithm 2).2由于prox计算现在意味着通过在节点间求平均值来进行通信(参见(8)和(9)),并且由于Scaffnew继承了其父方法ProxSkip强大的理论上的prox跳过属性:

我们解决了FL文献中最重要的开放问题之一:打破O(κ log 1/ε)通信复杂度障碍用一个简单的局部方法。特别是,Scaffnew达到了O(√κ log 1/ε)通信复杂度,而不施加任何额外的假设(例如,数据相似性或更强的平滑假设)

请注意,由于scaffold new的迭代复杂度为O(κ log 1/ε),因此每个通信轮的本地步骤数为(平均)O(√κ)。根据Arjevani和Shamir(2015),一阶分布式算法的通信下界为O(√κ log 1/ε)。这意味着在交流回合方面,Scaffnew是最佳选择。请参阅表1,其中我们将我们的结果与现有最先进的方法所获得的结果进行了比较。

2.3. Extensions

我们开发了两个普通ProxSkip方法的扩展;参见第5节。我们并不是要穷尽无遗:这些扩展是为了说明我们的方法和证明技术与文献中经常使用的其他技巧和技术很好地结合在一起。

从确定性梯度到随机梯度。首先,在第5.1节中,我们执行了一个扩展,使我们能够在ProxSkip中使用随机梯度gt(xt)≈∇f(xt)而不是真正的梯度∇f(xt)。这在许多应用中都很重要,对我们的方法尤其重要,因为现在prox步骤的代价降低了,梯度步骤的代价变得更加重要。我们在Gower等人(2019;2021),其限制性小于标准有界方差假设。

从中央服务器到完全分散的培训。其次,在5.2节中,我们介绍并分析了在完全去中心化优化设置下的ProxSkip,其中节点之间的通信被限制在通信图中。我们的去中心化算法继承了不受数据异构性影响的特性。ProxSkip中的协变量技术在某种程度上类似于现有的梯度跟踪机制(Lorenzo & Scutari, 2016;Nedi´c等人,2016)。然而,虽然梯度跟踪可证明解决数据异质性,但其通信复杂性与迭代复杂性成正比,O(κ) (Y uan & Alghunaim, 2021;Koloskova等人,2021)。这同样适用于几乎所有其他旨在解决分散优化中的数据异构性的方案(Tang等人,2018;V ogels等,2021)。值得注意的例外包括Kovalev等人(2020;2021 b;);请参见其中的参考文献。然而,这些方法都是基于经典的加速方案,并且不执行多个局部步骤。

3. Theory

我们现在准备描述我们的关键理论发展:ProxSkip的收敛分析。

3.1. Assumptions

我们依靠几个标准假设来建立我们的结果。首先,我们需要f是光滑和强凸的(参见附录A的补充细节)。

3.2. Firm nonexpansiveness

4. Application to Federated Learning

现在让我们考虑最小化存储在n个设备上的n个函数的平均值的问题,如(5)所述。这是联邦学习中的典型问题(McMahan等人,2016;凯鲁兹等人,2021)。在这个设置中,函数fi: Rd→R表示客户端i在其私有数据上定义的本地损失函数。为了简单起见,我们在本节中假设每个客户端都可以精确地计算梯度∇fi(x)(即局部数据的完整传递),关于随机设置的讨论请参见第5.1节。当应用于问题(5)的共识重新表述(6)-(7)时,ProxSkip简化为scaffold(算法2)。方法描述。算法2有三个主要步骤:对客户端模型xi,t∈Rd进行局部更新,对客户端控制变量hi,t∈Rd进行局部更新,并在每次迭代中以概率p对客户端模型求平均。

6. Experiments

为了测试算法的性能并说明理论结果,我们使用了经典逻辑回归问题。

我们使用包RA Y (Moritz等人,2018)在Python中实现了5所有算法,以利用并行化。所有方法都在Intel(R) Xeon(R) Gold 6146 CPU的工作站上进行评估,CPU频率为3.20GHz, 24核。我们使用LIBSVM库中的“w8a”数据集(Chang & Lin, 2011)

在我们的实验中,我们有两个设置:确定性问题(图1)和随机问题(图2)。首先,我们提供带有调优超参数的结果(子图(a))。由于数据异构性,本地GD收敛到解决方案的邻域。脚手架和脚手架有相同的在沟通回合方面的收敛速度,这个速度比其他的好。其次,我们用理论超参数测试算法(子图(b))。在这种情况下,由于我们的理论保证我们可以使用大的步长,因此scaffold new的性能大大优于其他方法。局部步骤数设置为√κ,其中κ = L λ。

正如我们所看到的,如果我们的方法通信太频繁(1/p = 100)或太少(1/p = 1000),收敛性就会受到影响。

本实验的最佳局部步数为1/p = 300。我们的理论预测选择p = 1√κ是最优的,这与实验的结果接近。最后,在图2 (c)中,我们比较了不同客户端M数量的随机情况下的scaffold new。我们可以看到,增加M可以获得一个加速,这甚至比定理5.5所预测的更好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值