Communication-Efficient Learning of Deep Networks from Decentralized Data

Communication-Efficient Learning of Deep Networks from Decentralized Data -- 从分散数据中学习深度网络的通信效率

作者

H. Brendan McMahan ;Eider Moore ;Daniel Ramage ;Seth Hampson ;Blaise Aguera y Arcas
Google, Inc., 651 N 34th St., Seattle, WA 98103 USA

来源

链接:arxiv

Abstract

Modern mobile devices have access to a wealth of data suitable for learning models, which in turn can greatly improve the user experience on the device. For example, language models can improve speech recognition and text entry, and image models can automatically select good photos. However, this rich data is often privacy sensitive,large in quantity, or both, which may preclude
logging to the data center and training there using conventional approaches.

  • 现代移动设备可以访问大量适合学习模型的数据,这反过来又可以极大地改善设备上的用户体验。例如,语言模型可以改进语音识别和文本输入,图像模型可以自动选择好照片。然而,这些丰富的数据往往对隐私敏感数量庞大,或两者兼而有之,因此可能无法使用传统方法登录到数据中心并在那里进行训练。

We advocate an alternative that leaves the training data distributed on the mobile devices, and learns a shared model by
aggregating locally-computed updates. We term this decentralized approach F e d e r a t e d L e a r n i n g Federated Learning FederatedLearning.

  • 我们提倡一种替代方法,即把训练数据分布在移动设备上,通过聚合本地计算的更新数据来学习共享模型。我们将这种分散式方法称为 “联邦学习”(Federated Learning)。

本文即是联邦学习的开山之作,想要了解联邦学习,应该先知道联邦学习提出的目的,以及最初的联邦学习是怎样运行的。

We present a practical method for the federated learning of deep networks based on iterative model averaging, and conduct an extensive empirical evaluation, considering five different model architectures and four datasets. These experiments demonstrate the approach is robust to the unbalanced and non-IID data distributions that are a defining characteristic of this setting. Communication costs are the principal constraint, and we show a reduction in required communication rounds by 10–100× as compared to synchronized stochastic gradient descent.

  • 本文提出了一种基于迭代模型平均的深度网络联邦学习实用方法,并进行了广泛的实证评估,考虑了五种不同的模型架构和四个数据集。这些实验证明,该方法对不平衡和 Non-IID 数据分布具有很强的鲁棒性,而不平衡和 Non-IID 数据分布正是这种环境的一个显著特征。
  • 通信成本是主要的限制因素,与同步随机梯度下降法相比,本文发现所需的通信回合减少了 10-100 倍。

Background

  • 手机和平板电脑越来越多地成为许多人的主要计算设备。这些设备上的传感器(包括摄像头、麦克风和 GPS)功能强大,而且经常随身携带,这意味着它们可以访问前所未有的海量数据,其中大部分是私人数据。根据这些数据建立的模型有望为更多智能应用程序提供动力,从而大大提高可用性,但数据的敏感性意味着将其存储在一个集中位置存在风险和责任。

We investigate a learning technique that allows users to collectively reap the benefits of shared models trained from this rich data, without the need to centrally store it. We term
our approach Federated Learning, since the learning task is solved by a loose federation of participating devices (which we refer to as clients) which are coordinated by a central server. Each client has a local training dataset which is never uploaded to the server. Instead, each client computes an update to the current global model maintained by the server, and only this update is communicated.

  • 本文研究了一种学习技术,它能让用户集体获得从这些丰富数据中训练出来的 共享模型 的好处,而 无需集中存储这些数据 。将这种方法称为 “联邦学习” ( F e d e r a t e d (Federated Federated L e a r n i n g ) Learning) Learning,因为学习任务是由 中央服务器 协调的参与设备(我们称之为 客户端 )组成的松散联盟解决的。
  • 每个客户端都有一个本地训练数据集,该数据集从不上传到服务器。取而代之的是, 每个客户端对服务器维护的当前全局模型进行计算更新,并且只对该更新进行通信

A principal advantage of this approach is the decoupling of model training from the need for direct access to the raw training data. Clearly, some trust of the server coordinating the training is still required. However, for applications where the training objective can be specified on the basis of data available on each client, federated learning can significantly reduce privacy and security risks by limiting the attack surface to only the device, rather than the device and the cloud.

  • 这种方法的主要优点是将模型训练与直接访问原始训练数据的需要分离开来。显然,仍然需要对协调训练的服务器保持一定的信任。不过,对于可以根据每个客户端的可用数据指定训练目标的应用,联邦学习可以将攻击面限制在设备上,而不是设备和云上,从而大大降低隐私和安全风险。

