【论文阅读】(FedAvg)Communication-Efficient Learning of Deep Networks from Decentralized Data

Communication-Efficient Learning of Deep Networks from Decentralized Data

论文地址https://arxiv.org/abs/1602.05629

Abstract

现代移动设备能访问到的大量数据都十分适合于学习模型,并且基于此页可以反过来改善用户在该设备上的体验。例如,语言模型可以改善语音识别和文本输入,图像模型可以自动选择好的照片。然而,这些丰富的数据通常数量大、对隐私敏感、或两者兼有,这会导致使用传统方法(即将数据导入到数据中心并在数据中心进行训练的)进行数据训练的方式效率受损。因此作者提出了一种替代方法,即将训练数据分布在移动设备上,并通过聚合本地计算的更新来学习共享模型,将这种去中心化的方法称为联邦学习。

作者提出了一种基于迭代模型平均化的深度网络联学习的实用方法,并进行了广泛的实证评估,考虑了五种不同的模型架构和四个数据集。实验表明,该方法对不平衡和非IID数据分布是稳健的,这是该设置的一个定义特征。通信成本是主要的约束条件,与同步随机梯度下降相比,所需的通信轮数减少了10-100

Section I Introduction

手机和平板电脑逐渐成为人们使用的主要移动智能设备。这些设备上具有强大的传感器(包括摄像头、麦克风和GPS),加之具有便捷性,这就意味着它们可以获取到海量的数据,并且其中大部分本质上是隐私数据。在这些数据上学习到的模型有望通过支持更智能的应用程序来大大提高可用性,但数据的敏感性意味着将其存储在一个集中的位置存在风险和责任。

而联邦学习的出现,允许用户集体获得从这些丰富的数据中训练出来的共享模型,而不需要集中存储它。因为学习任务是由参与设备(我们称为客户端)的松散联盟解决的,这些设备由一个中央服务器协调。每个客户端都有一个本地训练数据集,它从未上传到服务器。相反,每个客户端计算对服务器维护的当前全局模型的更新,并且只通信此更新

联邦学习的一个主要优点是可以将模型训练与直接访问原始训练数据的需要解耦。显然,该方法仍然需要对协调培训的服务器信任。然而,对于可以根据每个客户端上可用数据指定训练目标的应用程序,联邦学习可以通过将攻击表面限制在设备而不是设备和云,显著降低隐私和安全风险。

作者做出的主要贡献是:

1)将移动设备的分散数据进行训练问题作为一个重要的研究方向;

2)选择可以应用于这种设置直接和实用的算法,;

3)对所提出的方法进行广泛的经验评估。更具体地说,联邦平均算法将每个客户机上的局部随机梯度下降(SGD)与执行模型平均的服务器结合起来。通过对该算法进行了大量的实验,证明了该算法对不平衡和非IID数据分布具有鲁棒性,可以将分散数据训练深度网络所需的通信次数减少数量级。

Federated Learning

联邦学习的理想问题具有以下属性:

  1. 对来自移动设备的真实数据进行训练,比对数据中心通常提供的代理数据进行训练具有明显的优势。
  2. 该数据对隐私敏感或大小较大(与模型的大小相比),所以最好不要纯粹为了模型训练而将其记录到数据中心(服务于集中收集原则)。
  3. 对于有监督任务,数据上的标签可以自然地从用户交互中推断出来。

许多支持移动设备上的智能行为的模型都符合上述标准。例如,考虑图像识别,预测哪些照片最有可能被多次浏览或共享;考虑语言模型,可以通过改进解码、下一个单词预测,甚至预测整个回复来改善触摸屏键盘上的语音识别和文本输入这两项任务的潜在训练数据(用户拍摄的所有照片以及他们在移动键盘上输入的所有内容,包括密码、URL、信息等)可能对隐私很敏感。

绘制这些示例的分布也可能与易于获得的代理数据集有很大不同:聊天和短信中的语言使用通常与标准语言语料库有很大不同,比如维基百科和其他网页文件;用户自己拍摄的照片也和典型的相册不同。

最后,这些数据的标签都是直接可用的:输入的文本是自标注的,用于学习语言模型,照片标签可以通过用户与其照片应用程序的交互来定义(哪些照片被删除,共享或查看)。

这两项任务都很适合用于学习神经网络。对于图像分类前馈深度网络特别是卷积神经网络都有很好的表现对于语言模型的循环神经网络RNN,特别是LSTMs也有很好的表现

Privacy

