分布式机器学习&联邦学习论文阅读笔记(持续更新)

  • 一、开源框架
    • FedML
  • 二、数据异构问题
    • FedProx
    • Bridging Median and Mean Algorithms(NeurIPS 2020)
    • FedProto(AAAI 2022)
  • 三、边缘计算负载问题
    • FedGKT(NeurIPS 2020)
  • 四、通信量压缩
    • FetchSGD(ICML 2020)
  • 五、个性化联邦学习
    • Ditto(ICML 2021)
    • FedAMP(AAAI 2021)
    • pFedHN(ICML2021)
    • FedMeta
    • Per-FedAvg
    • FEDGEN

一、开源框架

FedML

https://github.com/FedML-AI/FedML

二、数据异构问题

FedProx

对FedAvg有两点改进。Local的损失函数加上一项Local模型与全局模型的距离,以控制局部模型与全局模型不要太过偏离,因为数据异构的情况下,局部模型可能收敛方向同全局模型发生偏移。动态调整本地的迭代次数,提高对数据异构的容忍度。
https://arxiv.org/pdf/1812.06127.pdf

Bridging Median and Mean Algorithms(NeurIPS 2020)

基于中位数的算法(SignSGD、MedianSGD)在非同构数据下优化过程中与均值存在gap,通过对传播的梯度增加噪声的方法降低这个gap,使模型更好的收敛。
https://proceedings.neurips.cc/paper/2020/file/f629ed9325990b10543ab5946c1362fb-Paper.pdf

FedProto(AAAI 2022)

联邦学习中的异构问题,除了数据的异构还有模型的异构。本文引用了prototype learning中的概念用于联邦学习,同时解决数据异构和模型异构问题。方法可以概括为如下:
client将本地数据中同一类的数据在representation layer的输出取均值得到每一个类在本地的prototype,将这个表示共享到server,server对同一个类的来自不同client的prototype进行聚合。client在训练时也要在损失函数中加入一项local prototype与global prototype的正则化项。
https://arxiv.org/abs/2105.00243

三、边缘计算负载问题

FedGKT(NeurIPS 2020)

对于大型的CNN,一般的联邦学习方法使得边缘节点承担过大的计算量,而如果使用Split Learning,传播梯度的时候会使通信承担过多的负载。本文简化边缘节点的神经网络模型,将提取出的feature周期性的转移到Server去做分类训练,同时本地还维护一个分类器。另外,还将Server和Client的分类器Softmax输出双向传递,在各自的代价函数中加入二者的KL散度项,使边缘节点和计算中心可以各自得到对方的知识
https://proceedings.neurips.cc/paper/2020/file/a1d4c20b182ad7137ab3606f0e3fc8a4-Paper.pdf

四、通信量压缩

FetchSGD(ICML 2020)

一种压缩通信量的方法。通过sketch(类似于一种哈希)将client经过多轮训练的梯度进行压缩传到Server,Server将收到的数据解压缩,并将多个Client的梯度聚合,使用top-k将模型更新传回到各个节点
https://arxiv.org/pdf/2007.07682v2.pdf

五、个性化联邦学习

Ditto(ICML 2021)

给一般的联邦学习算法增加了一个plugin,即在训练全局模型的同时,维护一个本地模型,本地模型的代价函数增加一项本地模型与全局模型的距离,为这一项配一个超参数lamda,以自适应调整本地模型与全局模型的关联程度,增加局部模型的个性化,应对恶意节点攻击
https://arxiv.org/pdf/2012.04221.pdf

FedAMP(AAAI 2021)

文章的出发点是,当多个节点的数据分布为Non-I.I.D.的时候,直接在Server训练一个全局模型是不合理的。作者提出,对于数据分布相似的节点,应该让他们进行更密切的合作,这样可以训练出更好的个性化模型。具体来说,优化目标变成了
minW{G(W):=∑i=1mFi(wi)+λ∑i<jmA(∣∣wi−wj∣∣2)}min_{W}\{\mathcal{G}(W):=\sum_{i=1}^mF_{i}(w_{i})+\lambda\sum_{i<j}^mA(||w_{i}-w_{j}||^2)\}minW{G(W):=i=1mFi(wi)+λi<jmA(wiwj2)}
A函数单调增,且为凹函数,这是一个小技巧,后面会用到。交替优化的时候先优化后一项,经过k轮优化得到一个UkU^{k}Uk,再优化G\mathcal{G}G得到各个节点的个性化模型。UkU^{k}Uk的每一列i可以视作各个模型的线性组合,且与当前节点i的模型的相似度越大,线性组合的系数就越大,原因就在于A函数的凹的性质。于是聚合的时候模型相似的节点之间相互影响就越明显。
https://arxiv.org/abs/2007.03797

