Federated Learning with Non-IID Data
文章链接:https://arxiv.org/pdf/1806.00582.pdf
1、概述
问题:
联邦学习环境下clinet数据的Non-IID对最终得到模型的性能会产生较大负面影响
解决方法: 使用全局共享数据
2、Non-IID情况下的FedAvg
实验 证明在non-IID的情况下FedAvg在三中数据集上会有性能下降
数据集:MNIST,CIFAR-10,Speech commands datasets
clinets:10个
数据集划分:
IID:将数据集打乱每个clinet平均分到1/10
non-IID:每个节点数据量相同,每个节点分到一类数据/每个节点分到两类数据
实验结果

3、Non-IID数据会带来权重差异
权重差异定义:

wFedAvg:联邦学习训练得到的模型
wSGD:汇集所有数据后利用SGD训练出来的模型
节点数据non-IID越严重则权重差异越大

数学证明权重差异来自clinet的non-IID数据分布,证明细节见附录1
第T轮通信以后的权重差异如下式:

结论1 :联邦学习m轮通信权重差异仅受:第m-1轮权重差异(每轮通信本地进行T轮迭代) 以及当前节点数据分布与所有节点总体数据分布差异 的影响
结论2 :联邦学习不同节点如果不从相同的初始参数w开始,则即便节点之间数据分股为iid,则还是会存在权重差异导致模型准确性下降
(公式第一项为主导因素)
结论3 :当联邦学习开始于同样的初始参数w时,不同节点之间数据的Non-IID占权重差异的主导因素。EMD距离可以用还衡量公式第二项。(公式第二项为主导因素)
实验验证
(1)实验准备:
数据集:MNIST,CIFAR-10,KWS
数据集划分:
(2)权重差异 vs EMD

对于一个EMD距离生成五种不同的clint数据分布并计算权重差异:

纵轴展示了初始权重相同,进行一轮通信以后(权重差异不受上一轮影响),每个EMD下五种分布的权重差异均值与标准差。随着EMD的增加,网络不同层之间权重差异逐渐加大
(3)测试准确率 vs EMD

EMD超过一定阈值以后会带来测试性能的明显下降

不同EMD对应的五种clinet数据分布最终准确率标准差都较小,说明同一EMD下具体的不同数据分布对模型准确率影响不大(可能与数据生成方式有关)
4、解决方案
动机
利用EMD超过一定阈值会带来明显性能下降的特点,利用数据共享的方法,提出一小部分共享的数据集来降低不同clinet数据分布的EMD。
server预先生成一部分在各类之间平均分布的共享数据
共享数据预训练至60%准确率的参数作为初始参数w0
数据共享策略

实验数据集:CIFAR-10
数据划分:训练数据:40000(每个节点分到一类);
G:类间平均分布的共享数据
参数belta:共享数据集G与训练数据的比例
保留数据H:10000,用于构造10个不同的G,使belt取值范围为2.5%-25%
client数量:10
通信轮数:300
训练流程:
1、利用G进行预训练,使模型精度达到60%左右停止
2、选取G种alpha比例的数据平均分给各个节点,进行联邦训练至模型收敛
结论:
(1)测试准确率与G之间的权衡如图7a :alpha=1
belta = 10%时模型准确率由44%提高到74.12%
(2)belta = 10% 与 20% 的情况下alpha 与EMD的权衡如图7b
随着alpha的增加测试准确率上升,alpha在0-50%时效果比较明显
每个clinet只需要5%的total data数量的全局数据就能带来30%性能提升(40000*10%*50% = 200, 每个clinet有4000个数据)
总结:
利用共享数据的方式能够较为有效解决数据Non-IID的问题,但也存在一些问题:
1、当总体数据量较大时5%的总体数据数量会带来clinet存储与传输的额外开销
2、引入共享数据以后整体模型表现提高,但是否可能会对模型的特异性造成影响
