Communication-Efficient Learning of Deep Networks from Decentralized Data 论文笔记

  本文出自论文Communication-Efficient Learning of Deep Networks from Decentralized Data,本文提出了一种基于迭代模型平均的深层网络联合学习方法(Federated Averaging,FedAvg)解决联邦学习中数据Non-IID 和不平衡的问题,并对五种不同的模型结构和四种数据集进行了广泛的实证评价。

论文地址:Communication-Efficient Learning of Deep Networks from Decentralized Data


  现代的移动设备可以访问适合模型的数据,这些从而可以大大提高用户在设备上的体验。然而这些数据通常是隐私敏感,数量巨大。这就不能将数据传送到数据中心再同传统的方法训练。作者提倡一种替代方案,将训练数据分布在移动设备上,并通过聚合本地计算的更新来学习共享模型。我们称这种分散的方法为联邦学习。
  本文提出了一种基于迭代模型平均的深层网络联合学习方法,并针对不同的模型体系结构和四个数据集进行了扩展的模拟推理。这些实验表明,该方法对不平衡和Non-IID的数据分布具有鲁棒性,这是该设置的一个定义特征。通信成本是主要约束,与同步随机梯度下降相比,所需通信次数减少了10-100倍。



一、简介

  作者研究了一种学习技术,它允许用户在不需要集中存储数据的情况下,从这些丰富的数据中获得共享模型的好处。因为学习任务是通过一个由中央服务器协调的参与设备(称之为服务器 c l i e n t s clients clients))的松散联合来解决的,所以我们称之为联邦学习 F e d e r a t e d L e a r n i n g Federated Learning FederatedLearning)。每个客户机都有一个从未上载到服务器的本地训练数据集。相反,每个客户机对由服务器维护的当前全局模型进行更新计算,并且只传递此更新到服务器。

  贡献:
1.识别移动设备分散数据训练问题是一个重要的研究方向。
2.选择出了一种可应用于此设置的简单实用的算法。
3.对提出的方法进行了广泛的实证评估。更具体地说,我们引入了联邦平均 F e d e r a t e d A v e r a g i n g Federated Averaging FederatedAveraging)算法,它将每个客户机上的局部随机梯度下降(SGD)与执行模型平均的服务器相结合。作者对该算法进行了大量的实验,证明了该算法对不平衡和非IID数据分布的鲁棒性,并能将在分散数据上训练深度网络所需的通信次数减少若干个数量级。

  联邦学习 F e d e r a t e d L e a r n i n g FederatedLearning FederatedLearning
  联邦学习的理想问题具有以下特性:1.与在数据中心用代理数据训练相比,在移动设备用真实数据训练具有明显的优势。2.数据是隐私敏感或者数量巨大。3.对于监督任务,标签可以从用户的交互中得出。
  隐私
  与数据中心对持久数据的训练相比,联邦学习具有明显的隐私优势。和其他数据连接时,即使数据是匿名也可能让用户的隐私受到威胁。联邦学习传输的最小的更新模型的信息,并且这种更新的信息是短暂的。
  联邦优化 F e d e r a t e d O p t i m i z a t i o n Federated Optimization FederatedOptimization
  将联邦学习中隐含的优化问题称为联邦优化,将其与分布式优化联系起来(并进行对比)。联邦优化有几个关键属性,使其与典型的分布式优化问题不同:1.Non-IID。2.不平衡。一些用户比一些用户有更多的数据。3.大规模分布。参与优化的客户机数量将远远大于每个客户机的平均样例数量。4.连接受限。移动设备连接不稳定。

  本文重点是优化的Non-IID不平衡特性,以及通信约束的性质。其他因素设置为适合实验的受控环境。假设有K个客户机,每个客户机有自己固定的本地数据集。每一轮的开始随机选择比例为C的客户机。然后服务器将将模型的全局参数发给这些客户机,这些客户机根据全局状态及其本地数据集执行本地计算,并向服务器发送更新。然后,服务器将这些更新应用于其全局状态,并重复该过程。将上述方法用于非凸神经网络目标函数时:
