【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

这篇具有很好参考价值的文章主要介绍了【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SCAFFOLD(ICML-2020):SCAFFOLD: Stochastic Controlled Averaging for Federated Learning
FedPD:https://arxiv.org/abs/2005.11418
FedBN(ICLR 2021):FEDBN: FEDERATED LEARNING ON NON-IID FEATURES VIA LOCAL BATCH NORMALIZATION

杂七杂八

1…梯度实际上是对用户数据进行函数变换,在训练数据时携带信息,可能有泄露梯度隐私的风险。

  • least squares regression(最小二乘回归): m i n w ∑ i = 1 n l ( w , x i , y i ) ,   where   l ( w , x i , y i ) = 1 2 ( x i T w − y i ) 2 \underset{w}{min}\sum_{i=1}^{n}l(w,x_i,y_i),\ \texttt{where} \ l(w,x_i,y_i)=\frac{1}{2}(x_i^Tw-y_i)^2 wmini=1nl(w,xi,yi), where l(w,xi,yi)=21(xiTwyi)2

  • stochastic gradient(随机梯度): g i = ∂   l ( w , x i , y i ) ∂ w = ( x i T w − y i ) x i g_i=\frac{\partial \ l(w,x_i,y_i)}{\partial w}=(x_i^Tw-y_i)x_i gi=w l(w,xi,yi)=(xiTwyi)xi

2…通信代价

  • 影响通信代价的几个因素:参数的维度、梯度的维度;网络延迟、带宽;每次参与通信的客户端个数

  • 减少通信代价的方式:减少单次传输代价(参数压缩、量化、只传输重要梯度);减少通信次数;部分设备参与通讯(节点调度)

  • 判断通信代价的高低,更加可信的指标是达到收敛时的总通信数据量(总通信数据量 = 通信次数 * 单次传输的数据量)

SCAFFOLD

  • 证明FedAvg方法,在数据是异构的(non-iid)时会出现client-drift(客户漂移),导致不稳定和缓慢的收敛;
  • 提出了SCAFFOLD算法,通过增加一个额外的参数 control variate(使用控制变量,减小方差),来修正 client-drift 问题;
  • 用严格的数学理论证明了该算法是收敛的;
  • 实验部分证明了这种算法是不受客户端数据异构性(数据分布)的影响,并且可以加快收敛速度,从而显著减少通信次数。

一、算法核心

更新过程 优缺
SGD 在本地更新一次就进行一次通信 路径与server理想的更新路径相近,但是通信代价大
FedAvg 在本地更新k次才进行一次通信 由于Non-IID,路径与server理想的更新路径发生了偏移,即client-drift,导致收敛速度缓慢
SCAFFOLD 在本地更新k次才进行一次通信 增加了修正项,使每次本地更新被拉回到理想的更新路径附近,收敛速度较快


用图来进行讲解:

  • 左边为FedAvg出现client-drift的分析(两个客户端),其中橙色方块为客户端损失函数的最优,蓝色方块为全局最优,蓝色线为客户端的更新方向,绿色线为中心服务器的更新方向。可以看出,全局最优不是客户端损失函数最优的平均,两者间的差距造成了client-drift问题(绿色线和空白方格间的距离);
  • 右边为SCAFFOLD在单客户端上的更新步骤,其中红色线为(c-ci)修正。可以看出,使用本文的修正,可以将更新方向从指向局部最优修正到指向全局最优

【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

算法理解:

  • SCAFFOLD算法主要是计算客户端和服务器端的差异来进行修正(不受客户抽样的影响),相比FedAvg只是加了一个修正项 c − c i c-c_i cci
  • 可以有效地解决本地更新时的client-drift,让每个客户端在本地更新的时候“看到”其他客户端更新的信息(不是真的看到,而是利用客户端数据的相似性进行猜测),算法中不仅要更新参数,还要更新这种猜测;
  • 可以克服客户端异质性(异质性视为不同客户端之间更新中引入的“客户端方差”,需尽力减少)。

