用于学习全局和个性化模型的联邦块坐标下降方案

Abstract

在联邦学习中,通过在服务提供商的“云”中聚合用户在其边缘设备中持有的私有数据来学习模型,以获得全局模型。这种全球化的模式具有很大的商业价值,例如改善客户的体验。在本文中,我们将重点放在两个可能的领域,以改进现有的技术水平。首先,我们考虑了用户习惯之间的差异,并提出了一个基于二次惩罚的公式,以有效地学习全局模型,从而允许个性化局部模型。其次,我们解决了与边缘设备上的异构训练时间相关的延迟问题,通过利用分层结构建模通信,不仅在云和边缘设备之间,而且在云中。

具体而言,我们设计了一种定制的基于块坐标下降的计算方案,并附带了同步和异步云设置的通信协议。我们描述了算法的理论收敛速度,并提供了一个经验上表现更好的变体。我们还证明,受多智能体共识技术启发的异步协议,在边缘设备更新间歇时,与同步设置相比,具有在延迟方面获得巨大收益的潜力。最后,提供的实验结果不仅证实了理论,而且还表明,与目前的技术水平相比,该系统可以更快地收敛边缘设备上的个性化模型。

Introduction

在过去的几年里,联邦学习,分布式学习的一个新兴分支,已经引起了越来越多的关注(McMahan et al 2016;Li et al 2018;Bonawitz等人2019;杨阳等,2019)。它关注的场景是,在本地处理用户数据以训练机器学习模型,即在用户的边缘设备(如手机和可穿戴设备)上处理,以便数据保持隐私。事实上,数据隐私是重中之重;用户愿意与可靠的服务提供商共享经过训练的模型,但不一定是原始数据。在这种情况下,服务提供者寻求一个全局模型——通过聚合这些局部模型,该模型反过来可以提高用户的性能。这种全球化模式体现了“大众智慧”,有助于服务提供商以更好地了解客户的偏好。联邦学习与传统的分布式学习(优化通常发生在稳定的数据中心)的区别在于以下方面(Li et al 2020):
•用户不同边缘设备中可用的数据和计算能力的异质性;
•边缘设备和云之间通信的间歇性(且成本高昂)。

为了用数学术语解释它,下面的问题是联邦学习中的原型:
min ⁡ x i , z ∈ X ∑ i ∈ Q g i ( x i ) ,  s.t.  x i = z , ∀ i ∈ Q \min _{\boldsymbol{x}_i, \boldsymbol{z} \in \mathcal{X}} \sum_{i \in \mathcal{Q}} g_i\left(\boldsymbol{x}_i\right), \text { s.t. } \boldsymbol{x}_i=\boldsymbol{z}, \forall i \in \mathcal{Q} xi,zXminiQgi(xi), s.t. xi=z,iQ
where Q \mathcal{Q} Q is the set of edge devices, x i \boldsymbol{x}_i xi and g i g_i gi are the model parameter and cost function on the i i i th edge device that depend on the local data, and X \mathcal{X} X is the feasible region. Specifically, we can write g i ( x i ) : = 1 ∣ S i ∣ ∑ r ∈ S i h ( x i ; s r ) g_i\left(\boldsymbol{x}_i\right):=\frac{1}{\left|\mathcal{S}_i\right|} \sum_{r \in \mathcal{S}_i} h\left(\boldsymbol{x}_i ; \boldsymbol{s}_r\right) gi(xi):=Si1rSih(xi;sr), where h h h is the training loss function, S i \mathcal{S}_i Si the index set of training data on the i i i th edge device, ∣ S i ∣ \left|\mathcal{S}_i\right| Si the number of elements in the set S i \mathcal{S}_i Si, and s r s_r sr one of such samples. To solve problem (1), federated learning methods typically adopt a recursive mechanism: edge devices process their own training data to update local models x i \boldsymbol{x}_i xi 's, and a cloud is introduced to aggregate x i \boldsymbol{x}_i xi 's for a global model z z z and synchronize all the local models with the updated z z z. This process is considered standard in the current development (McMahan et al. 2016; Li et al. 2018). However, we notice that two facts leave some space for improvement:
(i)在各地保持同样的模式是否有效?数据在边缘设备上通常是非独立的同分布(i.i.d),因为它们反映了不同用户的使用习惯。有鉴于此,边缘设备模型如果能很好地处理用户感兴趣的数据(这些数据也是非i.i.d的)就足够了——换句话说,个性化模型可能更擅长于它们主要用于的任务。当维护一个单一的模型时,用户可能会牺牲他们的客户体验,以改善更有利于服务提供商的全局模型,以促进新用户的模型。
(ii)同步云模型是否有效?云由并行工作的服务器集群组成,边缘设备只需要与一个这样的云服务器通信。
当将云视为唯一的计算资源时,一个隐含地强制某种形式的云同步,或同步云(可以通过AllReduce等技术实现(Patarasuk和Y uan 2009));图示见图1(a)。在联邦学习中,这种同步可能会导致严重的更新延迟。要看到这一点,请回忆一下,由于通信和计算的容量异质性,来自边缘设备的可用性时间和本地训练时间可能会有很大差异。因此,一种可能的情况是,大多数云服务器被一些“缓慢”激活的边缘设备所困,这些设备甚至从未与它们通信。