相较于传统的集中式存储数据进行训练,联邦学习具有明显的隐私优势。即使是一个“匿名”的数据集,也可能通过与其他数据的连接而危及用户的隐私。然而,为联邦学习传输的信息是改进特定模型所需的最小更新(自然地,隐私利益的强度取决于更新的内容)。这些更新本身可以(也应该)是短暂的。它们永远不会包含比原始训练数据更多的信息(由于数据处理不平等),而且通常会包含少得多。此外,聚合算法不需要更新的来源,因此可以在不识别元数据的情况下通过混合网络 (例如Tor) 或通过受信任的第三方传输更新。本文在最后简要讨论了联合学习与安全多方计算和差分隐私相结合的可能性。

Federated Optimization

作者将联邦学习中隐式的优化问题称为联邦优化,并与分布式优化建立联系(和对比)。联邦优化具有区别于典型的分布式优化问题的几个关键特性:

Non-IID 给定客户端上的训练数据通常基于特定用户对移动设备的使用情况,因此任何特定用户的本地数据集都不能代表人口分布。

Unbalanced 类似地,一些用户会比其他用户更多地使用该服务或应用程序,从而导致不同数量的本地培训数据。

Massively distributed 我们预计参与优化的客户端数量将远远大于每个客户端的平均示例数量。

Limited communication 移动设备经常离线或连接缓慢或昂贵的。

在这项工作中重点是非IID和不平衡的优化的属性,以及通信约束的关键性质。部署的联邦优化系统还必须解决无数实际问题:客户端数据集随着数据的添加和删除而变化; 以复杂方式与本地数据分发相关的客户端可用性(例如,说美国英语的电话可能在不同说英国英语的时间插入);以及从不回复或发送损坏更新的客户

这些问题超出了当前工作的范围;相反,我们使用了一个适合实验的受控环境,但仍然解决了客户端可用性不平衡非IID数据的关键问题。我们假设有一个同步更新方案,在几轮通信中进行。有一个固定的K个客户端集,每个客户端都有一个固定的本地数据集。在每一轮开始时,选择一个随机的客户端C,服务器将当前的全局算法状态发送给每个客户端(例如,当前的模型参数)。为了提高效率,我们只选择了一小部分客户,因为我们的实验表明,在某一点之后增加更多客户的收益会递减。然后,每个选定的客户端根据全局状态及其本地数据集执行本地计算,并向服务器发送一个更新。然后,服务器将这些更新应用于其全局状态,然后重复此过程。

当我们关注非凸神经网络目标时,我们所考虑的算法适用于任何形式的有限和目标:

 对于机器学习问题,我们通常采用fi (w) =L(xi,yiw),也就是说,使用模型参数w进行的示例(xi,yi)上的预测损失。我们假设有K个客户端对数据进行分区,Pk是客户端k上数据点的索引集,使用nk = |Pk|。因此,我们可以将目标(1)重写为

 如果分区Pk是通过将训练示例均匀随机分配在客户机上而形成的,那么我们将有EPk [Fk (w)] = f (w),其中期望超过分配给固定客户机k的示例集。这是分布式优化算法通常做出的IID假设;我们把这种不成立的情况(即Fk可能是f的任意坏近似值)称为非IID设置。

在数据中心优化中,通信成本相对较小,而计算成本占主导地位,最近的主要重点都是使用GPU来降低这些成本。相比之下,在联邦优化中,通信成本占主导地位——我们通常会受到1 MB/s或更少的上传带宽的限制。此外,客户通常只有在充电、插入和使用无计量的Wi-Fi连接时,才会自愿参与优化。此外,我们预计每个客户每天只参与少量的更新轮。另一方面,由于任何单一的设备上数据集比总数据集大小都很小,而且现代智能手机拥有相对较快的处理器(包括GPU),与许多模型类型的通信成本相比,计算基本上是免费的。因此,我们的目标是使用额外的计算,以减少训练模型所需的通信轮数。我们可以用两种主要的方式来添加计算量:

  1. 增加并行性,在每次通信之间使用更多的客户端独立工作;
  2. 增加每个客户端的计算,每个客户端不像梯度计算那样执行简单的计算,而是在每个通信回合之间执行更复杂的计算。

通过这两种方法取得的速度提高主要是由于在每个客户端上添加了更多的计算,使用了客户端的最低并行度级别。

Related Work

McDonald等人已经研究了通过对本地训练模型进行迭代平均来进行分布式训练感知机

Povey等人研究了用于语音识别DNN。

Zhang等人研究了一种具有“软”平均的异步方法。