什么是 “将攻击面限制在设备上,而不是设备和云上”
我的理解是,最初提出联邦学习是为了保护客户端的本地数据不被泄露,引入联邦学习后因为不需将本地数据上传到服务器,所以本地数据的泄露只会发生在本地,当然后续的研究会发现梯度数据一样会泄露本地数据的特征。

Contributions

Our primary contributions are :

  1. the identification of the problem of training on decentralized data from mobile devices as an important research direction;
  2. the selection of a straightforward and practical algorithm that can be applied to this setting;
  3. an extensive empirical evaluation of the proposed approach.
  1. 将移动设备分散数据的训练问题确定为一个重要的研究方向;
  2. 选择一种适用于上述情况的简单实用的算法;
  3. 对建议的方法进行广泛的实证评估。
  • 更具体地说,本文引入了联邦平均算法(FederatedAveraging algorithm),该算法将每个客户端上运行的局部随机梯度下降(SGD)与 进行模型平均的服务器相结合。
  • 本文对该算法进行了大量实验,证明它对不平衡和 Non-IID 数据分布具有鲁棒性,并能将在分散数据上训练深度网络所需的通信轮数减少几个数量级。

Federated Learning

Ideal problems for federated learning have the following properties:

  1. Training on real-world data from mobile devices provides a distinct advantage over
    training on proxy data that is generally available in the data center.
  2. This data is privacy sensitive or large in size (compared to the size of the model), so it is preferable not to log it to the data center purely for the purpose of model training (in service of the focused collection principle).
  3. For supervised tasks, labels on the data can be inferred naturally from user interaction.
  • 联合学习的理想问题具有以下特性:
    1. 与使用数据中心的代理数据进行训练相比,使用移动设备的真实数据进行训练具有明显优势。
    2. 这些数据属于 隐私敏感数据,或者数据量较大 (与模型的大小相比),因此最好不要纯粹出于模型训练的目的而将其记录到数据中心(以符合集中收集原则)。
    3. 对于有监督的任务,数据上的标签可以从用户交互中自然推断出来。
  • 特性1 说明当我们对移动设备应用联邦学习时,应该比传统的使用数据中心训练更有效。
  • 特性2 说明联邦学习适用于数据隐私敏感问题,适合保护隐私。或是适合单个节点的数据量较大时,这时如果选择将本地数据上传后统一训练,不仅客户端与服务器的通信开销很大,而且中央服务器的训练开销也会非常大。
  • 特性3 说明服务器可以从客户端上传的梯度中推理出本地数据的标签(也可能是我理解错误),这样也就引出了后续的工作,如何保护数据隐私,不被服务器推理出本地敏感数据。

许多支持移动设备智能行为的模型都符合上述标准。作为两个例子,我们可以考虑图像分类,例如预测哪些照片最有可能在未来被多次浏览或分享;以及语言模型,它可以通过改进解码、下一个单词预测甚至整个回复的预测来改善语音识别和触摸屏键盘上的文本输入。这两项任务的潜在训练数据(用户拍摄的所有照片和在手机键盘上输入的所有内容,包括密码、URL、信息等)都可能是隐私敏感数据。
这些例子的分布也可能与容易获得的代理数据集有很大不同:聊天和文本信息中的语言使用通常与标准语言语料库(如维基百科和其他网络文档)有很大不同;人们用手机拍摄的照片可能与典型的 Flickr 照片有很大不同。最后,这些问题的标签是直接可用的:输入的文本是自标签,用于学习语言模型;照片标签可以通过用户与照片应用程序的自然交互(删除、共享或查看哪些照片)来定义。
这两项任务都非常适合学习神经网络。在图像分类方面,众所周知,前馈深度网络,尤其是卷积网络,能够提供最先进的结果。对于语言建模任务,递归神经网络,尤其是 LSTM,已经取得了最先进的成果。

Privacy

  • 与在持久化数据上进行数据中心训练相比,联邦学习具有明显的隐私优势。

因为联邦学习并不需要客户端将数据上传。

  • 即使是 "匿名 "数据集,也会因为与其他数据的连接而危及用户隐私。相比之下,联邦学习所传输的信息是改进特定模型所需的最小更新(梯度)