在这里插入图片描述
  其中n是全部数据集的大小。对于机器学习问题, f i ( w ) = l ( x i , y i ; w ) f_{i}(w)=l(x_{i},y_{i};w) fi(w)=l(xi,yi;w),假设有K个客户机, P k P_{k} Pk指的是第K个客户机的数据集的索引, n k = ∣ P k ∣ n_{k}=|P_{k}| nk=Pk,即 n k n_{k} nk表示每个客户机的数据量。则式(1)可以改写成
在这里插入图片描述
  在数据中心的优化中,计算成本占主要地位。而在联邦学习中通信成本占主要地位,因此作者的目标是想要增加额外的计算来降低训练模型所需所需的通信次数。有两种主要的方法来增加计算量:1.增加并行性。每轮通信使用更多的客户机。2.增加每台客户机的计算量。在每轮通信中运行更复杂的计算。


二、联邦平均算法(The Federated Averaging Algorithm)

  最近许多成功的深度学习应用几乎完全依赖于变量的随机梯度下降(SGD)来进行优化;事实上,许多进展可以理解为使模型结构(以及损失函数)更易于通过简单的基于梯度的方法进行优化。因此,很自然地从SGD开始构建联邦优化算法。

  SGD可以简单地应用于联邦优化问题,在联邦优化问题中,每轮通信都要进行一次单批梯度计算。我们在CIFAR-10实验中考虑了这个基线。

  在联邦设置中,涉及更多客户时,wall-clock时间成本很低。因此对于我们的基线,我们使用大批量同步SGD。为了在联邦设置中应用这种方法,我们在每一轮中选择占比为C的客户机,并计算这些客户机所持有的所有数据的损失梯度。因此,C控制全局批大小,C=1对应于整批(非随机)梯度下降。我们将此基线算法称为联邦SGD(或FedSGD)

  一个典型的FedSGD的实现是令C=1,一个固定的学习率 η η η,客户机K计算 g k = ▽ F k ( w t ) g_{k}=\bigtriangledown F_{k}(w_{t}) gk=Fk(wt),即当前模型 w t w_{t} wt的平均下降梯度。然后服务器中心合计全部客户机的梯度并更新模型 w t + 1 ← w t − η Σ k = 1 K n k n g k w_{t+1}\leftarrow w_{t}-\eta \Sigma^{K}_{k=1} \frac{n_{k}}{n}g_{k} wt+1wtηΣk=1Knnkgk上式等同于 ∀ k , w t + 1 k ← w t − η g k t h e n w t + 1 ← Σ k = 1 K n k n w t + 1 k \forall k,w^{k}_{t+1}\leftarrow w_{t}-\eta g_{k} \qquad then \qquad w_{t+1}\leftarrow \Sigma^{K}_{k=1} \frac{n_{k}}{n}w^{k}_{t+1} k,wt+1kwtηgkthenwt+1Σk=1Knnkwt+1k也就是说,每个客户机在本地使用其本地数据对当前模型进行一步梯度下降,然后服务器对得到的模型进行加权平均。一旦算法是这样写,我们就可以为每个客户机在服务器平均之前通过多次迭代 w k ← w k − η F k ( w k ) w^{k} \leftarrow w^{k}-\eta F_{k}(w^{k}) wkwkηFk(wk)来增加计算量。作者把这个算法称为联邦平均( FederatedAveraging or FedAvg)。 FedAvg的计算量由三个参数控制: C C C,每轮选择客户机的比例; E E E,每个客户机在一轮的本地数据集上进行的训练次数; B B B,本地训练的minibatch。 B = ∞ B=\infty B=表示本地的全部数据当作一次minibatch。因此 B = ∞ , C = 1 B=\infty,C=1 B=C=1就正好对应于FedSGD。对于一个有 n k 个 数 据 的 n_{k}个数据的 nk客户机来说,每轮的更新次数为 u k = E n k B u_{k}=E \frac{n_{k}}{B} uk=EBnk。 FedAvg的伪代码如下图:

在这里插入图片描述

个人理解:
FedAvg的步骤:
1.随机选择比例为C的客户机。
2.对于服务器将全局模型发给被选择的客户机。客户机用本地的数据将接受到的全局模型进行epoch为E,batch为B的梯度更新。总共更新的次数为 E n k B E \frac{n_{k}}{B} EBnk
3.客户机将更新后得到的模型发给服务器。服务将全部模型取权值平均得到一个新的全局模型。

FedSGD和 FedAvg的唯一不同点就是 FedAvg多了一个参数 E E E,即客户机一轮在本地数据训练的次数。当 E = 1 E=1 E=1时, FedAvg退化为FedSGD。


三、实验结果

  实验分为图像分类模型和语言建模任务两部分。初步的研究包括三个模型族和两个数据集。
  前两个用于MNIST数字识别任务:1)一个简单的多层感知机,具有两个隐层。每个层有200个单元。称之为MNIST 2NN。2)卷积神经网络。
  MNIST数据分布的两种划法:1)IID,数据随机分给100个客户机,每个客户机收到600分样本。2)Non-IID,先对数据标签进行排序,将整个数据集分成每份300个样本的数据子集,每一个客户机收到两个数据子集,所以一个客户机最多有两种标签的数字图片。

  对于语言模型,作者从莎士比亚全集中建立数据集。用至少两行文本为剧本中每个有对话的角色构建了一个客户端数据集。这产生了一个包含1146个客户机的数据集。对于每个客户机,我们将数据分成一组训练集(角色的前80%的行)和测试集(最后20%,四舍五入到至少一行)。显然这个数据的不平衡的,因为很多角色只有几行,二少数角色拥有很多行。所以作者还做了形成平衡和IID版本的数据集,同时拥有1146个客户机。
  对于这个数据集作者训练了一个lstm模型。这个模型在读取一行中的每个字符后,预测下一个字符。


   增加并行度。对比例C进行实验。表1显示了不同的C对两个MNIST模型的影响。我们显示了达到目标精度所需的通信轮数。