Contributions

本文的重点就是解决以上两个问题。

我们的贡献和新颖性可以总结如下:
•我们的工作为联邦学习提出了一个定制的分层通信架构。这种由主从网络和多代理网络组成的结构,尽管承认看起来“令人惊讶地”熟悉,但之前从未被研究过。

•我们提出了一个轻量级的块坐标下降计算方案,配备了明智设计的通信协议,这是第一个可以同时实现模型个性化和云服务器异步更新的工作,这两个看似无关的问题实际上与联邦学习密切相关(参考文献注释4)。

•给出了所提算法的次线性收敛速度。由于我们的通信架构包含两层信息交换,因此分析需要不同于现有工作的分析工具。

•我们提供延迟分析,以证明联邦学习异步更新的有效性。我们的延迟分析框架实际上允许根据边缘设备消息到达时间的分布来估计运行时,并将每次更新中涉及的云服务器数量与运行时连接起来,这是新的。

•最后,在标准机器学习应用程序上进行了数值实验,以支持我们的主张。

Related Work

FedAvg (McMahan et al 2016),一个简单的迭代算法,被认为是联邦学习的第一个工作。在每一轮FedAvg中,云将全局模型发送到被激活的部分边缘设备;然后,激活的边缘器件在局部代价函数上按固定的随机梯度下降(SGD)周期更新其局部模型;最后,云将上传的本地模型(通过加权求和)聚合为新的全局模型。大多数后续工作采用了与FedAvg引入的机制类似的机制(Li et al 2020)。例如,最近的一种名为FedProx (Li et al 2018)的变体在边缘设备更新步骤上与FedAvg不同,在那里它对代价函数施加了额外的近端项,并允许使用时变的更快算法,如加速SGD。

在联邦学习场景下,模型个性化是一个很自然的问题,但有时会被忽略。在(Mohri, Sivek, and Suresh 2019)的工作中,作者认为,由于个人偏好,通过FedAvg训练的模型可能会要偏向大多数人的利益。他们提出的AFL具有复杂的机制来确定云聚合中涉及的边缘设备模型的权重,而不是FedAvg中使用的简单的数据大小比。