自然,隐私效益的强弱取决于更新的内容,例如,如果更新是在所有本地数据上损失的总梯度,而特征是一个稀疏的词袋,那么非零梯度就能准确揭示用户在设备上输入了哪些单词。相比之下,密集模型(如 CNN)的多个梯度之和更难成为攻击者寻求单个训练实例信息的目标(尽管攻击仍有可能发生)。

  • 联邦学习所传输的信息永远不会超过原始训练数据(数据处理不等式),而且通常会少得多。此外,聚合算法并不需要更新的来源,因此可以通过混合网络(如 Tor )或可信第三方传输更新,而无需识别元数据。

Federated Optimization

  • 将联邦学习中隐含的优化问题称为联邦优化,将其与分布式优化联系起来(并进行对比)。联邦优化有几个区别于典型分布式优化问题的关键属性:
  • Non-IID The training data on a given client is typically based on the usage of the mobile device by a particular user, and hence any particular user’s local dataset will not be representative of the population distribution.
  • Unbalanced Similarly, some users will make much heavier use of the service or app than others, leading to varying amounts of local training data.
  • Massively distributed We expect the number of clients participating in an optimization to be much larger than the average number of examples per client.
  • Limited communication Mobile devices are frequently offline or on slow or expensive connections.
  • 非独立同分布: 给定客户端的训练数据通常基于特定用户对移动设备的使用情况,因此任何特定用户的本地数据集都不能代表总体分布。
  • 不平衡: 同样,一些用户会比其他用户更频繁地使用服务或应用,从而导致不同数量的本地训练数据。
  • 大规模分布: 本文期望参与优化的客户端数量远远大于每个客户端的平均示例数量。
  • 有限的通信: 移动设备经常离线或连接缓慢或昂贵。
  • 不平衡会导致客户端各自的训练时间并不同,并且产生的梯度也会不同,那么如何平衡这些因素是联邦学习需要重点考虑的。
  • 有限的通信会导致在联邦学习过程中,有些客户端可能会掉线,或者因网络问题等原因没有及时发送自己的更新,那么我们在构建联邦学习模型时要将此类情况考虑进去。

We assume a synchronous update scheme that proceeds in rounds of communication. There is a fixed set of K K K clients, each with a fixed local dataset. At the beginning of each round, a random fraction C C C of clients is selected, and the server sends the current global algorithm state to each of these clients (e.g., the current model parameters). We only select a fraction of clients for efficiency, as our experiments show diminishing returns for adding more clients beyond a certain point. Each selected client then performs local computation based on the global state and its local dataset, and sends an update to the server. The server then applies these updates to its global state, and the process repeats.

  • 本文假设在通信轮中进行同步更新方案。有一组固定的K个客户端,每个客户端都有一个固定的本地数据集。

这也是目前大多数联邦学习模型都假设的情景。

  • 在每轮开始时,选择客户端的随机分数C,服务器将当前全局算法状态发送给这些客户端的每个客户端(例如,当前模型参数)。为了提高效率,本文只选择一小部分客户,因为本文的实验表明,超过某一点后,增加更多客户的回报会递减。
  • 然后,每个选定的客户端根据全局状态及其本地数据集执行本地计算,并向服务器发送更新。然后,服务器将这些更新应用于其全局状态,并重复该过程。

原文并没有说客户端发送的更新是梯度还是模型参数,但大多数情况下是梯度,因为梯度数据是较少的。

  • 对于优化问题,本文假设在非凸神经网络下,满足下式:
    eq1
  • 对于机器学习问题,我们通常取 f i ( w ) = ℓ ( x i , y i ; w ) f_i(w)=\ell(x_i,y_i;w) fi(w)=(xi,yi;w) ,即 使用模型参数 w w w 对示例 ( x i ; y i ) (x_i ; y_i) (xi;yi) 所做预测的损失。我们假设有 K K K 个客户端,数据被分割在这些客户端上, P k \mathcal{P}_k Pk 是客户端 k k k 上数据点的索引集, n k = ∣ P k ∣ n_k = |\mathcal{P}_k| nk=Pk
  • 因此,可以将公式 (1) 改写为:
    eq
  • 如果数据片 P k \mathcal{P}_k Pk 是通过将训练示例均匀地随机分配给客户机而形成的,那么我们就会得到 E P k [ F k ( w ) ] = f ( w ) \mathbb{E}_{\mathcal{P}_k}[F_k(w)]=f(w) EPk[Fk(w)]=f(w) ,其中的期望值 E \mathbb{E} E 是对分配给固定客户端 k k k 的示例集的期望值。这是分布式优化算法通常采用的 独立同分布(IID) 假设;我们将这种假设不成立的情况(即 F k F_k Fk 可能是对 f f f 的一个任意糟糕的近似值)称为非独立同分布( IID) 环境 。

