联邦学习(Federated learning)—— 去中心化联邦&中心化联邦

提出联邦学习的目的:解决数据孤立问题和安全隐私问题。

联邦学习的主要思想:基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。(是一种分布式机器学习方法)

联邦学习架构

联邦学习的架构分为两种,一种是中心化联邦(客户端/服务器)架构,一种是去中心化联邦(对等计算)架构。

应用场景:

  • 针对联合多方用户的联邦学习场景,一般采用的是客户端/服务器架构,企业作为服务器,起着协调全局模型的作用;

  • 而针对联合多家面临数据孤岛困境的企业进行模型训练的场景,一般可以采用对等架构,因为难以从多家企业中选出进行协调的服务器方。

中心化联邦(FedAvg)

在正式开始训练之前,中央服务器先将初始模型分发给各参与方,然后各参与方根据本地数据集分别对所得模型进行训练。接着,各参与方将本地训练得到的模型参数加密上传至中央服务器。中央服务器对所有模型梯度进行聚合,再将聚合后的全局模型参数加密传回至各参与方。

论文地址https://proceedings.mlr.press/v54/mcmahan17a/mcmahan17a.pdf
源码地址https://github.com/shaoxiongji/federated-learning

问题:

1、系统异构System Heterogeneity:各client的计算能力、存储能力、通信能力各不相同,等待落后的局部模型会拖慢整个系统的训练速度,但抛弃这些落后的client会影响全局模型的精度;
2、统计异构Statistical Heterogeneity:不同client间的数据是Non-IID的,此外还有数据unbalanced的情况。

去中心化联邦(FedProx)

当参与方对原始模型训练后,需要将本地模型参数加密传输给其余参与联合训练的数据持有方。因此,假设本次联合训练有n个参与方,则每个参与方至少需要传输2(n-1)次加密模型参数。

论文地址《Federated Optimization in Heterogeneous Networks》
源码地址

官方实现(tensorflow)https://github.com/litian96/FedProx
几个pytorch实现:https://github.com/ki-ljl/FedProx-PyTorchhttps://github.com/rruisong/pytorch_federated_learning

总:针对FedAvg的不足,提出了FedProx算法,该算法能很好地处理异构性,且具有理论保障。在实验中,FedProx能比FedAvg更健壮地收敛,且在高异构地环境下,FedProx比FedAvg有更稳定和准确地收敛,平均提高22%的绝对测试精度

参考:

简单理解什么叫联邦学习(全)-CSDN博客

终于有人把联邦学习讲明白了-CSDN博客

详解FedProx:FedAvg的改进版 Federated optimization in heterogeneous networks_fedprox引用-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值