【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

SCAFFOLD FedAvg
客户端 i 模型局部更新k次: x ← x + η g l S l ∑ i ∈ S ( y i − x ) x \leftarrow x+\frac{\eta_{g}}{\textup{l}\mathcal{S}\textup{l}} \sum_{i \in \mathcal{S}}\left(y_{i}-x\right) xx+lSlηgiS(yix) 控制变量局部更新(额外传递本地数据来计算中心服务器上的梯度 或 重用之前计算的梯度;前者更稳定,后者计算成本低且通常够用,用后者): c i + ← {  Option I.  g i ( x ) ,  or   Option II.  c i − c + 1 K η l ( x − y i ) \boldsymbol{c}_{i}^{+} \leftarrow \begin{cases}\text { Option I. } & g_{i}(\boldsymbol{x}), \text { or } \\ \text { Option II. } & \boldsymbol{c}_{i}-\boldsymbol{c}+\frac{1}{K_{η_l}}\left(\boldsymbol{x}-\boldsymbol{y}_{i}\right)\end{cases} ci+{ Option I.  Option II. gi(x), or cic+Kηl1(xyi) 局部更新k次( η l η_l ηl为局部步长): y i ← y i − η l g i ( y i ) y_i ← y_i − η_lg_i(y_i) yiyiηlgi(yi)
中心服务器 聚合更新: { x ← x + η g l S l ∑ i ∈ S ( y i − x ) c ← c + 1 N ∑ i ∈ S ( c i + − c i ) \begin{cases} \boldsymbol{x} \leftarrow \boldsymbol{x}+\frac{\eta_{g}}{\textup{l}\mathcal{S}\textup{l}} \sum_{i \in \mathcal{S}}\left(\boldsymbol{y}_{i}-\boldsymbol{x}\right) \\ \boldsymbol{c} \leftarrow \boldsymbol{c}+\frac{1}{N} \sum_{i \in \mathcal{S}}\left(\boldsymbol{c}_{i}^{+}-\boldsymbol{c}_{i}\right)\end{cases} {xx+lSlηgiS(yix)cc+N1iS(ci+ci) 聚合更新( η g η_g ηg为全局步长, y i − x y_i − x yix为客户端 i 的更新): x ← x + η g l S l ∑ i ∈ S ( y i − x ) x ← x + \frac{η_g}{\textup{l}\mathcal{S}\textup{l}} \sum_{i∈\mathcal{S}}(y_i − x) xx+lSlηgiS(yix)

【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

二、实验

主要发现:在所有参数范围内,SCAFFOLD始终优于SGD和FedAvg;局部更新次数的好处/坏处,取决于算法和客户数据的相似性。

模拟数据:
【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD
K为局部更新次数,G可衡量梯度差异(从左到右异质性增大);可看出提出的算法在数据异质性程度改变时,具有更好的适应性。

EMNIST数据:
【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD衡量使用更多局部更新的好处/坏处;纵向增加局部更新次数,横向增加客户相似性,通过轮数反应收敛速度;可看出效果上 SCAFFOLD > FedAvg > FedProx【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD
左图研究了客户端抽样弹性,纵向改变客户端抽样比例,横向改变客户相似性;可看出在抽样客户端数目及异质性相同时,SCAFFOLD有更好表现;

右图展示了三种算法的最佳测试精度,使用2层全连接神经网络(非凸)训练1k轮,本地方法每轮5个epoch(25步),20%的客户每轮取样;可看出SCAFFOLD的准确率最高,SGD的准确率最低,SGD基本不受相似度的影响,而其他两种算法会随着客户端的相似度而提高。

三、总结

优点:文章来源地址https://www.toymoban.com/news/detail-419121.html

  • FedAvg可能会因不同client的梯度差异,收敛速度受到严重影响(即使使用全梯度且全部设备参与每轮通信),甚至可能比SGD慢;
  • 而SCAFFOLD对本地更新策略进行改进,利用control variates克服client drift,有较快的收敛速度,且不受client数据分布的影响,能有效减少通信次数;
  • 已证明SCAFFOLD其至少和SGD一样快,且对任意异构数据收敛;可以利用客户端的相似性,进一步减少通信;相对不受客户抽样带来的方差减少率的影响。

不足:

  • 每次与Server通信,不仅要传模型的参数,还要传control variates(梯度和参数向量维度一样),增加了单次通信代价(2倍);
  • 要求每个客户端是stateful的,因此只适用于少量的客户端(thousands级别);
  • 使用上一轮的梯度状态去猜测下一轮梯度的可能方向,这要求所有损失函数是平滑的。

思考(参考他人博客):

  • 能否只用最后一个梯度去更新 c i c_i ci
  • 用总的通信量来评估模型优劣可能更有可信度;
  • c i c_i ci在第3轮被选中,但下次可能在第100轮才被选中,这时的 c i c_i ci存的还是第3轮被选中时参数所在位置的梯度,是否会造成误差。

FedPD

FedBN

在局部模型中加入批量归一化层(BN),解决联邦学习数据异构性中 feature shift 情况(之前很多文章都是研究label shift或client shift)

一、算法核心

y为标签,x为特征,feature shift定义为以下情况:

  • covariate shift:所有客户的Pi(y|x)是相同的,不同客户之间的边缘分布Pi(x)是不同的;
  • concept shift:不同客户的条件分布Pi(x|y)不同,但P(y)相同

例如:医学成像中不同的扫描仪/传感器,自动驾驶中不同的环境分布(公路和城市),使得本地客户端的样本分布不同于其他客户端。

与FedAvg类似,FedBN也进行局部更新和模型聚合;不同的是,FedBN假设局部模型有批量归一化层(BN),且BN的参数不参与聚合。思想是直接把BN层的所有参数保留在本地,而把其他层的参数用于全局聚合,待服务端返回全局模型后,再与本地的BN参数结合构成本地模型,这在保护数据隐私的同时也实现了模型个性化设计。
【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

二、实验

使用benchmark和real-world datasets两种数据进行实验,在卷积层和全连接层后面加入BN层。

benchmark:SVHN, USPS, MNIST-M, MNIST, SynthDigits这五个来自不同域且带有feature shift性质的数据集(不同域的数据具有异构的性质,但具有相同的标签和标签分布);为控制无关因素,使BN的作用在实验中更加易于观察,对这五个数据集进行预处理(如客户之间样本数量不平衡问题)

【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD分析收敛速度。与收敛性分析的结论相同,聚合模型在每个数据集(也就是每个客户端)上的收敛曲线显示,FedBN的收敛比FedAvg更快更光滑。
【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD从左到右依次研究了局部模型训练迭代次数、本地数据集大小、统计异质性对准确率的影响:不同迭代次数(E)下,FedBN和FedAvg测试集上的准确率曲线显示,在各种E上FedBN的准确率稳定地超过FedAvg;每个客户端持有的Non-IID数据越少,FedBN的优越性越明显;更多的客户端对应更小的异构性,在所有异质性水平上,FedBN都比FedAvg实现了更高的测试精度。

【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

比较不同算法的最高准确度:FedBN实现了最高的精度;FedBN对SVHN数据集的性能最为显著,SVHN的图像外观与其他图像有很大的不同。
【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD

三、总结

优点:

  • 在feature shift场景下,FedBN的收敛比FedAvg更快更光滑;
  • 有望与其他方法和框架,例如客户端选择策略,聚合策略等等相结合;
  • BN本身的优化版本可以尝试应用于此。

到了这里,关于【联邦学习论文阅读】常用算法理解(SCAFFOLD、FedPD、FedBN)-目前仅SCAFFOLD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《横向联邦学习中 PCA差分隐私数据发布算法》论文算法原理笔记

    论文地址:https://www.arocmag.com/article/01-2022-01-041.html 论文摘要      为了让不同组织在保护本地敏感数据和降维后发布数据隐私的前提下,联合使用 PCA进行降维和数据发布,提出 横向联邦 PCA差分隐私数据发布算法 。引入随机种子联合协商方案,在各站点之间以较少通信代

    2024年02月08日
    浏览(37)
  • 【论文阅读】StyleganV1 算法理解

    听过Stylegan的人都觉得他很强!目前stylegan已经发展到第三代v3了,但是为了搞清思想,我还是从v1开始了解,以下是我个人的一些理解。 传统GAN采用端对端的输入输出,可以尽可能使用训练集数据的信息,但是会出现两个问题。 仅保持一种输入,纵使网络有再强的能力,也可

    2024年02月12日
    浏览(50)
  • 【阅读笔记】联邦学习实战——联邦学习视觉案例

    FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇

    2023年04月08日
    浏览(41)
  • 深入理解联邦学习——纵向联邦学习

    分类目录:《深入理解联邦学习》总目录 假设进行联邦学习的数据提供方为 A A A 和 B B B ,第三方为 C C C ,则纵向联邦学习步骤如下: 在系统级做加密样本对齐,在企业感知层面不会暴露非交叉用户 对齐样本进行模型加密训练: 由第三方 C C C 向 A A A 和 B B B 发送公钥,用来

    2024年02月09日
    浏览(43)
  • 深入理解联邦学习——联邦学习的分类

    分类目录:《深入理解联邦学习》总目录 在实际中,孤岛数据具有不同分布特点,根据这些特点,我们可以提出相对应的联邦学习方案。下面,我们将以孤岛数据的分布特点为依据对联邦学习进行分类。 考虑有多个数据拥有方,每个数据拥有方各自所持有的数据集 D i D_i D

    2024年02月09日
    浏览(40)
  • 强化学习论文阅读(二)SAC算法

    原文传递:SAC算法原文 作者指出深度强化学习样本效率低下的原因是:策略学习,TRPO、PPO、A3C每次策略更新都需要收集样本。学习有效的策略需要的步骤和样本数量伴随着任务的复杂性呈现增加的趋势。Off-Policy为了重复使用过去产生的经验值,但是在传统的策略公式当中不

    2024年02月06日
    浏览(44)
  • 对比学习论文阅读:CoCLR算法笔记

    标题:Self-supervised Co-training for Video Representation Learning 会议:NIPS2020 论文地址:https://dl.acm.org/doi/abs/10.5555/3495724.3496201 官方代码:https://www.robots.ox.ac.uk/~vgg/research/CoCLR/ 作者单位:牛津大学 本文的研究目标是纯视觉的自监督视频表征学习。我们做出了以下贡献:①我们研究了在

    2024年02月03日
    浏览(60)
  • 关于边缘联邦学习的研究方向以及现状综述阅读笔记

    预准备知识: 什么是联邦学习? 联邦学习非常适合边缘计算应用程序,可以利用 边缘服务器计算能力 以及在广泛 分散的边缘设备上收集数据 。 为了建立联邦边缘学习系统,需要应对多种技术挑战。 联邦学习(Federated Learning):技术角度的理解 综述原文链接: A survey of

    2024年02月02日
    浏览(48)
  • 【阅读笔记】联邦学习实战——用FATE从零实现横向逻辑回归

    FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇

    2023年04月26日
    浏览(63)
  • 【论文阅读】视频理解系列论文精读

    视频理解论文串讲(上)【论文精读】 我们研究了多种扩展CNN在时域上的连接性的方法,以利用局部的时空信息,并建议采用多分辨率、凹陷的架构作为加速训练的一种有希望的方式。 在图像领域积极成果的鼓舞下,我们研究了CNN在大规模视频分类中的表现,在这种情况下

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包