FedAvg
《Communication-Efficient Learning of Deep Networks from Decentralized Data》
从分散数据中进行深度网络的通信高效学习
为了解决分布式的大量数据由于隐私性,不容易使用常规方法进行训练,论文提倡一种替代方案,将训练数据分布在移动的设备上,并通过聚合本地计算的更新来学习共享模型。我们将这种分散的方法称为联邦学习。
使用5种模型和4种数据集进行评估,该方法对不平衡和非独立同分布的数据( unbalanced and non-IID data )具有鲁棒性与同步随机梯度下降(synchronized stochastic gradient descent)相比,此方法所需的通信轮次减少了10-100倍。
鲁棒是 Robust 的音译,也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的能力
这种学习技术允许用户集体获得从丰富的数据中训练的共享模型的好处,而无需集中存储它。每个客户端都有一个本地训练数据集,它永远不会上传到服务器。相反,每个客户端计算对服务器维护的当前全局模型的更新,并且仅传递此更新
这种方法的主要优点是将模型训练与直接访问原始训练数据的需求解耦。但仍然需要对协调训练的服务器有一定的信任。然而,对于可以根据每个客户端上的可用数据指定训练目标的应用程序,联邦学习可以通过将攻击面限制在设备上而不是设备和云之间,这样显著降低了隐私和安全风险。
联邦学习的理想问题
联邦学习的理想问题具有以下属性:
1)在来自移动的设备的真实数据上进行训练,与在数据中心通常可用的代理数据上进行训练相比,具有明显的优势
2)这些数据是隐私敏感的,或者数据量很大(与模型的大小相比),因此最好不要将其记录到数据中心,纯粹用于模型训练(服务于集中收集原则)
3)对于监督任务,数据上的标签(label)可以从用户交互中自然推断出来
(注:FedAvg的监督是有标签的监督学习)
Federated Optimization
Federated Optimization(联邦优化)特点:
1)Non-iid
给定客户端上的训练数据通常基于特定用户对移动终端的使用,因此任何特定用户的本地数据集将不代表群体分布
2)Unbalanced
一些用户会比其他用户更频繁地使用服务或应用程序,导致本地训练数据的数量不同
3)Massively distributed
我们期望参与优化的客户端数量远大于每个客户端的平均示例数量。
4)Limited communication
移动的设备经常离线或连接速度慢或连接费用高。
联邦学习过程
有一组固定的K个客户端,每个客户端都有一个固定的本地数据集。在每轮开始时,选择客户端的随机部分C,并且服务器将当前全局算法状态发送到每一个客户端(例如,当前模型参数)。我们只选择一小部分客户端来提高效率
因为我们的实验表明,超过一定程度,增加更多客户端的回报会减少。
然后,每个选定的客户端基于全局状态及其本地数据集执行本地计算,并向服务器发送更新。然后,服务器将这些更新应用于其全局状态,并重复该过程。
成本问题
在数据中心优化中,通信成本相对较小,计算成本占主导地位,最近的重点是使用GPU来降低这些成本
相比之下,在联邦优化中,通信成本占主导地位--我们通常会受到1 MB/s或更少的上传带宽的限制
此外,我们预计每个客户端每天只会参与少量的更新轮。另一方面,由于任何单个设备上的数据集与总数据集大小相比都很小,并且现代智能手机具有相对快速的处理器(包括GPU),因此与许多模型类型的通信成本相比,计算基本上是免费的。
因此,我们的目标是使用额外的计算,以减少训练模型所需的通信轮数。
增加额外计算的方法:
1)increased parallelism
增加并行性,我们使用更多的客户端在每个通信回合之间独立工作;
2)increased computation on each client
每个客户端在每个通信回合之间执行更复杂的计算,而不是执行类似梯度计算的简单计算。
The FederatedAveraging Algorithm
最近大量成功的深度学习应用几乎完全依赖于随机梯度下降(SGD)的变体进行优化
事实上,许多进步可以理解为调整模型的结构(以及损失函数),使其更适合于通过简单的基于梯度的方法进行优化。因此,我们很自然地从SGD开始构建联邦优化算法。
SGD可以简单地应用于联邦优化问题,其中每轮通信完成一次批量梯度计算(比如在随机选择的客户端上),虽然这种方法在计算上非常高效,但是需要很多训练轮次才能获得好的模型
在 fedrated setting 中,更多客户端的 wall-clock time 成本很小,所以我们使用 large-batch synchronous SGD(大批量同步SGD)
应用于 fedrated setting,在每一轮训练从客户端挑选 C 部分(C是一个分数),并计算这些客户端持有的所有数据的损失梯度,因此,C控制全局批量大小,C = 1对应于全批量(非随机)梯度下降。我们将此算法称为 FederatedSGD(或FedSGD)
Partial Variance Reduction improves Non-Convex Federated learning on heterogeneous data
部分方差缩小改进了异构数据上的非凸联合学习
联邦学习中的数据异构性问题主要是由参与训练的各客户端的数据虽独立分布但不服从同一采样方法(Non-IID)所导致的,这一问题也导致模型精度的严重下降。如何缓解Non-IID带来的不利影响目前仍是一个开放性的问题。