Communication-Efficient Learning of Deep Networks from Decentralized Data阅读笔记

Communication-Efficient Learning of Deep Networks from Decentralized Data

最近阅读了这篇论文,应该是联邦学习的开山之作,比较基础也是很经典的算法。我比较菜,不太懂的参数量我都去查阅了一些资料,后面贴了资料链接。

算法

提出的是FedAvg算法(联邦平均算法)
Communication-Efficient Learning of Deep Networks from Decentralized Data阅读笔记_第1张图片
其中,最关键的三个参数为
C:每次参与联邦聚合的客户端的数量占总客户端数量的比例(C=1则为全部参与)
B:客户端本地训练的batchsize(B=∞则表示batchsize是整个本地数据集)
E:两次联邦学习之间的本地训练次数

什么是batch?

minibatch等的区别?
η:学习率
梯度下降法是什么?

FedAvg算法步骤(自己理解的):
1.中心服务器初始化一个训练模型w0
2.选择m个客户端,将初始化模型传递给这些客户端
3.被选中的客户端用这个初始化模型开始做本地训练,得到新的模型参数
4.将新的模型参数上传给中心服务器,服务器聚合收到的模型得到更新的模型又传回给被选中的客户端,进行下来一轮聚合更新

试验

1.进行了一个图像分类

MNIST 数据集
两种数据划分(IID & non-IID)
IID:将数据打乱,100个clients,平均每个clients有600个样本;
non-IID:按照数字标签对数据进行排序,然后划分为200个大小为300的碎片,然后给100个clients分配2个碎片(每人600条数据,且最多有两个数字标签的数据)

模型:2NN,CNN。

2.进行了一个语言建模

数据集:用莎士比亚作品构建的
数据划分:为每个剧中的每个角色构造一个client数据集(至少两行),共1146个clients;每个client有80%的训练行数据和20%的测试行数据(训练集中有3,564,579个字符,测试集中有870,014个字符),该数据是不平衡的,许多角色只有几行,而有些角色有很多行;每个剧本按时间顺序将行分为训练集与测试集,而不是随机划分样本。
使用相同的训练/测试拆分,构造平衡的IID版本的数据集,也有1146个客户端。

模型:堆叠的字符级LSTM语言模型(读取一行中的每个字符后,预测下一个字符)

3.进行了一个图像分类
数据集:CIFAR-10数据集,该数据集由10类32x32图像组成,包含三个RGB通道。有5万个训练样例和1万个测试样例,该文将它们分成100个客户端,每个客户端包含500个训练样例和100个测试样例;由于这些数据没有一个自然的用户分区,虑了平衡和IID设置。
模型:模型架构取自TensorFlow教程,由两个卷积层、两个完全连接层和一个线性转换层组成,用于生成总计约106个参数的对数。

性能参数

实验一研究了C和B对两个模型的影响,达到目标测试集精度所需要的通信轮次。
实验二研究了B和E对通信轮次的影响。
实验三研究了η的影响。
在三个模型中对比了FedAvg和FedSGD能收敛到的精度水平。
进行了泛化性能分析。
什么是泛化能力?

你可能感兴趣的:(算法,深度学习)