本发明涉及云计算、边缘计算领域,具体地指一种边缘计算下针对数据与设备异构性加速联邦学习的方法。
技术背景
在边缘计算(multi-accessedgecomputing,mec)架构下进行联邦学习(federatedlearning,fl)训练模型(如图1所示),由于参与训练的终端设备自身的硬件特性存在差异性(cpu、内存、网络连接和电源等不同),使得这些终端设备具有异构特性;此外,这些终端设备产生的用户数据形式多样化,导致收集的用户数据集不均衡,即数据集大小不一、数据集的非独立同分布(non-iid)程度不同,使得数据集同样具有异构特性。上述的这些异构特性会不同程度地影响联邦学习训练过程:例如,在利用同步轮次的联邦学习框架中,较慢的训练设备会制约整体的学习进度;具体来讲,某些参与训练的终端设备电池电量不充足,则其可能在训练中因为供能不足而掉线,从而拖累整体训练进度;或在计算资源(cpu,gpu等)不足的情况下,训练设备需要更长时间训练模型,使得整个训练过程所花费的时间也变长。此外,使用非独立同分布(non-iid)程度较高的数据集会给模型训练带来偏差,导致最终模型的准确性下降。
技术实现要素:
本发明的目的在于克服现有技术的不足,而提出一种边缘计算下针对数据与设备异构性加速联邦学习的方法,通过选择拥有非独立同分布程度较低的数据集的终端设备参与训练,提升模型的准确性。通过上传终端设备上数据集的一部分至边缘节点服务器,让终端设备与边缘服务器协同训练,从而降低终端设备的能耗、缓解终端设备的算力不足。
为实现上述目的,本发明所设计的一种边缘计算下针对数据与设备异构性加速联邦学习的方法,其特殊之处在于,所述方法是:对终端设备进行选择,将所述终端设备上的数据集的进行随机取样上传至边缘节点服务器,进行终端设备和边缘节点服务器协同训练,对模型进行聚合与更新,直到模型达到要求的过程。
优选地,所述对终端设备进行选择的步骤包括:
s11:对于每个边缘节点r(r∈ve)采用随机取样法选择数量为nr的终端设备组成每个区域的待选集合cr(r∈ve),其中ve是边缘节点集合;
s12:将全局模型分发至每个边缘节点r,然后再分发给待选的终端设备i(i∈cr);
s13:在每个边缘节点r的边缘服务器上,使用人工设置的辅助数据集
s14:计算每个边缘节点r内终端设备i的测试模型参数
s15:在集合
优选地,所述步骤s14中权重差异
优选地,所述进行终端设备和边缘节点服务器协同训练的具体步骤为:
s21:对于每个边缘节点r中的设备k(k∈sr)拥有数据集
s22:边缘节点r的边缘服务器收到所有来自终端设备的数据集
优选地,所述步骤21)中剩余数据集
优选地,所述步骤22)中数据集
优选地,所述对模型进行聚合与更新的具体步骤如下:
s31:每个边缘节点r中的终端设备k(k∈sr),其中sr为最终参与训练的设备集合,将模型参数
s32:每个边缘节点r的边缘服务器负责接收所有终端设备上传的模型参数
s33:每个边缘节点r将该区域模型参数wr(t)上传至云中心,以进行全局模型的聚合;
s34:云中心收到所有区域模型参数后,执行全局模型聚合,得到全局模型参数w(t)。
s35:重复步骤s1~s34,直到模型收敛或者达到预设的精度要求。
优选地,所述区域模型参数wr(t)的计算方法为:
其中,β表示可调参数,范围为0≤β≤1;
优选地,所述全局模型参数w(t)的计算方法为:
ve是边缘节点集合,dr表示边缘节点r中所有参与训练的终端设备数据集总和;d是所有区域数据集总和。
本发明的有益效果为:
1、本发明通过对终端设备进行选择,选取拥有非独立同分布(non-iid)程度更低的数据集的终端设备参与联邦学习训练,同时利用边缘服务器的计算能力来训练部分模型,达到终端与边缘协同计算。
2、本发明通过上传终端设备上数据集的一部分至边缘节点服务器,让终端设备与边缘服务器协同训练,从而降低终端设备的能耗、缓解终端设备的算力不足。
3、相比于随机选择终端设备、由终端设备全部承担训练能耗与计算资源,本发明有效地提高了联邦学习的效率,降低了终端设备的能耗,提高了模型准确性。
附图说明
图1为mec架构下联邦学习示意图。
图2为本发明的框架示意图。
图3为试验1的结果示意图。
图4为试验2的结果示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细描述。
如图2所示,本发明所提出的一种边缘计算下针对数据与设备异构性加速联邦学习的方法,是对终端设备进行选择,将所述终端设备上的数据集的进行随机取样上传至边缘节点服务器,进行终端设备和边缘节点服务器协同训练,对模型进行聚合与更新,直到模型达到要求的过程。具体步骤包括:
步骤s1,对参与训练的终端设备进行选择;包括以下具体步骤:
s11:对于每个边缘节点r(r∈ve),其中ve是边缘节点集合,采用随机取样法选择数量为nr的终端设备组成每个区域的待选集合cr(r∈ve)。
s12:将全局模型分发至每个边缘节点r,然后再分发给待选的终端设备i(i∈cr)。
s13:在每个边缘节点r,使用人工设置的适量标准的独立同分布(iid)的辅助数据集
s14:计算每个边缘节点r内终端设备i的测试模型参数
s15:在集合
步骤s2,终端设备与边缘节点服务器协同训练,具体步骤如下:
s21:每个边缘节点r中的设备k(k∈sr)拥有数据集
s22:边缘节点r的边缘服务器收到所有来自终端设备的数据集
步骤s3,模型聚合与更新,具体步骤如下:
s31:每个边缘节点r中的终端设备k(k∈sr),将其模型参数
s32:每个边缘节点r的边缘服务器负责接收所有终端设备上传的模型参数
s33:每一个边缘节点r将该区域模型参数wr(t)上传至云中心,以进行全局模型的聚合。
s34:云中心收到所有区域模型参数后,执行全局模型聚合,得到全局模型参数w(t)。
s35:重复步骤s1~s34,直到模型收敛或者达到预先设置的精度要求。
上述步骤s32中,区域模型wr(t)的计算公式如下:
其中,β是可调参数,范围为0≤β≤1;
dr表示边缘节点r中所有参与训练的终端设备数据集总和,计算公式如下:
上述步骤s34中,全局模型参数w(t)的计算公式如下:
其中,ve是边缘节点集合,dr表示边缘节点r中所有参与训练的终端设备数据集总和,d是所有区域数据集总和,d的计算公式如下:
本实施例通过两个实验来试验所提出方案的部分策略。实验软硬件环境包括:(1)硬件:操作系统windows64位、内存32gb、cpu32核;(2)软件:pytorch、python开发环境。实验数据使用mnist数据集,该数据集是一个手写体数据集,共有6万个训练样本和1万个测试样本。
实验1使用non-iid数据的联邦平均方法
为了尽可能模拟实际场景,在该实验中,设置通信的轮次为50次,设置100个客户端,对训练样本非均匀采样,同时各个客户端上的数据分布和数量都不同;随机选择10个客户端参与训练,这些客户端使用多线程模拟,客户端每次在本地训练的回合为5次;模型使用简单的卷积神经网络(cnn)。服务端对客户端上传的模型参数做加权平均,权重与客户端的数据量正相关。训练时间为实验结果如图3所示。最终模型的准确率为65.9%。
实验2基于客户端选择的联邦学习
为了简化实验,又体现客户端选择的重要性,在该实验1的基础上,做了如下修改:随机选择20个客户端作为待选集合。这些客户端使用多线程模拟;同时再设置1个边缘节点,负责训练辅助模型,仍然使用多线程模拟;经过再次选择策略,从待选集合选出10个客户端最终参与训练。客户端数据不进行卸载,β设置为0.5;实验结果如图4所示。最终模型的准确率为84.6%。
通过实验可以看出,通过对终端设备进行选择,选取拥有非独立同分布程度更低的数据集的终端设备参与联邦学习训练,能够提高模型的准确率。
最后需要说明的是,以上具体实施方式仅用以说明本专利技术方案而非限制,尽管参照较佳实施例对本专利进行了详细说明,本领域的普通技术人员应当理解,可以对本专利的技术方案进行修改或者等同替换,而不脱离本专利技术方案的精神和范围,其均应涵盖在本专利的权利要求范围当中。
1.一种边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述方法是:对终端设备进行选择,将所述终端设备上的数据集的进行随机取样上传至边缘节点服务器,进行终端设备和边缘节点服务器协同训练,对模型进行聚合与更新,直到模型达到要求的过程。
2.根据权利要求1所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述对终端设备进行选择的步骤包括:
s11:对于每个边缘节点r(r∈ve)采用随机取样法选择数量为nr的终端设备组成每个区域的待选集合cr(r∈ve),其中ve是边缘节点集合;
s12:将全局模型分发至每个边缘节点r,然后再分发给待选的终端设备i(i∈cr);
s13:在每个边缘节点r的边缘服务器上,使用人工设置的辅助数据集
s14:计算每个边缘节点r内终端设备i的测试模型参数
s15:在集合
3.根据权利要求2所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述步骤s14中权重差异
4.根据权利要求1所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述进行终端设备和边缘节点服务器协同训练的具体步骤为:
s21:对于每个边缘节点r中的设备k(k∈sr)拥有数据集
s22:边缘节点r的边缘服务器收到所有来自终端设备的数据集
5.根据权利要求4所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述步骤21)中剩余数据集
6.根据权利要求4述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述步骤22)中数据集
7.根据权利要求1所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述对模型进行聚合与更新的具体步骤如下:
s31:每个边缘节点r中的终端设备k(k∈sr),其中sr为最终参与训练的设备集合,将模型参数
s32:每个边缘节点r的边缘服务器负责接收所有终端设备上传的模型参数
s33:每个边缘节点r将该区域模型参数wr(t)上传至云中心,以进行全局模型的聚合;
s34:云中心收到所有区域模型参数后,执行全局模型聚合,得到全局模型参数w(t)。
s35:重复步骤s1~s34,直到模型收敛或者达到预设的精度要求。
8.根据权利要求7所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述区域模型参数wr(t)的计算方法为:
其中,β表示可调参数,范围为0≤β≤1;
9.根据权利要求7所述的边缘计算下针对数据与设备异构性加速联邦学习的方法,其特征在于:所述全局模型参数w(t)的计算方法为:
ve是边缘节点集合,dr表示边缘节点r中所有参与训练的终端设备数据集总和;d是所有区域数据集总和。
技术总结