Per-FedAvg (Fallah, Mokhtari,和Ozdaglar 2020)将全局模型与边缘设备上的模型区分开来。他们的目标是寻求一个良好的“初始化”,作为全局模型,可以通过几个简单的更新步骤轻松地在本地升级到每个边缘设备的最佳状态。(Smith et al 2017)认为模型个性化是一个多任务学习问题。他们提出的MOCHA可以为每个设备学习独立但相关的模型,同时通过多任务学习利用共享表示。在本文准备和提交期间发表的工作证明了模型个性化的重要性(Jiang et al 2019;Arivazhagan等人2019;Wu, He, and Chen 2020;Hu等人2020),专门关注这个问题。另一方面,没有一项工作像我们一样考虑基于惩罚的方法。
相比之下,关于异步多智能体网络中的分布式学习的文献大量存在;参见(Nedi´c, Olshevsky, and Rabbat 2018)最近的调查。虽然这样的实现通常比主从实现需要更多的迭代,但它们没有协调开销。最近(Assran等人2019)通过实验证明,减少开销在运行时方面产生了显著的好处。当在大型分布式数据库上处理深度学习问题时,异步多代理算法比其主从算法运行得更快,因为与传统的主从或增量架构相比,宽松的协调要求有助于无延迟地完成每次更新。截至本文提交时,我们还没有看到在联邦学习上下文中对该主题的研究,也没有关于如何描述性能趋势与算法运行时的关系的先前理论,而不是简单地关注所需的迭代次数。虽然有工作提到异步联邦学习(Chen et al2019;Lu等人2019),他们专注于边缘设备与云之间通信引起的异步更新-云仍然被视为唯一的点。

Problem Statement

在这里插入图片描述
我们将云服务器彼此分离,并考虑服务器/服务器和设备/服务器通信。为了解释,云服务器是由一个(可能)动态的多智能体图连接起来的,它们需要相互交谈以达成共识,无论是准确的还是渐进的;设备/服务器通信采用主从方式,并且与一般联邦学习一样,是间歇和随机的。我们称之为异步云架构,以区别于FedAvg采用的同步云架构;其差异见图1。异步云架构允许云服务器上的模型差异。正如我们稍后将展示的,可以利用这种灵活性来促进更有效的模型更新。
基于上述架构,我们提出的公式为
 s.t.  x i ∈ X , ∀ i ∈ Q n , n ∈ V ,  z n = z m , ∀ ( n , m ) ∈ E , \begin{aligned} & \text { s.t. } \quad \boldsymbol{x}_i \in \mathcal{X}, \forall i \in \mathcal{Q}_n, n \in \mathcal{V} \text {, } \\ & \boldsymbol{z}_n=\boldsymbol{z}_m, \forall(n, m) \in \mathcal{E}, \\ & \end{aligned}  s.t. xiX,iQn,nVzn=zm,(n,m)E,
where V \mathcal{V} V is the set of cloud servers, Q n \mathcal{Q}_n Qn is the set of edge devices connected to the n n nth cloud server, x i \boldsymbol{x}_i xi 's are edge-device models, z n \boldsymbol{z}_n zn 's are cloud-server models, E ⊆ ( V × V ) \mathcal{E} \subseteq(\mathcal{V} \times \mathcal{V}) E(V×V) indicates communication between cloud servers, and γ i > 0 \gamma_i>0 γi>0 is the penalty parameter. In the sequel, z n \boldsymbol{z}_n zn 's will be referred to as the global model and x i \boldsymbol{x}_i xi 's the personalized models. Our formulation distinguishes the global models on different cloud servers, and allows (but penalizes by the quadratic penalty regularizer) the deviations among personalized models.
注释1看似不存在的二次惩罚最近在不同的分布式学习文献中被重新讨论。在(Zhang, Choromanska, and LeCun 2015)中,这种惩罚被用于在底层优化具有许多局部最优的深度学习任务中寻求更好的解决方案。这种二次惩罚也在对抗性场景中进行了研究,其中全局模型有望抵抗恶意设备的攻击(Yang, Gang和Bajwa 2020)。

