一、引言
联邦学习是最近两年比较热门的技术,结合隐语项目的开源,我们团队最近主要做联邦学习的研究和落地,将在「隐语小剧场」陆续分享出我们对联邦学习技术的思考、解决实际应问题的方法等内容,如:“联邦学习之通信优化”、 “联邦学习之Non-IID问题”、 “隐私保护图神经网络”,敬请期待!本篇主要介绍联邦学习之基本方法。
二、基本方法
自Google于2016年提出了联邦学习的概念【1】,最初的联邦学习指水平联邦学习,即client的数据为水平切分数据(特征空间相同,样本空间不同),如图1所示;此外还有垂直联邦学习,即client的数据为垂直切分数据(样本空间相同,特征空间不同),与水平联邦学习的方法就较大差异【2】。一般来说,如无特殊说明,联邦学习(例如FedAVG)均指水平联邦学习。
图1水平联邦学习和垂直联邦学习
2.1 原理
联邦机器学习的数据分布在各个client中。以非凸神经网络模型为例,假设模型为w,损失函数为f,样本总量为n,在中心化模型中,求解模型参数即为:
相应的,在联邦学习中,假设共有k个client,每个client的数据集为Pk,基于client之间数据分布为独立同分布(IID)的假设可得【3】:EPk[Fk(w)]=f(w),即:
因此:
进而可得:
综上可得,联邦学习中,对分布式数据进行训练而得到的聚合模型等价于对聚合数据进行训练所得到的中心化模型。
2.2 FedAVG算法
图2联邦学习算法示意图
FedAVG是联邦学习中最基本的算法之一【1】,clients在服务器server的协助下进行训练,所有的clients和server具有相同的模型结构,如图2所示。如Algorithm1所示,假设联邦训练中共有K个clients,B为client本地训练的batchsize,C为参与联邦聚合时clients的比例,E为两次联邦聚合之间client本地训练的次数,具体过程如下:
(1)在训练开始前server首先进行模型初始化得到初始模型,client将本地数据按照batch_size=B进行数据划分。
(2)联邦训练开始之后,(2)在第t+1次联邦训练迭代过程中,clientk从server获取最新的模型参数,利用划分好的数据集和SGD优化器训练E个epoch,得到更新后的本地模型
(3)Clientk将更新后的模型权重上传至server,server对K个clients采样C*K个,得到采样集合,并对中的client模型权重进行加权平均得到server模型:
(4)重复上述步骤(2)和(3),直到完成相应的迭代次数。
三、分析和讨论
3.1 FedSGD VS FedAVG
在Google的论文中还介绍了一种FedAVG的特殊形式——FedSGD。在FedSGD算法中,client将本地的训练集整体作为一个batch进行训练,且client每进行一次模型更新就将模型上传至服务器进行一次模型聚合。综上所述,当C=E=1,B=∞时的FedAVG算法即为FedSGD。
3.2 模型聚合VS梯度聚合
在原始的FedAVG算法中,client与server之间传输的为模型参数,如果传输模型梯度,也可以得到相似的效果。clientk本地训练得到模型梯度(SGDoptimizer),并上传至server端进行加权聚合得到整体梯度:
更新server端模型
将下传至各个client端。
对于FedSGD来说,模型聚合与梯度聚合的结果完全相同;对于FedAVG来说,C、E有一个不为1时,模型聚合与梯度聚合的结果会有一定的差别,具体分析如下:
假设client上传间隔ΔT=C∗E,对于FedAVG_Weight模型(模型聚合),在T+ΔT迭代中,server端更新后的模型为
公式1:
对于FedAVG_Gradient模型(梯度聚合),在T+ΔT迭代中,server端更新后的模型:
公式2:
比较公式(1)和(2)可得:
3.3 隐私泄漏
在client上传模型参数或者梯度时,直接上传明文的方式会造成数据隐私泄漏,server可以根据明文的模型参数或者梯度对原始数据进行攻击【4】。对此可以采用同态加密、秘密分享、差分隐私、TEE等方法对明文数据进行加密,从而实现一定程度上的数据安全聚合,具体方法「隐语的小剧场」公众号将在后续陆续发布相关文章,敬请关注!
四、Reference
【1】KonečnýJ, McMahan H B, Yu F X, et al. Federated learning: Strategies forimproving communication efficiency[J]. arXiv preprintarXiv:1610.05492, 2016.
【2】YangQ, Liu Y, Chen T, et al. Federated machine learning: Concept andapplications[J]. ACM Transactions on Intelligent Systems andTechnology (TIST), 2019, 10(2): 1-19.
【3】ZhaoY, Li M, Lai L, et al. Federated learning with non-iid data[J]. arXivpreprint arXiv:1806.00582, 2018.
【4】KairouzP, McMahan H B, Avent B, et al. Advances and open problems infederated learning[J]. arXiv preprint arXiv:1912.04977, 2019.