在这里插入图片描述   图二则用图表的形式显示每轮更新后达到的进度
在这里插入图片描述
   使用 B = ∞ B=\infty B=(对于MNIST将客户机中600示例作为每轮的一个批处理)使用时,增加比例C只有一个小小的优势。在C≥0.1的情况下,使用更小的batchsize B = 10 B=10 B=10显著改善,尤其是在非IID情况下。基于这些结果,在我们剩下的大部分实验中,我们固定 C = 0.1 C=0.1 C=0.1,这在计算效率和收敛速度之间取得了很好的平衡。比较表1中 B = ∞ B=\infty B= B = 10 B=10 B=10列的轮数,可以看到一个显著的加速,我们接下来将对此进行研究。


   增加每个客户机的计算量。固定 C = 0.1 C=0.1 C=0.1。若要增加一轮中每个客户机的计算量,要么降低 B B B,要么增加 E E E,要么两者兼有。图二显示了在每轮中增加SGD更新(即增加E)可以显著的减低通信次数。表二量化了这些加速。每轮每个客户机更新的次数 u = ( E ∣ n k / B ∣ ) E = n E / ( K B ) u=(E|n_{k}/B|)E=nE/(KB) u=(Enk/B)E=nE/(KB)。从表二中可以看到。通过改变B和E来增加u是有效的。但如果B足够大,就基本上不能消耗计算时间来降低通信次数了。
   对于MNIST数据的分布,使用更多的计算,CNN和2NN的目标精度分别降低了35倍和46倍(2NN详见附录A表4)。Non-IID数据的加速比较小,但仍然相当可观(2.8–3.7倍)。令人印象深刻的是,当我们天真地对训练在完全不同的数字对上的模型参数进行平均时,平均值提供了所有优势。因此,我们认为这是这种方法稳健性的有力证据。
   在不平衡和Non-IID的莎士比亚数据集中,这个数据集更能代表显示中的分布学习Non-IID和不平衡数据实际上要容易得多(95倍加速,而平衡IID数据为13倍加速);我们推测这主要是由于某些角色具有相对较大的本地数据集,这使得增加的本地训练尤其有价值。
  对于这三个模型类,FedAvg比基线FedSGD模型收敛到更高的精度水平。即使这些线超出了绘制的范围,这种趋势也会继续。例如,对于CNN来说,B=∞;E=1 FedSGD模型在1200轮之后最终达到99.22%的精度(6000轮之后没有进一步提高),而B=10;E=20 FedAvg模型在300轮之后达到99.44%的精度。作者推测,除了降低通信成本外,模型平均还能产生类似于Dropout所获得的正则化收益

  我们可以在客户机数据集上over-optimize 吗? E → ∞ E \rightarrow \infty E时,至少对于凸问题,最终初始条件是怎样,都会达到全局最小值。即使对于非凸问题,也可以推测,只要初始化在同一个盆地中,算法就会收敛到相同的局部极小值。也就是说,虽然一轮平均可能会产生一个合理的模型,但额外的一轮交流(和平均)不会产生进一步的改进。
  图3显示了初始训练中,大的E对莎士比亚的LSTM模型的影响。事实上,对于非常大的本地epoch,FedAvg可以平稳或发散的。这一结果表明,对于某些模型,尤其是在收敛的后期阶段,衰减每轮的局部计算量(移动到较小的E或更大的B)可能是有用的,同样,衰减学习速率也是有用的。附录A中的图8给出了类似的实验。有意思的是,对于这个模型,我们没有看到E值较大时收敛速度的显著下降。但是,我们发现在下面描述的大规模语言建模任务中,E=1比E=5的性能稍好(参见附录A中的图10)。
在这里插入图片描述


  CIFAR 实验 作者还对CIFAR-10数据集进行了实验,进一步验证 FedAvg。该实验有100个客户机,每个客户机有500张图片的训练集,100张图片的测试集。由于此数据没有自然的用户划分,因此考虑为平衡和IID设置。
  对于这些实验,我们考虑了一个额外的基线,即全训练集(无用户划分)上的标准SGD训练,使用大小为100的小批量。在197500个小批量更新之后,我们获得了86%的测试精度(每个小批量更新都需要在联邦设置中进行通信)。FedAvg仅在2000次通信轮次后达到了85%的类似测试精度。对于所有算法,除了初始学习速率外,我们还调整了学习速率衰减参数。表3给出了基线SGD、FedSGD和FedAvg达到三个不同精度目标的通信次数,图4给出了FedAvg与FedSGD的学习率曲线。
在这里插入图片描述
在这里插入图片描述


   Large-scale LSTM experiments 作者在一个大规模的下一个单词预测任务上进行了实验,以验证 FedAvg方法在实际问题上的有效性。训练数据集包括来自一个大型社交网络的1000万个公共帖子。根据作者对帖子进行了分组,总共有超过500000名客户。
  所有的实验都在每轮200个客户机上训练;FedAvg使用B=8和E=1。作者研究了FedAvg和基线FedSGD的各种学习率。图5显示了最佳学习率的单调学习曲线。η=18.0的FedSGD需要820轮才能达到10.5%的准确率,而η=9.0的FedAvg在35论通讯(23×fewerthen FedSGD)中达到了10.5%的准确率。我们观察到FedAvg的测试精度差异较低,见附录A中的图10。该图还包括了E=5的结果,其表现略差于E=1。
在这里插入图片描述


三、结论和未来工作

  实验表明,联邦学习是可行的,因为FedAvg使用相对较少的通信轮次来训练高质量的模型,
  联邦学习提供了许多实用的隐私好处,但通过差异隐私、安全多方计算或它们的组合来提供更强大的保障是未来工作的一个有趣的方向。


四、附录A

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值