备注2(全局模型和个性化模型的动机)考虑智能手机键盘应用。用户需要准确的下一个单词预测,量身定制的个性化模型可以更好地实现这一点。然而,每个用户为训练产生的数据非常有限,因此,它的局部个性化模型可能无法适用于新的场景,这就是来自全局模型的全面知识的帮助(在我们的形成中,这是通过鼓励个性化模型接近其全局对应模型来实现的)。此外,全局模型可以作为新用户的无偏置初始化。

Federated Block Coordinate Descent

在本节中,我们将解决(2)中定义的问题。我们的开发基于经典的块坐标下降(BCD)方案(Bertsekas 1997):
{ x i ( t + 1 ) } i ∈ Q n n ∈ V = argmin ⁡ x i ∈ X g i ( x i ) + γ i 2 ∥ x i − z n ( t ) ∥ 2 , { z n ( t + 1 ) } n ∈ V = argmin ⁡ { z n } n ∈ V ∑ n ∈ V ∑ i ∈ Q n γ i 2 ∥ z n − x i ( t + 1 ) ∥ 2  (3b)   s.t.  z n = z m , ∀ ( n , m ) ∈ E .  \begin{aligned} & \left\{\boldsymbol{x}_i^{(t+1)}\right\}_{i \in \mathcal{Q}_n}^{n \in \mathcal{V}}=\underset{\boldsymbol{x}_i \in \mathcal{X}}{\operatorname{argmin}} g_i\left(\boldsymbol{x}_i\right)+\frac{\gamma_i}{2}\left\|\boldsymbol{x}_i-\boldsymbol{z}_n^{(t)}\right\|^2, \\ & \left\{\boldsymbol{z}_n^{(t+1)}\right\}_{n \in \mathcal{V}}=\underset{\left\{\boldsymbol{z}_n\right\}_{n \in \mathcal{V}}}{\operatorname{argmin}} \sum_{n \in \mathcal{V}} \sum_{i \in \mathcal{Q}_n} \frac{\gamma_i}{2}\left\|\boldsymbol{z}_n-\boldsymbol{x}_i^{(t+1)}\right\|^2 \text { (3b) } \\ & \text { s.t. } \boldsymbol{z}_n=\boldsymbol{z}_m, \forall(n, m) \in \mathcal{E} \text {. } \\ & \end{aligned} {xi(t+1)}iQnnV=xiXargmingi(xi)+2γi xizn(t) 2,{zn(t+1)}nV={zn}nVargminnViQn2γi znxi(t+1) 2 (3b)  s.t. zn=zm,(n,m)E
我们随后的工作可以解释为使BCD更新(3)适应同步云和异步云架构。与FedAvg一样,我们假设每轮只有部分边缘设备可用,用Q(t)n⊆Qn表示第t轮激活的边缘设备集(即可用来进行局部训练且处于稳定通信状态的边缘设备)。在续集中,我们将分别详细介绍云服务器和边缘设备更新。