pFedHN(ICML2021)

基于Hypernetwork实现个性化的联邦学习,用于解决各个节点的计算能力不平衡、数据分布异构情况下,训练不同节点的个性化模型。由于每个client模型大小不同,无法用Hypernetwork输出全部的参数,因此尝试为不同的client输出固定大小的特征提取器。Hypernetwork的输入是每个client的一个embedding。训练过程中,client独立训练若干轮后,将参数的差值作为误差项反向传播到中心的HN。HN不光将模型参数进行优化,对输入的embedding也进行优化。新加入节点后,固定HN不变而训练优化新增的embedding,以加快训练速度。
https://arxiv.org/pdf/2103.04628.pdf

FedMeta

Meta-Learning和FL的结合版本,实现client的个性化。
Meta-Learning的目标是,对于多个样本分布不同的任务,训练一个公共的模型θ\thetaθθ\thetaθ的目标是对于每个任务,在这个任务的样本下继续训练少量epoch,就能达到很好的效果。本文使用了基于MAML的几种Meta-Learning算法。
对于每个任务的样本集,按比例将其划分为Support Set和Query Set。
MAML算法是,首先在Support Set中计算θ\thetaθ的loss,计算更新后的参数存储在θt\theta_tθt中;然后在Support Set中使用模型θt\theta_tθt计算loss,并求对θ\thetaθ的梯度,然后更新θ\thetaθ(https://arxiv.org/abs/1703.03400)。
另外两种算法是对MAML的改进。Meta-SGD让inner-loop的学习率不再是常量,FOMAML则是去掉MAML中的二阶项以降低计算规模。
这样一来,FL的个性化与Meta-Learning结合起来的想法就很自然了。
Client先从Server获取模型θ\thetaθ,通过局部训练计算出θ\thetaθ在Query Set上的梯度,将梯度上传给Server;Server的动作是先选取Client,然后发送模型,等待接受梯度,更新模型。
https://arxiv.org/pdf/1802.07876.pdf

Per-FedAvg

思路与FedMeta基本类似,使用了FL的FedAvg计算框架套用了MAML的算法,更偏重于理论分析。
https://arxiv.org/abs/2002.07948

FEDGEN

在一般的基于知识蒸馏的聚合算法中,通常需要server持有一组无标签的代理数据集来辅助知识蒸馏,但是作者认为很多时候这样的要求是很难满足的。FEDGEN的方法是,让每个client共享自己的标签分布,但是不提供x,这样保证了隐私问题,server通过收集client的标签构建全局的标签分布,并且在server端训练一个生成器,根据全局标签分布和client传过来的模型生成符合全局数据分布的样本,将样本下发给client辅助他们进行训练,这些样本是携带所有client的信息的,这些信息可以更好的辅助每一个client的训练。另外,在该系统中client和server相互传输的模型只包含神经网络的最后一层,也就是预测层,一方面这提升了通信效率,另一方面这还更好的保护了隐私。
在我的另一片博客里有对FEDGEN更详细的介绍
论文阅读笔记–Data-Free Knowledge Distillation for Heterogeneous Federated Learning(FEDGEN)
https://arxiv.org/abs/2105.10056

(转载请注明出处)

分布式机器学习联邦学习论文阅读笔记(持续更新)相关推荐

  1. 联邦学习论文阅读笔记

    目录 一.前缀基础知识 二.论文笔记 A Theoretical Perspective on DP Federated MTL - preprint'20 Federated Multi-Task ...

  2. 联邦学习论文阅读一:经典FedAvg

    联邦学习论文阅读一:经典FedAvg Communication-Efficient Learning of Deep Networksfrom Decentralized Data 论文地址:htt ...

  3. 【联邦学习论文阅读】FedProx(2018)Federated Optimization in Heterogeneous Networks

    [FedProx]论文链接:https://arxiv.org/abs/1812.06127 摘要 联邦学习面临两个关键挑战:系统异构性:统计异构性.本文的FedProx可以解决联邦学习的异构性,可看 ...

  4. 联邦学习论文阅读三:ChainFL

    联邦学习论文阅读三:ChainFL Secure and Efficient Federated Learning Through Layering and Sharding Blockchain 论 ...

  5. 联邦学习论文阅读:Variational Federated Multi-Task Learning

    这篇文章是探索联邦学习的框架下的多任务学习,稍后会整理一下之前的那篇multi task learning to be continued

  6. 联邦学习-论文阅读-Incentive Mechanism for Reliable Federated Learning: A Joint Optimization Approach to Comb

    Incentive Mechanism for Reliable Federated Learning: A Joint Optimization Approach to Combining Repu ...

  7. 联邦学习-论文阅读-NDSS-FLTrust: Byzantine-robust Federated Learning via Trust Bootstrapping

    1.FLTrust: Byzantine-robust Federated Learning via Trust Bootstrapping 1.概要 拜占庭式的鲁棒联邦学习方法中没有信任的根(即不知 ...

  8. 强化学习论文阅读笔记(一)——强化学习研究综述_高阳

    强化学习研究综述_高阳 目录 强化学习研究综述_高阳 一.与其他机器学习对比 二.分类 三.最优搜索型强化学习算法 四.经验强化型强化学习算法 五.部分感知 六.函数估计 七.多Agent强化学习 八 ...

  9. 经典论文阅读记录-持续更新

    2019独角兽企业重金招聘Python工程师标准>>> 1. On Designing and Deploying Internet-Scale Services(2015/05/2 ...

  10. [论文阅读笔记52]深度学习实体关系抽取研究综述

    来源:软件学报 2019 1.摘要: 围绕有监督和远程监督两个领域,系统总结了近几年来中外学者基于深度学习的实体关系 抽取研究进展,并对未来可能的研究方向进行了探讨和展望. 2.经典的实体关系抽取方法 ...

最新文章

  1. 内联脚本被视为是有害的_数据类被认为有害
  2. Vss服务端用户存在,但客户端登陆不进去
  3. 琢越网用户使用手册和反馈
  4. 用screenfetch显示带有酷炫Linux标志的基本硬件信息
  5. TransactionScrope 2
  6. [python]python pandas 模块
  7. [Vue] : Vue实例的声明周期
  8. AI: 2021 年人工智能前沿科技报告(更新中……)
  9. go语言实战学习笔记
  10. 屏幕录像专家出现未注册字样
  11. Snipaste截图软件安装、使用详细教程(附下载链接)
  12. Python调用百度API进行动植物识别
  13. layui时间日期控件laydate设置默认值,并且结束时间大于开始时间
  14. stm32实现心电监测-原理图单片机程序C#上位机程序
  15. Win11找不到gpedit.msc怎么办?Win11无法打开gpedit.msc解决教程
  16. Android2.3.4陀螺仪移植
  17. 《MATLAB》应用 之 用 MATLAB 将 视频 转换为 可调分辨率 的图片,badapple 视频转图片
  18. python二重积分_用python求一重积分和二重积分的例子
  19. 七年IT生涯的经验教训
  20. 姚芊羽整容过度脸变残 娱乐圈假面女神大盘点

热门文章

  1. 机器学习算法工程师面试问题汇总(持续更新)
  2. AI算法工程师面试题
  3. 【Windows10_1809 + Ubuntu_18.04】+【SSD + HDD】双硬盘双系统装机心得分享
  4. Unity UI框架思路与实现
  5. 怎么计算机械需要的电机,比方说一个90kw的电机它的最大电流应该是多少?应该用多少平方的铜线?怎么计算呀?...
  6. basler相机参数简要中文说明_Basler相机全部型号参数及特点
  7. stm32f4 USB项目开发详解
  8. JS日期时间格式化函数
  9. 想在原有的基础上,再次添加一些阿里图标的进坑
  10. mysql 双机备份_Mysql双机热备份