文献阅读-01(FedAvg)


论文链接

Communication-Efficient Learning of Deep Networks from Decentralized Data

题目

从去中心化数据中进行深度网络的高效通信学习

摘要

现代移动设备可以访问适合学习模型的大量数据,这反过来又可以极大地改善设备上的用户体验。例如,语言模型可以改进语音识别和文本输入,图像模型可以自动选择好的照片。然而,这些丰富的数据通常对隐私敏感、数量庞大或两者兼而有之,这可能会妨碍使用传统方法记录到数据中心并在那里进行训练。我们提倡一种替代方案,将训练数据分布在移动设备上,并通过聚合本地计算的更新来学习共享模型。我们将这种去中心化方法称为**“联邦学习”。我们提出了一种基于迭代模型平均的深度网络联邦学习的实用方法**,并考虑五种不同的模型架构和四个数据集进行了广泛的实证评估。这些实验表明,该方法对于不平衡和非独立同分布数据分布具有鲁棒性,这是该设置的定义特征。通信成本是主要限制因素,与同步随机梯度下降相比,我们发现所需的通信轮次减少了 10-100 倍

伪代码流程

在这里插入图片描述
C表示客户的分数,范围[0,1],即选择多少个客户端参与训练

nk表示客户端k的本地样本数量

Pk为客户端k上数据点的索引集,Pk大小为nk

∇l(w;b)表示计算损失函数的梯度

算法场景及其优缺点

优点:

  1. 隐私保护: FedAvg 允许在本地设备上进行模型训练,而不需要将原始数据发送到中央服务器。这样可以保护用户的隐私,因为原始数据不会离开其所在的设备。
  2. 降低通信成本: 相比于将所有数据传输到中央服务器进行训练,FedAvg 只需要传输模型参数的更新,这大大减少了通信的数据量,降低了通信成本。
  3. 节省能源: 由于大部分计算是在本地设备上进行的,而不是集中在中央服务器上,因此在一定程度上节省了能源消耗。
  4. 适用于分布式数据: FedAvg 可以在分布式数据的情况下工作,因为每个本地设备可以在本地使用自己的数据进行训练。

缺点:

  1. 通信开销: 即使只传输模型参数的更新,但在每次迭代中仍然需要将更新的参数传输回中央服务器,这可能会产生较大的通信开销,特别是在连接不稳定或带宽有限的情况下。

  2. 不适用于所有场景: FedAvg 对于每个设备上的数据分布相对均匀的情况效果较好。如果某些设备上的数据偏差较大,可能会导致模型在整体上的表现下降。

  3. 模型同步: 在联合学习中,设备之间的网络连接可能不稳定,这可能导致模型同步出现问题。某些设备可能由于网络连接的问题而导致更新无法及时传输,从而影响整体模型的收敛速度。

  4. 安全性考量: 虽然 FedAvg 本身可以保护用户数据的隐私,但在实际部署中,仍然需要考虑安全性方面的问题,比如如何防止恶意用户篡改模型参数或攻击联合学习系统。

    FedAvg优点是简单、低通信成本,缺点是当数据异构(非独立同分布时),会遭到“客户端偏移”,不稳定且收敛缓慢。

小知识补充

IID:独立同分布。指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布;

非IID:非独立同分布,non-iid,其实有三种:不独立但同分布独立不同分布不独立也不同分布

(1)考虑随机变量XB(n,p),那么随机变量Y=(n-X)B(n,p)和X就是不独立但同分布

(2)独立不同分布,就是随机变量相互独立,且分别服从不同的分布,比如X.Y是毫无关系的独立变量,XB(n,p)而YP(λ)

(3) 不独立不同分布,就是随机变量间有关系,但是又分别服从不同的分布,如:随机变量X+Y=n,但X和Y属于不同分布族

未来方向Or工作

将联邦学习FedAvg算法结合差分隐私、安全多方计算,可以提供较强的隐私安全的保证。

实验过程

​ 实验设置:模型:多层感知机MLP、CNN、LSTM

​ 数据集:MNIST 、CIFAR-10、莎士比亚数据集

​ 对比算法:联邦平均(FedAvg)和隐私保护深度学习(PPDL)

​ 实验类型:从客户端分数C、通信轮数、Epoch数三方面对FedAvg进行评估

代码:github连接:https://github.com/dzh321/FedAvg01.git

由于语言模型LSTM是一个规模比较大的,在这个代码中没有涉及到,主要是CNN和MLP,这里的非独立同分布数据划分的方式比较一般,没有用到狄利克雷分布,但是也可以作为一个自己划分非独立同分布数据的一种方式。

这部分代码我还有两个问题:等我解决了在更新下。

问题1:问啥用python命令行运行,不出现保存的文件;

问题2:损失为啥还会有负值呢?(如果你们可以解决,欢迎评论,一起讨论学习!)

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值