Decentralized Federated Learning: A Segmented Gossip Approach
背景
该篇文章从gossip协议中获得启发,旨在设计一个去中心化的联邦训练算法
Gossip协议
概要
gossip协议又称epidemic协议,是基于流行病传播方式的节点或者进程之间交换信息的协议,在分布式系统中被广泛使用,经常被用来确保网络中所有节点的数据一样。我们可以利用gossip协议的这个特性来完成传统FL中的upload和download过程,达到取代中央服务器的作用
协议执行过程
gossp过程由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议
具体过程:
- 种子节点周期性地散播消息
- 被感染节点随机选择N个邻接节点散播消息【假定fan-out(扇出)设置为6,每次最多往6个节点散播】
- 节点只接收消息不反馈结果
- 每次散播消息都选择尚未发送过的节点进行散播
- 收到消息的节点不再往发送节点散播:A -> B,那么B进行散播的时候,不再发给 A
协议的通信方式
节点之间的通信方式主要有三种:
- Push:发起信息交换的节点 A 随机选择联系节点 B,并向其发送自己的信息,节点 B 在收到信息后更新比自己新的数据
- Pull:发起信息交换的节点 A 随机选择联系节点 B,并从对方获取信息
- Push&Pull:发起信息交换的节点 A 向选择的节点 B 发送信息,同时从对方获取数据,用于更新自己的本地数据
Segmented Gossip Aggregation
如果将传统gossip照搬到FL中来,每次两个节点之间将模型作为消息传播会造成严重的通信瓶颈。为了解决这个问题,作者对节点上的模型进行分段,然后每次每两个节点之间传输模型的时候只传输其中的一部分模型,这样子可以将通信开销分摊到多个通信链路上
Segmented Pulling
假设模型被分段为SSS个片段:
W=(W[1],W[2],...,W[S])W = (W[1],W[2],...,W[S]) W=(W[1],W[2],...,W[S])
对于每一个片段lll,一个节点在进行pull操作的时候会选择一个peer节点jlj_ljl然后拉取其片段lll对应的模型片段Wjl[l]W_{j_l}[l]Wjl[l],当一个节点拉取了SSS个模型片段的时候,这些片段组合成的模型可以写作:
W′=(Wj1[1],Wj2[2],...,Wjl[S])W' = (W_{j_1}[1],W_{j_2}[2],...,W_{j_l}[S]) W′=(Wj1[1],Wj2[2],...,Wjl[S])
如下图所示:
Model Replica
一个节点可以对随机选取RRR个peer节点发去pull请求,总共发起R×SR\times SR×S个pull请求,然后对这些片段进行模型的聚合,如下图所示:
Segmented Aggregation
假设一个节点的RRR个peer节点的RRR个mixed model为W1′,W2′,...,WR′W'_1,W'_2,...,W'_RW1′,W2′,...,WR′。对于每一个模型片段lll来说,我们有RRR个mixed model和一个local model需要聚合。令PlP_lPl表示对应片段的节点集合,DjD_jDj表示节点上的数据集,那么对于模型片段lll的聚合方式为:
W~[l]=∑j∈Pl∣Dj∣Wj[l]∑j∈Pl∣Dj∣\widetilde{W}[l] = \frac{\sum_{j \in P_l}|D_j|W_j[l]}{\sum_{j \in P_l}|D_j|} W[l]=∑j∈Pl∣Dj∣∑j∈Pl∣Dj∣Wj[l]
因为gossip协议是一个最终一致性协议,因此最后所有节点上的模型都是一样的
算法流程
整个算法流程如下:
- Local Update:每个节点用本地数据训练最新拉取之后聚合得到的模型,得到训练之后的新模型
- Segments Pulling:每个节点随机选择RRR个peer节点,然后随机发送S×RS\times RS×R个pull请求到其他的peer节点
- Segments Sending:当一个节点收到pull请求的时候,会返回训练好的模型片段
- Model Aggregation:当一个节点收齐R×SR\times SR×S个模型片段时,便对这些模型进行聚合得到新的模型
训练的流程图如下:
总结
这片文章所讲述的去中心化FL主要有两个核心点:
- gossip协议:使用gossip协议来完成模型的聚合,并通过传染病传播的形式来完成各个节点的“共识”,即最后使得每个节点上的模型相同
- segmentation:如果每次都传输完整的模型,由于通信的瓶颈很容易造成明显的延迟,文章的思想是将模型分段,然后将整个模型的开销分散到多个链路上去,可以提高系统的响应速度,但是总的通信开销并没有减少
改论文所使用的方法虽然确实可以实现去中心化的联邦,但是会大大增大通信的开销。从总体上看,我觉得还是能带来一些不错的启发性思想
Decentralized Federated Learning: A Segmented Gossip Approach相关推荐
- A Blockchain-based Decentralized Federated Learning Framework wth Committee Consensus
A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus 基于区块链的具有委员会共识 ...
- 联邦学习-论文阅读-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 ...
- Blockchain Assisted Decentralized Federated Learning 阅读笔记 TPDS’2022
Introduction 区块链可以用于取代联邦学习中的中心聚合服务器 目前的区块链联邦学习中的区块链和参与联邦学习的用户独立,相当于服务器换成了一条区块链,也会有隐私泄漏的风险 目前的区块链联邦学习 ...
- Decentralized Federated Learning Preserves Model and Data Privacy
背景 今天介绍的还是一篇关于去中心化联邦的论文,这篇论文与之前的区别在于并不是从网络的协议入手,而是利用了迁移学习中的知识蒸馏方法来实现去中心化.这种方法虽然创新性不是很足,但是也许可以与其他架构结合 ...
- A Blockchain-Based Decentralized Federated Learning Framework with Committee Consensus
本文简易框架demo源码 背景 问题定义 在联邦学习场景中,客户端通过交换模型梯度或更新后的模型参数,不暴露私人数据,从而合作训练一个共享的全局模型.但是容易存在恶意攻击的行为,分别是恶意客户端和中央 ...
- 【论文笔记】Personalized Federated Learning with Theoretical Guarantees: A MAML Approach
Personalized Federated Learning with Theoretical Guarantees: A Model-Agnostic Meta-Learning Approach ...
- 论文阅读:HybridAlpha: An Efficient Approach for Privacy-Preserving Federated Learning
论文名字 HybridAlpha: An Efficient Approach for Privacy-Preserving Federated Learning 来源 会议 the 12th ACM ...
- 2.Paper小结——《Privacy-preserving blockchain-based federated learning for traffic flow prediction》
题目: 基于区块链的基于隐私保护的交通流量预测的联邦学习 0.Abstract: 交通流量预测已成为智能交通系统的重要组成部分.然而,现有的基于集中式机器学习的交通流量预测方法需要收集原始数据以进行模 ...
- 论文阅读 Local Differential Privacy-Based Federated Learning for Internet of Things
标题:Local Differential Privacy-Based Federated Learning for Internet of Things 期刊: IEEE Internet of T ...
最新文章
- vivo7.0系统机器(亲测有效)激活Xposed框架的教程
- python测试开发自学教程-测试开发学习路线图
- update_notifier 造成nodejs进程数量增长的问题
- 在扩展Spock时输出给定值
- 【OS学习笔记】一 处理器、内存和指令
- 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型
- [CareerCup] 4.4 Create List at Each Depth of Binary Tree 二叉树的各层创建链表
- k8s核心技术-持久化存储(PV和PVC)---K8S_Google工作笔记0051
- python map方法
- 吴恩达教授机器学习课程笔记【九】- k均值聚类算法
- 《JAVA并发编程实战》,分享PDF高清版
- 【1】Python 视频文字识别提取 - Mp4转换成Mp3
- 论PRINCE2认证的优势是什么?
- 传智黑马java基础学习——day14
- SDL Trados外部审阅无法正常导入并显示修订的问题
- FPGA学习笔记06——数电基础知识
- 关于面试技巧和简历写法的一些总结
- ZOJ - 3939
- java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
- java 带t日期格式转换_自我整理:java 日期转换
热门文章
- linux没有网卡装置,基于Linux的虚拟网卡实现方法、装置、设备及介质与流程
- 西安电子科技大学研究生计算机专业王宇平教授学生就业岗位,西安电子科技大学计算机学院硕导介绍:王宇平...
- dsh - Distributed shell, or dancer's shell
- 【PP-18】定义成本核算变式——数量结构控制参数
- git 更新代码到本地
- 美研究团队开发出手机测试新型肺炎方案
- 用IDEA打包springboot项目报错:--- maven-compiler-plugin:3.8.1:compile (default-compile) @ springboot_homewor
- 2018版中国行政区代码和名称JSON
- 接入微信电子发票java_接入微信电子发票流程步骤
- 人工智能“杀死”资本主义