更新边缘设备. 设备 i i i 没有被激活d, i.e., i ∉ Q n ( t ) i \notin \mathcal{Q}_n^{(t)} i/Qn(t), we have x i ( t + 1 ) = x i ( t ) \boldsymbol{x}_i^{(t+1)}=\boldsymbol{x}_i^{(t)} xi(t+1)=xi(t). Otherwise, timevarying epochs of accelerated stochastic projected gradient (ASPG) is applied. Specifically, letting t − t^{-} tbe the last round when the i i i th edge device was activated and given the initialization x i ( t , 0 ) = x i ( t − , K i ( t − ) ) \boldsymbol{x}_i^{(t, 0)}=\boldsymbol{x}_i^{\left(t^{-}, K_i^{\left(t^{-}\right)}\right)} xi(t,0)=xi(t,Ki(t))and x i ( t , − 1 ) = x i ( t − , K i ( t − ) − 1 ) \boldsymbol{x}_i^{(t,-1)}=\boldsymbol{x}_i^{\left(t^{-}, K_i^{\left(t^{-}\right)}-1\right)} xi(t,1)=xi(t,Ki(t)1), the edge device recursively performs:
x i , e x ( t , k ) = x i ( t , k ) + ζ ( x i ( t , k ) − x i ( t , k − 1 ) ) , x i ( t , k + 1 ) = Π X ( x i , e x ( t , k ) − η x ( ∇ g ~ i ( x i , e x ( t , k ) ) + γ i ( x i , e x ( t , k ) − z n ( t ) ) ) ) , \begin{aligned} & \boldsymbol{x}_{i, \mathrm{ex}}^{(t, k)}=\boldsymbol{x}_i^{(t, k)}+\zeta\left(\boldsymbol{x}_i^{(t, k)}-\boldsymbol{x}_i^{(t, k-1)}\right), \\ & \boldsymbol{x}_i^{(t, k+1)}= \\ & \Pi_{\mathcal{X}}\left(\boldsymbol{x}_{i, \mathrm{ex}}^{(t, k)}-\eta_x\left(\nabla \tilde{g}_i\left(\boldsymbol{x}_{i, \mathrm{ex}}^{(t, k)}\right)+\gamma_i\left(\boldsymbol{x}_{i, \mathrm{ex}}^{(t, k)}-\boldsymbol{z}_n^{(t)}\right)\right)\right), \end{aligned} xi,ex(t,k)=xi(t,k)+ζ(xi(t,k)xi(t,k1)),xi(t,k+1)=ΠX(xi,ex(t,k)ηx(g~i(xi,ex(t,k))+γi(xi,ex(t,k)zn(t)))),
for k = 0 , … , K i ( t ) − 1 k=0, \ldots, K_i^{(t)}-1 k=0,,Ki(t)1, where η x \eta_x ηx is the stepsize, ζ ≥ 0 \zeta \geq 0 ζ0 is the momentum weight, Π X \Pi_{\mathcal{X}} ΠX is the projection onto X \mathcal{X} X, and ∇ g ~ i \nabla \tilde{g}_i g~i is the mini-batch stochastic gradient such that ∇ g ~ i = \nabla \tilde{g}_i= g~i= 1 R ∑ r = 1 R ∇ h ( x i ; ξ r ( t , k ) ) \frac{1}{R} \sum_{r=1}^R \nabla h\left(\boldsymbol{x}_i ; \boldsymbol{\xi}_r^{(t, k)}\right) R1r=1Rh(xi;ξr(t,k)) with ξ r ( t , k ) \boldsymbol{\xi}_r^{(t, k)} ξr(t,k) being a sample from the i i i th edge device and R R R being the batch size. The final update is x i ( t + 1 ) = x i ( t , K i ( t ) ) \boldsymbol{x}_i^{(t+1)}=\boldsymbol{x}_i^{\left(t, K_i^{(t)}\right)} xi(t+1)=xi(t,Ki(t)). If ζ = 0 \zeta=0 ζ=0, update (4) narrows down to the standard SPG. Empirically, the ASPG update is observed to converge faster (Beck and Teboulle 2009).
在云服务器上更新。我们为同步云和异步云架构推导了(3b)的更新规则。在同步情况下,与FedAvg相同,我们可以将所有参与云服务器上的全局模型表示为zn = z,对于n∈v。然后,给定初始化z(t),云更新
(Sync-cloud)
z ( t + 1 ) = z ( t ) − η z ∑ n ∈ V ∑ i ∈ Q n γ i ( z ( t ) − x i ( t + 1 ) ) \boldsymbol{z}^{(t+1)}=\boldsymbol{z}^{(t)}-\eta_z \sum_{n \in \mathcal{V}} \sum_{i \in \mathcal{Q}_n} \gamma_i\left(\boldsymbol{z}^{(t)}-\boldsymbol{x}_i^{(t+1)}\right) z(t+1)=z(t)ηznViQnγi(z(t)xi(t+1))
其中ηz为步长。在异步设置中,我们建议使用分布式梯度下降(DGD)算法(Ram, Nedi´c, and V eeravalli 2010)。类似地,给定初始化z(t)n,对于n∈V,每个云服务器都可以运行
(Async-cloud)
w n ( t ) = ∑ m ∈ V a n , m ( t ) z m ( t ) , z n ( t + 1 ) = w n ( t ) − η z ∑ i ∈ Q n γ i ( w n ( t ) − x i ( t + 1 ) ) , \begin{aligned} \boldsymbol{w}_n^{(t)} & =\sum_{m \in \mathcal{V}} a_{n, m}^{(t)} \boldsymbol{z}_m^{(t)}, \\ \boldsymbol{z}_n^{(t+1)} & =\boldsymbol{w}_n^{(t)}-\eta_z \sum_{i \in \mathcal{Q}_n} \gamma_i\left(\boldsymbol{w}_n^{(t)}-\boldsymbol{x}_i^{(t+1)}\right), \end{aligned} wn(t)zn(t+1)=mVan,m(t)zm(t),=wn(t)ηziQnγi(wn(t)xi(t+1)),
在这里插入图片描述
结合(4)-(6),我们得到了我们的FedBCD方案。由于篇幅限制,我们只给出了算法1中FedBCD的伪代码,精确版本在补充文档中给出。在本节中,我们将描述美联储dbcd的理论收敛保证。

