联邦学习论文笔记——一种面向边缘计算的高效异步联邦学习机制

主要贡献

提出了一种 高效 异步 的联邦学习机制EAFLM
(Efficient Asynchronous Fedrated Learning Mechanism)
其中:
高效的实现目标主要是实现通信压缩,文章在前人Chen等人提出的LAG自适应压缩的工作基础上,提出了一种阈值自适应的压缩算法。文章中的通信压缩属于“通信稀疏化”的范畴。
异步方面的工作是实现了各个边缘设备真正的异步训练,允许节点在任何学习过程中加入或退出联邦学习。提出了双重权重的方法以解决异步学习带来的性能降低问题。

机制结构

联邦学习机制
联邦学习机制示意图
EAFLM机制框架示意图
EAFML机制框架
其中:
自适应阈值梯度压缩模块包含:自适应阈值计算子模块、梯度通信压缩子模块
异步联邦学习模块 横跨参数服务器Level和边缘节点Level,其包含:位于边缘节点上的 学习状态监控子模块 和 位于参数服务器上的 双重权重计算子模块、梯度修正子模块、参数更新子模块。

公式符号说明

公式符号说明
第k轮参数服务器(更新后)的参数
节点i基于第k轮的参数计算出的k轮的梯度
M中所有节点在k轮计算出的梯度总和
所有边缘节点的集合M
M中总的元素个数
所有节点的样本总数
节点i的样本总数
节点i当前纪元的样本权重
节点i当前纪元的参数权重

阈值自适应梯度压缩

文章提出的通信压缩方法属于“通信稀疏化”的范畴,基于Chen等人提出的LAG自适应压缩的工作基础之上。
首先定义在某一轮次中,与参数服务器发生通信的节点为“勤奋节点hard work”,而被忽略的节点为“懒惰节点lazy”,记勤奋节点集合MˇH,懒惰节点集合MˇL,因此
M=MˇL+MˇH
梯度可以表示为:1
懒惰节点集合MˇL满足:2
设置更新参数的优化算法为 梯度下降算法gradient descent,即:3
(其中α为学习率)
(3)带入(2):
4
其中在这里插入图片描述
,由均值不等式【
a 2+ b2 >= (a+b)2 / 2
在这里插入图片描述

得,在这里插入图片描述
在这里插入图片描述
(理解:(5)是经过均值不等式推导,因此右侧部分是大于左侧 ||·||2 部分这是必然成立的,而(4)是定义推导而出的“定义为lazy节点的条件式”,因此 (4)右侧 >= (5)右侧 如果成立,(4)右侧 >=左侧部分 则必然成立。然后(4)右侧 >= (5)右侧等式的基础上两边各除以(MˇL)2 可得(6)。因此满足(6)一定可以满足(2)。)

由于集合 MˇL的总数无法事先获取, 所以为了简化问题, 我们引入比例系数β来衡量集合MˇL的节点总数, 即mˇL=βm。(比例系数其实就是所有节点中lazy节点数量所占的比例) 整理式(6) 可得:
在这里插入图片描述
而因为通常难以获得θkk-1,且学习过程中的参数逐渐趋于平滑,因此取近似:
在这里插入图片描述
(D=1 即说明,θkk-1 取上一轮(k-1轮)的参数差异)

此时式(7)变为:
在这里插入图片描述
此时,本式作为节点设备在上传梯度之前进行梯度检查的自检表达式

  • 满足:即满足式(2),说明当前节点在本轮训练中作为lazy节点,跳过本轮通信,本地累计梯度。
  • 不满足:上传梯度。

双重权限修正的异步联邦机制

异步联邦学习可能有很多因素导致:加入学习的时间、节点的算力不同、梯度压缩、外部因素 等
在这里插入图片描述

权重分为两个权重:样本权重、参数权重

样本权重在这里插入图片描述

参数权重:受梯度的目标参数与当前全参数数据在时间上的相近程度所影响
在这里插入图片描述

定义优化过程中的 陈旧度
在这里插入图片描述
进一步定义参数权重:
在这里插入图片描述

在使用边缘节点提交的梯度对全局模型优化之前,需要对梯度进行 双重权重修正,在此之后才可继续参与全局模型的优化:
在这里插入图片描述

实验验证

通信压缩实验

在前面的文章可以知道,对于本文的实验,参数权重中的数值α取0.9,阈值自适应梯度压缩中的D取1。
实验配置:
在这里插入图片描述
评价指标:
准确率Acc(指Top-1 Accuracy):越高越好
压缩率CR:越低压缩程度越强
压缩平衡指数CBI:表示梯度压缩综合效果
实验结果:
在这里插入图片描述
(β是前文中的比例系数,其实就是所有节点中lazy节点数量所占的比例)

图表:在这里插入图片描述
EAFLM与LAG性能对比:
在这里插入图片描述

异步联邦机制实验

在这里插入图片描述

综合实验(通信压缩+异步联邦)

在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是车联网异步联邦学习程序的实现步骤: 1. 数据准备:每个设备首先需要准备自己的数据集。为了避免数据泄露,每个设备只需要将自己的数据集的一部分发送给中央服务器,而不是全部数据。 2. 模型初始化:中央服务器需要初始化一个神经网络模型。这个模型可以是一个预训练的模型,也可以是一个随机初始化的模型。 3. 模型分发:中央服务器将初始化的模型分发给每个设备。每个设备将使用这个模型进行训练。 4. 异步训练:每个设备使用自己的数据集对模型进行训练。由于每个设备的数据集不同,因此每个设备训练出来的模型也会不同。此外,每个设备可以使用不同的训练算法和超参数进行训练。 5. 模型聚合:中央服务器定期收集每个设备的模型并进行聚合。聚合算法可以是简单的平均或更复杂的加权平均。聚合后的模型将成为新的全局模型。 6. 模型更新:中央服务器将更新后的全局模型发送给每个设备。这个新的模型将成为每个设备的新的起点,用于下一轮的训练。 7. 重复步骤4-6:每个设备使用新的全局模型进行训练,直到模型收敛或达到预定的训练轮数。 通过这种方式,车联网中的每个设备都可以使用自己的数据进行训练,并且每个设备的训练可以异步进行。在模型聚合的过程中,中央服务器将所有设备的模型进行了融合,从而产生了更好的模型。这种方法可以提高模型的准确性,并且可以保护每个设备的隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值