The FederatedAveraging Algorithm

FedAvg 是一个经典的联邦学习算法,后续的许多联邦学习模型也是和 FedAvg 进行对比,了解 FedAvg 的原理对于了解联邦学习有着重要作用。

  • 深度学习的大量成功应用几乎都依赖于随机梯度下降(SGD)的变体来进行优化。因此,本文也从 SGD 开始构建联合优化算法。
  • SGD可以简单地应用于联邦优化问题,其中每轮通信只进行一次批量梯度计算(比如在随机选择的客户端上)。这种方法在计算上是高效的,但需要非常大量的训练来产生良好的模型(例如,即使使用批归一化这样的高级方法,Ioffe和Szegedy在大小为60的minibatch上训练MNIST 50000步)。

我们首先了解什么是 FedSGD:

  • 在联邦环境中,让更多客户端参与进来几乎不需要花费多少挂钟时间,因此本文使用了大批量同步 SGD 作为基线;
  • 为了在联邦环境中应用这种方法,在每一轮选择一个 C C C(百分比) 的客户端,并计算这些客户端持有的所有数据的损失梯度。因此, C C C 控制着全局批量大小, C = 1 C = 1 C=1 对应于全批量(非随机)梯度下降。将这种基线算法称为 FederatedSGD(或 FedSGD)。

由 FedSGD ,本文引出了 FedAvg 算法:

  • 在 FedSGD 环境下,令 C = 1 C = 1 C=1 和 一个固定的学习率 η \eta η,每个客户端 k k k 计算 g k = ∇ F k ( w t ) g_k=\nabla 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} \gets w_t-\eta \sum_{k=1}^{K}\frac{n_k}{n}g_k wt+1wtηk=1Knnkgk ,其中 ∑ k = 1 K n n k g k = ∇ f ( w t ) \sum_{k=1}^{K}\frac{n}{n_k}g_k=\nabla f(w_t) k=1Knkngk=f(wt) 。该更新可等效为 ∀ k , w t + 1 k ← w t − η g k \forall k,w_{t+1}^k\gets w_t-\eta g_k k,wt+1kwtηgk ,然后 w t + 1 ← ∑ k = 1 K n n k w t + 1 k w_{t+1} \gets \sum_{k=1}^{K}\frac{n}{n_k}w_{t+1}^k wt+1k=1Knknwt+1k 。也就是说,每个客户端利用本地数据对当前模型进行一步梯度下降,然后服务器对得到的模型进行加权平均。
  • 这样编写算法后,就可以在平均操作之前多次迭代本地更新 w k ← w k − η ∇ F k ( w k ) w^k \gets w^k-\eta \nabla F_k(w^k) wkwkηFk(wk) ,从而为每个客户端增加更多计算量。我们将这种方法称为联邦平均(FederatedAveraging,或 FedAvg)。计算量由三个关键参数控制: C C C,每轮进行计算的客户端的比例; E E E,每个客户端每轮对其本地数据集进行训练的次数;以及 B B B,用于客户端更新的本地迷你批大小。
  • 我们用 B = ∞ B = \infty B= 表示整个本地数据集被视为一个迷你批。因此,在该算法族的一个端点,我们可以取 B = ∞ B = \infty B= E = 1 E = 1 E=1,这与 FedSGD 完全对应。对于拥有 n k n_k nk 个本地示例的客户端,每轮本地更新的次数为 u k = E B n k u_k = E\frac{B}{n_k} uk=EnkB ;完整的伪代码见算法 1。
    algorithm1
算法1:K个客户端用k作为索引;本地迷你批的大小为B;本地训练次数用E表示;η为学习率。
服务器执行:
	初始化全局模型$w_0$
	for each round t=1,2,... do
		m <--- max(C·K , 1) //m就是参与本次训练的客户端的数量
		S_t <-- (random set of m clients) // 从所有客户端中选择随机的 m 个组成 S_t 集合
		for each client k 属于 S_t in parallel do
			w_{t+1}^k <--- ClientUpdate(k , w_t) //客户端k在第t轮使用模型w_t进行训练并更新自己的局部模型w_{t+1}^k
		w_{t+1} <--- sum_{k=1}^{K} frac{n}{n_k} w_{t+1}^k //服务器通过平均聚合本地模型形成下一轮的全局模型