Numerical Experiments

我们在PyTorch上训练了两个模型:用于MNIST数据集分类的三层神经网络(LeCun et al 1998)和用于CIFAR-10数据集的更深层次的ResNet-20模型(He et al 2016)。我们假设有10个云服务器,每个服务器连接到10个边缘设备。为了模拟数据的异质性,我们限制了训练数据的“多样性”;例如,“diversity”为3,表示每个边缘设备拥有三个标签的数据。我们还使用一个小的|Q(t)n |来模拟间歇通信的发生。其他设置为:边缘设备学习率ηx = 0.005,动量权值ζ为0.9,边缘设备更新历元每轮从[1,5]中采样,X为元素-[−2,2]-框约束,批大小R = 32;对于FedBCD/FedBCD- i,云服务器学习率ηz = 0.5;对于FedBCD,惩罚参数为γi = 1;对于FedBCD-I,我们使用γi = 0.2, | ~ Q(t)n | = 8,边缘设备在完成4个离线回合后暂停局部训练;对于FedProx,边缘器件更新采用ASPG,惩罚参数为µ= 5。上述参数的选择是经过反复试验的。

Model Deviation vs. Model Consensus

我们比较了FedBCD/FedBCD- i(允许模型偏差)和FedAvg/FedProx(强制模型一致)。考虑了两种性能度量:个性化性能,即边缘设备在与训练数据具有相同多样性的测试数据上测试局部模型;以及全局性能,云在整个测试数据集上测试全局模型。为了公平起见,本实验中所有算法都使用了同步云协议(FedAvg/FedProx的同步云协议详见补充文档),并且每轮都会记录两种性能(即不考虑每轮的延迟)。从图3可以看出,FedAvg/FedProx的个性化和全局性能几乎相同。
这是有意义的,因为在这里,相同的模型在所有地方都被维护。相比之下,FedBCD/FedBCD- i通过允许局部模型偏离全局模型,提供了更好的个性化性能。我们也看到美联储的dbcd当|Q(t)n |较低时,更新进度缓慢,仅比FedAvg快(这并不奇怪,请参阅章节)。相比之下,它的直观变体FedBCD-I被证明更具竞争力;特别是,我们看到在更具挑战性的CIFAR-10任务中,FedBCD-I具有与FedProx相当的全局性能,同时提供更好的个性化性能。

Conclusion

这项工作有两个主要贡献:首先,我们认识到边缘设备上的机器学习模型反映了用户的习惯,因此可能是不同的;其次,我们强调云是一个强大的服务器集群,它们的内部通信可以用于更有效的更新。
本文对这两个方面进行了研究,并从理论上和实证上提出了一种可行的解决方案。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值