这些工作只考虑集群/数据中心设置(最多16名工作人员,基于快速网络的挂钟时间),却并没有考虑不平衡和非IID的数据集,然而这些未被考虑到属性对联邦学习设置至关重要。我们将这种风格的算法适应于联邦设置,并进行适当的实证评估,它提出的问题与与数据中心设置相关的问题不同,需要不同的方法。

Neverova等人讨论了在设备上保持敏感的用户数据的优点。

Shokri和Shmatikov关注训练深度网络,强调隐私的重要性,并通过在每一轮通信中只共享一个参数的子集来解决通信成本;然而,他们也不考虑不平衡和非IID数据,经验评估是有限的。

在凸设置中,分布式优化和估计问题受到了极大的关注,一些算法特别关注通信效率。除了假设凸性,这些现有的工作通常要求客户的数量远远小于每个客户的例子数量,数据以IID的方式分布在客户之间,并且每个节点有相同数量的数据点——所有这些假设在联合优化设置中都被违反了。异步分布式形式的SGD也被应用于训练神经网络,例如,Dean等人,但这些方法在联合设置中需要大量的更新。分布式共识算法虽然放宽了IID假设,但仍然不是很适合许多客户端的通信约束优化。

我们考虑的(参数化)算法系列的一个端点是简单的单次平均法,即每个客户求解在其本地数据上损失最小的模型(可能是正则化的),这些模型被平均化以产生最终的全局模型。这种方法在有IID数据的凸情况下被广泛研究,而且已知在最坏的情况下,产生的全局模型并不比在单个客户上训练的模型好。

Section II 联邦平均算法

最近深度学习的众多成功应用几乎完全依赖于随机梯度下降(SGD)的变体进行优化;事实上,许多进展可以被理解为调整模型的结构(以及由此产生的损失函数),使其更适合于通过基于梯度的简单方法进行优化。因此,我们从SGD开始建立联优化的算法是很自然的。

SGD可以被毫不违和地应用于联优化问题,因为其在每轮通信中进行一次批量梯度计算(比如在随机选择的客户端上)。这种方法在计算上是高效的,但需要大量的训练来产生好的模型(例如,即使使用批处理规范化这样的先进方法,Ioffe和Szegedy在大小为60的minibatches上MNIST训练了50000步)。作者在CIFAR-10的实验中考虑了这个基准线

在联设置中,让更多的客户参与进来,耗时极小,所以作者使用了大批量同步SGD;Chen等人实验表明,这种方法在数据中心设置中是最先进的,它优于异步方法。为了在联邦设置中应用这种方法,我们在每一轮中选择一个小比例的客户端,并计算这些客户端持有的所有数据的损失梯度。因此,C控制了全局的批大小,C = 1对应于全批(非随机)梯度下降。作者称此基线算法为FederatedSGD(或FedSGD)。

 计算的数量用几个关键的参数来控制:

·C,每一轮中进行计算的客户端比例(C是小数)

·E,每轮训练中训练更新的次数

·B,用于客户端更新的局部小批量的大小

对于一般的非凸目标,在参数空间中平均化模型可能会产生一个任意的坏模型。

 根据Goodfellow等人的方法,当我们平均两个从不同初始条件训练的MNIST数字识别模型时,我们恰好看到了这种不良结果(图1,左)。
最近的工作表明,在实践中,参数充分的神经网络效果良好,更不容易出现不好的局部极小值但是当我们开始从相同的随机初始化条件开始,然后将其独立的用在不同的数据子集上训练,我们发现简单的参数平均也有很好的表现。