ClientUpdate(k,w): //运行在客户端k上
	B <--- (划分P_k 为B份)
	for each local epoch i from 1 to E do
		for batch b 属于 B do
			w <--- w - η 梯度(损失函数(w;b))
	return w to sever 

在这个算法中,你会发现客户端上传的是模型参数而不是梯度,这是 FedAvg的一个重要特点。这是因为FedAvg允许每个客户端在本地多次训练(由参数E控制),这意味着客户端不仅计算一次梯度,而是对模型进行多次更新。因此,上传最终的模型参数更能反映这多轮训练的结果。这样就产生了一些优点:

  • 通信效率:
    虽然乍看上去上传整个模型参数比上传梯度需要更多通信量,但FedAvg通过减少通信轮数来提高效率。多轮本地训练后再上传参数,可以大大减少总的通信次数。
  • 非凸优化:
    对于深度神经网络这样的非凸问题,直接平均参数可能比平均梯度更有效。论文中的实验表明,这种方法在实践中效果很好。
  • 灵活性:
    上传模型参数给了客户端更大的灵活性。客户端可以使用任何局部优化方法,而不仅限于梯度下降。
  • 隐私考虑:
    在某些情况下,上传模型参数可能比上传梯度泄露更少的信息about具体的训练数据。
  • 算法简洁性:
    直接平均模型参数使得服务器端的聚合操作非常简单,不需要额外的计算。

实验

  1. 实验设置
  • 数据集:
    1. MNIST: 手写数字识别
    2. CIFAR-10: 图像分类
    3. Shakespeare: 基于莎士比亚作品的语言建模
    4. 大规模下一词预测任务: 基于社交网络数据
  • 模型架构:
    1. 多层感知器 (MNIST 2NN)
    2. 卷积神经网络 (MNIST CNN 和 CIFAR-10 CNN)
    3. 字符级LSTM (Shakespeare)
    4. 词级LSTM (大规模语言模型)
  • 数据分布:
    1. IID: 数据随机均匀分布到客户端
    2. Non-IID: 数据按类别或其他特征分布到客户端
  1. 主要实验结果
  • MNIST实验:
    1. FedAvg在IID数据上比FedSGD快30-35倍
    2. 在极端Non-IID数据上仍能收敛,速度提升2.8-3.7倍
    3. 增加客户端参与比例C能提高收敛速度,特别是在Non-IID情况下
  • Shakespeare实验:
    1. 在Non-IID数据上,FedAvg比FedSGD快95倍
    2. 探究了大E值(本地训练轮数)的影响,发现过大的E值可能导致性能下降
  • CIFAR-10实验:
    1. FedAvg比标准SGD快约50倍达到相同精度
    2. 展示了FedAvg在更复杂任务上的有效性
  • 大规模语言模型实验:
    1. 使用真实世界的社交网络数据,超过50万客户端
    2. FedAvg比FedSGD快23倍达到相同精度
    3. 验证了算法在大规模实际应用中的有效性

总结

  • 联邦学习算法(FederatedAveraging,FedAvg)的主要步骤:
    1. 初始化:服务器初始化全局模型参数。
    2. 客户端选择:每轮训练,服务器随机选择一部分客户端参与。
    3. 本地训练:被选中的客户端使用本地数据对当前全局模型进行多轮训练,更新本地模型参数。
    4. 上传更新:客户端将更新后的本地模型参数上传至服务器。
    5. 模型聚合:服务器对收到的所有本地模型参数进行加权平均,更新全局模型。
    6. 迭代:重复步骤2-5直至收敛。
  • 本文主要贡献
    1. 提出了联邦学习这一新的研究方向
    2. 设计了FederatedAveraging (FedAvg)算法
    3. 进行了广泛的实验验证
  • 主要结论
    1. FedAvg大幅减少了通信轮数,提高了训练效率
    2. 在非IID数据上也能有效工作
    3. 相比集中式训练,联邦学习在保护隐私的同时取得了相近的模型性能
  • 局限性
    1. 主要关注通信效率,未深入探讨计算效率
    2. 未考虑真实世界中的一些复杂因素,如客户端可用性变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值