本文主要是联邦学习的入门级笔记,主要参考了论文Advances and Open Problems in Federated Learning和微众银行的联邦学习白皮书,笔者作为初次接触该领域的小白,对感觉必要的知识做一个总结和记录。
本文首发于我的个人博客
原文请点击这里!!!!!
定义
联邦学习(Federated Learning简称FL)是一种机器学习设置,其中多个实体(客户端)在中央服务器或服务提供商的协调下协作解决机器学习问题。每个客户的原始数据都存储在本地,并且不会交换或转移;从而代替了用于立即聚合的有针对性的更新用于实现学习目标。
分类(Yang分类):
- 横向联邦学习
- 纵向联邦学习
- 迁移联邦学习
另一种分类方式:
- 跨设备:Gboard移动硬盘
- 跨孤岛:医疗数据联邦学习
典型过程
- 客户端选择: 服务器从一组符合资格要求的客户端中采样。例如,为避免影响设备用户,移动电话可能仅在未计量的wi-fi连接上插入且处于空闲状态时才签入服务器。
- 传播: 选定的客户端从服务器下载当前模型权重和训练程序。
- 客户端计算: 每个选定的设备都通过执行训练程序在本地计算对模型的更新,例如,可以在本地数据上运行SGD(如联邦平均)。
- 聚合: 服务器收集设备更新的汇总。为了提高效率,一旦有足够数量的设备报告了结果,用户就可以在此处放散手。此阶段也是许多其他技术的集成点,这些技术将在后面讨论,可能包括:用于增加隐私的安全聚合,为了通信效率而对聚合进行有损压缩,以及针对差分隐私的噪声添加和更新限幅。
- 模型选择: 服务器根据从参与当前轮次的客户端计算出的聚合更新在本地更新共享模型。
客户端计算,聚合和模型更新阶段的分离并不是对联邦学习的一个严格要求,并且确实排除了某些种类的算法,例如异步SGD,其中每个客户端的更新在应用之前都会立即应用于模型与其他客户端的更新进行汇总。这样的异步方法可以简化系统设计的某些方面,并且从优化角度来看也是有益的(尽管这一点尚有争议)。
联邦学习面临的挑战
1.非独立同分布的数据
2.有限通信带宽
3.不可靠和有限的设备
什么是Non-IID非独立同分布数据?
下面列举了数据偏离同分布的一些常见方式,即对于不用的客户端 i i i和客户端 j j j的分布不同 P i ≠ P j P_i \not= P_j Pi=Pj。我们将 P i ( x , y ) P_i(x,y) Pi(x,y)重写为 P i ( y ∣ x ) P i ( x ) P_i(y|x)P_i(x) P