图1,右):两个模型的平均1/2W + 1/2W`在手写数据集中有很好的损失下降,这个下降比在单独的小数据集上独立训练要好。

Section III Experimental Results

图像分类和语言建模的良好模型可以极大地提高移动设备的可用性。对于每个模型,可以选择了一个足够大的代理数据集,以便可以彻底研究FedAvg算法的超参数。虽然每个单独的训练运行都相对较小,但作者为这些实验训练了2000多个单独的模型。然后,作者展示了基准的CIFAR-10图像分类任务的结果。最后,为了演示FedAvg在一个通过在客户端上自然划分数据的真实问题上的有效性,作者在一个大型语言建模任务上进行了评估。

作者最初的研究包括在两个数据集上的三个模型。

MNIST手写数据集识别

多层感知器带有2个隐藏层,每层有200个单元,使用ReLu激活函数(199,210个总参数),我们称其为MNIST 2NN。

CNN有两个5x5卷积层(其中第一个有32个通道,第二个有64个通道,每个通道都有2x2的最大池化)一个有512个单元的全连接层(共1,663,370个参数)。

为了研究联合优化,作者研究了两种在客户端上划分MNIST数据的方法,用于指定数据是如何在客户机上分布的:

IID,其中数据被打乱,然后划分为100个客户端,每个客户端接收600个例子

Non-IID,我们首先按数字标签对数据进行排序,将其分成200个大小为300的片,并为100个客户端分配2个片

通过上述方法可以探索在极度非独立同分布数据下的表现(每一种划分都是平衡的)

威廉-莎士比亚全集数据集

作者为每个剧中的每个说话角色构建了一个至少有两句台词的客户数据集。对于每个客户,将数据分成一组训练行(该角色的前80%的行)和测试行(最后20%,四舍五入到至少一行)。由此产生的数据集在训练集中有3,564,579个字符,在测试集中有870,014个字符。这个数据基本上是不平衡的,许多角色只有几行,而少数角色有大量的行。此外,观察测试集不是一个随机的台词样本,而是在时间上被每个剧目的时间顺序分开的。此外,使用相同的训练/测试拆分还构成了一个平衡的和IID版本的数据集 也有1146个客户

基于上述数据集作者训练了一个堆叠的字符级LSTM语言模型,该模型在读取一行中的每个字符后,预测下一个字符。该模型以一系列字符作为输入,并将每个字符嵌入到一个学习到的8维空间中。嵌入的符通过2个LSTM层进行处理,每个层有256个节点。最后,第二个LSTM层的输出被发送到每个字符有一个节点的softmax输出层。完整的模型有866,578个参数,选择使用80个字符的展开长度进行训练。

SGD对学习速率参数η的调整很敏感。这里报告的结果是基于在足够宽的学习率网格上的训练(通常在分辨率为101/3或101/6的乘法网格上η的11-13个值)。通过检查以确保最佳的学习率在我们的网格的中间,并且在最佳的学习率之间没有显著的差异。作者为每个x轴值分别选择最佳执行率的指标发现最优学习率作为其他参数的函数变化不太大。

Increasing parallelism

 作者首先试验了客户机分数C,它控制了多客户机并行性的数量。表1显示了改变C对两个MNIST模型的影响。通信的次数影响了测试集的准确率。为了计算这一点,作者为每个参数设置的组合构建了一条学习曲线,如上所述优化η,然后通过在所有先前回合中取得的测试集准确性的最佳值使每条曲线单调地改善。然后,使用形成曲线的离散点之间的线性插值来计算曲线与目标精度相交的回合数。参考图2可能最能理解这一点,其中灰线表示目标。

 当 B = ∞时(MNIST中每个客户端的600个数据每一轮作为一个批量),增加客户端的比例只有很小的优势。

当 B = 10时,当 C ≥ 0.1时有显著的提升,特别是对于独立同分布的情况。

基于这些结果,对于大多数实验,我们将 C = 0.1固定下来,这对于计算有效和收敛速度上面有很好的平衡。

和 B = 10与 B = ∞的通信次数比较,表格1中下降明显。

Increasing computation per client

在这一节中,我C=0.1,并在每一轮中为每个客户增加更多的计算,要么减少B,要么增加E,或者两者都增加。图2表明,每轮增加更多的本地SGD更新可以使通信成本大幅下降,表2对这些加速进行了量化。每个客户每轮更新的预期数量是u = (E[nk]/B)E = nE/(KB),其中预期是对随机客户k的抽样。表2的每一节中的行按这个统计量排序。我们看到,通过改变E和B来增加u E和B都是有效的。只要B足够大 只要B足够大,以充分利用客户端上的可用并行性 只要B足够大,以充分利用客户端硬件上的可用并行性,那么降低B基本上没有计算时间上的成本 因此,在实践中,这应该是第一个调整的参数。参数进行调整。

Can we over-optimize on the client datasets?

当前的模型参数只影响到每个ClientUpdate中通过初始化进行的优化。因此,当E→∞时,至少对于一个凸的问题来说,初始条件最终应该是不相关的,而且无论初始化如何,都会达到全局最小。即使对于非凸问题,我们也可以猜想,只要初始化是在同一个凹曲线中,算法就会收敛到同一个局部最小值。也就是说,我们期望,虽然一轮平均化可能产生一个合理的模型,但额外的几轮通信(和平均化)不会产生进一步的改进。

 图3显示了初始训练时E值偏大对莎士比亚LSTM问题的影响。事实上对于非常多的局部历时,FedAvg可以达到平稳或发散。这一结果表明,对于某些模型,特别是在收敛的后期阶段,每轮局部计算量的衰减可能是有用的(转向更小的E或更大的B),就像学习率的衰减是有用的一样。

 CIFAR experiments

我们还在CIFAR-10数据集上进行了实验 CIFAR-10数据集来进一步验证FedAvg。该数据集由10类32x32的图像组成,有三个 RGB通道。有50,000个训练实例和 10,000个测试实例,我们将这些实例划分为100个 客户端,每个客户端包含500个训练样本和100个测试样本 的例子; 因为这个数据没有一个自然的用户分区、 我们考虑了平衡和IID设置。

该模型架构取自TensorFlow教程、它由两个卷积层和两个全连接层组成,然后是线性转换层以产生对数,总共有106个参数。请注意,最先进的方法已经实现了96.5%的CIFAR测试精度;然而,我们使用的标准模型足以满足我们的需求,因为我们的目标是评估我们的优化方法,而不是在这个任务上实现最佳的精度。图像作为训练输入管道的一部分进行了预处理,其中包括将图像裁剪成24x24,随机左右翻转,调整对比度、亮度和白化

 在这些实验中,我们考虑了一个额外的基准线,即在完整的训练集上进行标准的SGD训练(没有用户分区),使用大小为100的迷你批。在197,500个迷你批次的更新之后,我们达到了86%的测试准确率(在联合设置中,每个迷你批次的更新需要一个通信回合)。FedAvg仅在2,000轮通信后就达到了85%的类似测试准确率。对于所有的算法,除了初始学习率,我们还调整了一个学习率衰减参数。表3给出了基线SGD、FedSGD和FedAvg达到三个不同精度目标的通信回合数,图4给出了FedAvg与FedSGD的学习率曲线。

 通过对SGD和FedAvg进行大小为B=50的迷你批的实验,我们也可以看看准确性与这种迷你批梯度计算数量的关系。我们期望SGD在这里做得更好,因为在每次迷你批计算之后都会采取连续的步骤。然而,如附录中的图9所示,对于适度的C和E值,FedAvg在每次迷你批计算中取得了类似的进展。此外,我们看到,标准SGD和FedAvg在每轮只有一个客户的情况下(C=0),都表现出明显的精度振荡,而对更多客户的平均化则使其变得平滑。

Large-scale LSTM experiments

我们在一个大规模的关于预测下一个单词任务上进行了实验,以证明我们的方法在一个真实世界的问题上的有效性。我们的训练数据集包括来自一个大型社交网络的1000万个公开帖子。我们将这些帖子按作者分组,总共有50多万个客户。这个数据集是对用户移动设备上的文本输入数据类型的一个现实代理。我们将每个客户数据集限制在最多5000个词,并在由不同(非培训)作者的1e5个帖子组成的测试集上报告准确率(在10000个可能性中,最高预测概率是在正确的下一个词上的那部分数据)。我们的模型是一个 256个节点的LSTM,词汇量为10,000字。每个词的输入和输出嵌入的维度为192,并与模型共同训练;共有4,950,544个参数。我们使用了一个10个词的解卷。

 这些实验需要大量的计算资源,因此我们没有将超参数的探索作为重点。因此,我们没有对超参数进行彻底的探索: 所有的运行都是在每轮200个客户上训练的;FedAvg 使用B=8和E=1。我们探索了各种学习 我们探索了FedAvg和基线FedSGD的各种学习率。图5 显示了最佳学习率的单调学习曲线。 η=18.0的FedSGD需要820个回合才能达到10.5%的 准确率,而η=9.0的FedAvg仅用35次通信就达到了10.5%的准确率。准确率为10.5%,只用了35个通信回合(比FedSGD少23倍)。我们观察到FedAvg的测试准确率差异较小。

Section IV Conclusions and Future Work

· 作者通过实验证明,联邦学习是可以实现的。因为FedAvg使用相对较少的几轮通信就能训练高质量的模型,这一点在各种模型架构上都得到了证明:一个多层感知器、两个不同的卷积NN、一个两层的字符LSTM和一个大规模的词级LSTM。多层感知器、两个不同的卷积NNs、一个两层的字符LSTM和一个大规模的词级LSTM。

· 联邦学习提供了许多实际的隐私好处,通过差异隐私、安全多方计算或它们的组合提供了更强的保证,并且这将是未来工作的一个创新点。这两类技术差异隐私、安全多方计算都最自然地应用于FedAvg等同步算法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值