AI是靠数据来喂的,而且是大量优质数据。
基于大量被掌握的数据不足以支撑ai实现、不允许粗暴交换、不愿意贡献价值三点,导致了现在大量存在的数据孤岛,以及隐私保护问题,联邦学习(特殊的分布式学习)应运而生。
本质:联邦学习本质上是一种分布式机器学习技术,或机器学习框架。
目标:联邦学习的目标是在保证数据隐私安全及合法合规的基础上,实现共同建模,提升AI模型的效果。
特点:
- 客户端不稳定
- 数据在客户端上是数据异构(Non-IID)的
- 每轮只有部分客户端参加
- 负载不平衡
- 高昂的通信代价
三类:横向联邦学习、纵向联邦学习和联邦迁移学习。
横向联邦学习的本质是样本的联合(database:C=A+B),适用于参与者间业态相同但触达客户不同,即特征重叠多,用户重叠少时的场景,比如不同地区的银行间,他们的业务相似(特征相似),但用户不同(样本不同)。
【属性相同,拼接元组-上升数量】
纵向联邦学习的本质是特征的联合,适用于用户重叠多,特征重叠少的场景,比如同一地区的商超和银行,他们触达的用户都为该地区的居民(样本相同),但业务不同(特征不同)。
【元组相同,拼接属性-上升维度】
当参与者间特征和样本重叠都很少时可以考虑使用联邦迁移学习,如不同地区的银行和商超间的联合。主要适用于以深度神经网络为基模型的场景。【迁移学习的核心是,找到源领域和目标领域之间的相似性】
数据异构(non-iid)/非独立同分布(Non-IID)数据
- 独立:每次抽样之间没有关系,不会相互影响。比如你在随便丢骰子,每次抛到的数字是几就是几,是独立的。但如果我要求你要两次抛到的数字和大于等于9,第一次和第二次抛就不独立,因为他们相互关联。
- 同分布:你丢骰子,每次丢骰子到任何一个数字的概率都是1/6,是相等概率。或者说,在概率空间里面,你不论进行几次抽样实验,他们都服从同样一个分布。又比如说,现在一个大小为pi的圆放在大小为4的正方形,你丢一根针进去,结果分为在圆里面和圆外面。每次丢进这个圆的概率都是pi/4,你重复+∞次会无限接近于这个pi/4.
联邦学习中的数据异构性问题主要是由参与训练的各客户端的数据虽独立分布但不服从同一采样方法(Non-IID)所导致的,这一问题也导致模型精度的严重下降。如何缓解Non-IID带来的不利影响目前仍是一个开放性的问题。【容易产生“客户漂移”(client-drift)的现象,这会导致系统的收敛不稳定或者缓慢】
FedAvg实际上就是通过增加本地更新的次数,来减少通信次数(每个客户端在本地多更新几次再进行一次和server的通信。FedAvg算法在IID数据和Non-IID数据下都是收敛的,然后FedAvg的收敛速度受限于数据集的分布,在Non-IID数据集中,FedAvg的收敛速度缓慢。