基于计算资源逻辑分层的联邦学习通信优化方法及系统

专利检索2022-05-11  15



1.本发明属于联邦机器学习领域,涉及一种基于计算资源逻辑分层的联邦学习通信优化方法及系统。


背景技术:

2.随着科学技术的飞速发展,终端设备(如智能手机,可穿戴设备等)的使用量急剧增长。使用智能设备已成为人们生活不可或缺的一部分,然而,由终端设备所产生的大量数据为训练机器学习模型提供了巨大支撑。传统的机器学习模型训练通常采用基于云中心的方法,它需要终端设备上传所收集的所有本地数据至云中心,并由云中心集中完成推理模型的训练。但由于基于云训练的方式会造成用户隐私信息的泄露,导致越来越多的本地用户不愿共享其本地所搜集的数据参与模型的训练。因此,为保护用户个人隐私信息同时得到可用的机器学习模型,一种分布式的隐私保护人工智能框架-联邦学习应运而生。联邦学习可以使得在保护用户隐私的前提下,所有终端设备协作完成全局模型的训练。在联邦学习环境中,终端用户无需上传其本地敏感数据至云中心,在每轮迭代,终端用户只需传输其本地模型更新参数(如模型更新权重)参与模型聚集。
3.然而,由于在联邦学习环境中通常涉及大量的异构设备,这些设备通常具有不同的本地计算资源,网络带宽等。因此,终端设备如何与云中心通信是联邦学习实现的一个重要挑战。目前,联邦学习的通信方式大致可以划分为两类:1)同步通信;2)异步通信。在同步通信机制中,服务器同步聚集所有上传的本地模型更新参数。然而,在实际场景中,终端设备大多资源受限或者数据异构,因此,服务器必须等待终端设备中响应最慢的终端设备参与模型聚集,这就极大地延长了联邦学习的模型训练时间,从而造成了严重的通信开销(即straggle问题)。为解决straggle问题,异步通信机制被相继提出。异步通信机制要求云中心无需等待响应最慢的终端设备,而在收到一个本地模型更新后就会聚集全局模型,这种方式极大的减少了云中心的训练等待时间,从而提高了联邦学习的通信效率。但是,现有研究大都是从全局模型更新方式的角度出发解决straggle问题,他们并没有探究引起straggle问题的本质原因,从而没有从本质上提高联邦学习的通信效率。因此,如何从本质上解决straggle问题依然是提高联邦学习通信效率需要深入研究的开放性问题。
4.事实上,终端设备资源异构是引起straggle问题的本质原因,联邦学习系统涉及大量的异构设备,这些设备通常具备不同的计算能力。而且,计算能力是决定模型训练时间最重要的因素。因此,计算能力不同是导致联邦学习通信等待的本质原因。如果我们能够使得设备间计算资源均衡,那么,联邦学习的straggle问题就可以从根本上得到解决。
5.综合所述,为弥补基于云中心训练所引起的用户敏感数据泄露问题,联邦学习应运而生。然而,由于终端设备资源异构,如何与云中心通信是联邦学习实现的重要挑战。现有同步通信机制要求云中心必须等待终端设备中响应最慢的设备参与模型聚集,极大的延长了整个模型训练时间(straggle问题);而异步通信机制要求云中心收到一个本地模型更新后就聚集全局模型,而无需等待响应最慢的终端设备。现有异步通信机制虽然从模型更
新参数的聚集方式上进行了改进,在一定程度上减少了模型训练的等待时间,但他们并没有探索引起straggle问题的本质原因,也就没有从根本上改善联邦学习的通信效率。而终端设备资源异构是引起straggle问题的本质原因,因此,为更高效的联邦学习通信,需充分地对本地计算资源异构性进行合理调节,从本质上减少资源的异构性,从而达到提高联邦学习训练速度的目的。


技术实现要素:

6.有鉴于此,本发明的目的在于提供一种基于计算资源逻辑分层的联邦学习通信优化方法及系统,用于解决联邦学习技术中,由于计算资源异构,云中心需长时间等待计算最慢的终端设备上传本地模型更新所导致的高通信代价问题。
7.为达到上述目的,本发明提供如下技术方案:
8.一方面,本发明提供一种基于计算资源逻辑分层的联邦学习通信优化方法,包括以下步骤:
9.s1:分层通信架构构建:给定设备集合c={c1,c2,...,ck,cn}、设备计算能力p={p1,p2,...,pk,pn}、拟划分的簇集合clst={clst1,clst2,...,clstm}以及分组方向变量direction,初始条件下,direction=true,表示分组方向从左至右;根据设备计算能力p对设备逻辑分组,构建基于“云中心-head节点-终端设备”的分层通信架构;
10.s2:云中心初始化:云中心初始化全局模型参数ω0,全局模型训练轮数t,簇内训练轮数h,初始staleness函数影响因子α0;
11.s3:簇内协作训练:簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数
12.s4:簇间模型聚集:每个簇clsti的headi节点上传其簇内训练模型更新参数至云中心,并计算得到下一轮迭代的全局模型更新参数ω
t 1

13.s5:全局模型分发:云中心将计算得到的全局模型更新参数ω
t 1
下发给每个簇的head,模型训练进入下一轮迭代。
14.进一步,步骤s1具体包括以下步骤:
15.s11:根据设备的计算能力p={p1,p2,...,pk,pn},对设备的计算能力排序,并得到排序后的集合且以及相应的设备集合
16.s12:判断当前设备集合中的所有设备是否分组完成,若表示集合中所有的设备已分组完成,则返回已分组的结果;反之,若表示集合中所有的设备尚未分组完成,则继续判断分组方向变量direction的值。若direction=true,则将集合中的前m个设备依次分配给clst={clst1,clst2,...,clstm},并置direction=false,反之,若direction=false,则将集合中的前m个设备依次分配给clst={clstm,clst
m-1
,...,clst1},并置direction=true,不断重
复步骤s12,直至集合中的所有设备分组完成为止;
17.s13:并行地从已分组完成的簇clst={clst1,clst2,...,clstm}中,选取一个计算能力最强的终端设备head={head1,head2,...,headm},并由每个簇的headi节点代替每个簇clsti中所有其他节点与云中心通信,从而构建一个基于“云中心-head节点-终端设备”的分层通信架。
18.进一步,所述步骤s3包括以下步骤,
19.s31:簇clsti的头节点headi从云中心获取当前全局模型迭代轮数t的全局模型参数ω
t
,并置得到簇clsti的初始模型更新参数;
20.s32:头节点headi将簇内初始模型更新参数分发给簇clsti内所有参与的终端设备;
21.s33:簇clsti内的所有终端设备并行的进行本地模型训练;在这一步骤中,为了进一步减少簇内计算设备的计算资源异构性,对异构的计算资源进行再分配,即将响应时间快的计算设备与其头节点进行更多的通信交互,加速模型的训练速度。假设对于簇clsti中任意的参与设备ck,置簇内迭代轮数变量τ

h,其中,表示簇clsti中设备在第τ轮迭代的初始模型参数,表示表示簇clsti中设备在第h轮迭代的初始模型参数,初始条件下h=0,设备ck经过l轮本地模型更新得到簇内模型更新参数及得到该模型更新时的簇内迭代轮数信息τ,其计算公式如下:
[0022][0023]
其中,l∈l,η表示学习率,b表示最小的训练块大小,

f(.)表示梯度函数;
[0024]
s34:设备ck上传和τ至headi节点;
[0025]
s35:头节点headi计算当前簇内迭代轮数h的staleness的影响因子αh,其计算公式为:
[0026][0027]
其中,e表示一个自然指数对数,用来描述时间的影响;
[0028]
s36:头节点headi计算当前簇内迭代轮数h的模型更新参数其计算公式为:
[0029][0030]
其中,表示簇clsti在簇内迭代轮数(h-1)的模型更新参数。
[0031]
另一方面,本发明提供一种基于计算资源逻辑分层的联邦学习通信优化系统,包括:
[0032]
分层通信架构构建模块,用于将给定的终端设备集合c={c1,c2,...,ck,cn},根据其设备的计算资源p={p1,p2,...,pk,pn},对设备进行逻辑分组,构建基于“云中心-head节点-终端设备”的分层通信架构;
[0033]
云中心初始化模块,用于初始化全局模型参数ω0,全局模型训练轮数t,簇内训练轮数h,以及初始staleness函数影响因子α0;
[0034]
簇内协作训练模块,用于簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数
[0035]
簇间模型聚集模块,用于每个簇clsti的headi节点上传其获得的更新参数至云中心,并计算得到下一轮迭代的全局模型更新参数ω
t 1

[0036]
全局模型分发模块,用于云中心将计算得到的全局模型更新参数ω
t 1
分发给每个计算簇的头节点,模型训练进入下一轮迭代。
[0037]
进一步,所述分层通信架构构建模块包含以下子模块:
[0038]
计算资源排序子模块,用于根据设备计算资源集合p={p1,p2,...,pk,pn},按照其计算能力大小排序,得到排序后的集合以及相应的设备集合
[0039]
设备分组判断子模块,用于判断集合中所有终端设备是否已分组完成,若表示集合中所有的设备已分组完成,则返回设备分组结果;反之,若表示集合中所有的设备尚未分组完成,则进入设备分组方向判断子模块;
[0040]
设备分组方向判断子模块,用于判断分组方向变量direction的值,若direction=true,则将集合中的前m个设备依次分配给clst={clst1,clst2,...,clstm};反之,若direction=false,则将集合中的前m个设备依次分配给clst={clstm,clst
m-1
,...,clst1};
[0041]
变量重置子模块,用于重置设备分组方向变量direction以及集合即置direction=false/true,
[0042]
第一迭代子模块,用于重复以上子模块,直至集合为止,返回clst={clst1,clst2,...,clstm}分组结果;
[0043]
head节点选取子模块,用于并行地已分组完成的簇clst={clst1,clst2,...,clstm}中,选取一个计算能力最强的终端设备head={head1,head2,...,headm},并由每个簇的headi节点代替每个簇clsti中所有其他节点与云中心通信,从而构建一个基于“云中心-head节点-终端设备”的分层通信架。
[0044]
进一步,所述簇内协作训练模块包含以下子模块:
[0045]
head节点模型参数获取子模块,用于头节点headi从云中心获取当前全局模型迭代轮数t的全局模型参数ω
t
,并置得到簇clsti的初始模型更新参数;
[0046]
head节点参数分发子模块,用于头节点headi将簇内模型更新参数分发给簇clsti内的所有终端设备;
[0047]
变量存储子模块,用于簇clsti内任意的终端设备ck,存储模型更新时的簇内迭代轮数信息τ

h以及在第τ轮迭代的初始模型参数
[0048]
本地模型训练子模块,用于终端设备ck,计算得到经过l轮本地模型更新的簇内模型更新参数及得到该模型更新时的簇内迭代轮数信息τ;
[0049]
本地模型更新上传子模块,用于簇clsti内任意的终端设备ck上传和τ至头节点headi;
[0050]
staleness计算子模块,用于终端设备ck计算当前簇内迭代轮数h的staleness的影响因子
[0051]
簇内模型更新参数计算子模块,用于计算簇clsti内迭代轮数h的模型更新参数
[0052]
第二迭代子模块,用于headi得到簇clsti经过簇内训练迭代轮数h的更新参数
[0053]
并行子模块,用于簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数
[0054]
进一步,所述簇间模型聚集模块包含以下子模块:
[0055]
簇内模型更新上传子模块,用于每一个簇clsti的headi节点上传其簇内训练模型更新参数至云中心;
[0056]
云中心聚集子模块,用于云中心聚集得到下一轮迭代的全局模型更新参数
[0057]
本发明通过分析引邦学习straggle问题产生的本质原因,对资源异构的终端设备进行逻辑分组,构建基于“云中心-head节点-终端设备”一体的分层通信架构;设计新的加权平均全局模型更新机制,分别从粗粒度和细粒度两个角度均衡了资源异构的计算设备,从本质上加快了模型的训练速度,减少了全局模型聚集的等待时间,从而达到了减少通信代价的目的。与现有技术相比,本发明具有以下有益效果:
[0058]
(1)本发明所提方法及系统,从均衡异构的终端计算资源的角度,提出了一个解决联邦学习高通信代价问题的新思路,从本质上加快了模型的训练速度,减少了全局模型更新聚集的等待时间;
[0059]
(2)本发明所提方法及系统,通过构建基于“云中心-head节点-终端设备”一体的分层通信架构,改变了传统的终端设备与云中心通信方式,减少了终端设备与云中心的模型更新传输,从而减少了终端与云中心的通信开销,同时具有较低的算法复杂度,更有利于联邦学习在实际场景中的应用。本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0060]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0061]
图1为本发明实施例提供的基于计算资源逻辑分层的联邦学习通信优化方法总体流程图;
[0062]
图2为本发明实施例提供的基于计算资源逻辑分层的联邦学习通信优化方法具体流程图;
[0063]
图3为本发明实施例提供的基于计算资源逻辑分层的联邦学习通信优化方法工作原理图;
[0064]
图4为本发明实施例提供的基于计算资源逻辑分层的联邦学习通信优化系统的模块示意图。
具体实施方式
[0065]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0066]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0067]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0068]
下面以20个终端设备使用mnist数据集,联合训练多层感知机(mlp)模型为例,来阐述本发明的具体实施步骤,目标是减少全局模型的训练等待时间,从而达到减少通信代价的目的。记mlp模型的表达式为其中n表示总的样本数,xi为样本的特征向量,ωi为模型参数,b为偏置,σ为激活函数,y为模型的输出。
[0069]
本发明技术方案所提供方法可采用计算机软件技术实现自动运行流程,图1是本发明实施例的总体方法流程图,参见图1,结合图2本发明实施例的具体步骤流程图以及图3本发明实施例工作原理图,本发明基于计算资源逻辑分层的联邦学习通信优化方法的实施例具体步骤包括:
[0070]
步骤s1,分层通信架构构建。给定设备集合c={c1,c2,...,ck,cn},设备计算能力p={p1,p2,...,pk,pn},拟划分的簇集合clst={clst1,clst2,...,clstm},以及分组方向变量direction,初始条件下,direction=true,表示分组方向从左至右。根据设备计算能力p,对设备逻辑分组,构建基于“云中心-head节点-终端设备”的分层通信架构,包括以下子
步骤:
[0071]
实施例中,给定设备集合c={c1,c2,...,ck,c
20
},设备计算能力p={p1,p2,...,pk,p
20
},拟划分的簇集合clst={clst1,clst2,clst3,clst4,clst5},我们分配4个cpu,2个cpu,1个cpu,1/3cpu,1/5cpu从clst1到clst5的每个终端设备模拟资源异构性。初始化分组方向变量direction=true,根据给定的这些参数对设备集合c逻辑分组,构建基于“云中心-head节点-终端设备”的分层通信架构,具体实现如下:
[0072]
步骤s1-1,根据设备的计算能力p={p1,p2,...,pk,pn},对设备的计算能力排序,并得到排序后的集合且以及相应的设备集合
[0073]
实施例中,根据给定的设备计算能力p={p1,p2,...,pk,p
20
},对设备的计算能力排序,得到排序后的集合以及相应的设备集合
[0074]
步骤s1-2,判断当前设备集合中的所有设备是否分组完成,若表示集合中所有的设备已分组完成,则返回已分组的结果;反之,若表示集合中所有的设备尚未分组完成,则继续判断分组方向变量direction的值。若direction=true,则将集合中的前m个设备依次分配给clst={clst1,clst2,...,clstm},并置direction=false,反之,若direction=false,则将集合中的前m个设备依次分配给clst={clstm,clst
m-1
,...,clst1},并置direction=true,不断重复步骤s1-2,直至集合中的所有设备分组完成为止;
[0075]
实施例中,若当前集合且方向变量direction=true,则将集合中的前5个设备依次分配给clst={clst1,clst2,clst3,clst4,clst5},同时置direction=false,不断重复步骤s1-2,直至集合中的所有设备分组完成为止,得到分组完成的集合clst={clst1,clst2,clst3,clst4,clst5};若当前集合则返回分组完成的集合clst={clst1,clst2,clst3,clst4,clst5};
[0076]
步骤s1-3,并行地从已分组完成的簇clst={clst1,clst2,...,clstm}中,选取一个计算能力最强的终端设备head={head1,head2,...,headm},并由每个簇的headi节点代替每个簇clsti中所有其他节点与云中心通信,从而构建一个基于“云中心-head节点-终端设备”的分层通信架。
[0077]
实施例中,并行地从已分组完成的簇clst={clst1,clst2,clst3,clst4,clst5}中,选取一个计算能力最强的终端设备head={head1,head2,head3,head4,head5},并由每个簇的headi节点代替每个簇clsti中所有其他节点与云中心通信,从而构建一个基于“云中心-head节点-终端设备”的分层通信架。
[0078]
步骤s2,云中心初始化。云中心初始化全局模型参数ω0,全局模型训练轮数t,簇内训练轮数h,初始staleness函数影响因子α0。
[0079]
实施例中,初始化全局模型参数ω0,迭代轮数t=10,h=10以及初始staleness函
数影响因子α0=0.6。
[0080]
步骤s3,簇内协作训练。簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数下面以簇clsti为例,包括以下子步骤:
[0081]
实施例中,簇集合clst={clst1,clst2,clst3,clst4,clst5}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,head3,head4,head5},分别得到经过簇内训练迭代轮数h=10的更新参数下面以簇集合clst中任意的簇clst2为例,具体实现如下:
[0082]
步骤s3-1,簇clsti的头节点headi从云中心获取当前全局模型迭代轮数t的全局模型参数ω
t
,并置得到簇clsti的初始模型更新参数;
[0083]
实施例中,簇clst2的头节点head2从云中心获取当前全局模型迭代轮数t=3的全局模型参数ω3,并置得到簇clst2的初始模型更新参数;
[0084]
步骤s3-2,头节点headi将簇内初始模型更新参数分发给簇clsti内所有参与的终端设备;
[0085]
实施例中,head2将发给簇clst2内的所有参与的终端设备;
[0086]
步骤s3-3,簇clsti内的所有终端设备并行的进行本地模型训练。在这一步骤中,为了进一步减少簇内计算设备的计算资源异构性,对异构的计算资源进行再分配,即将响应时间快的计算设备与其头节点进行更多的通信交互,加速模型的训练速度。假设对于簇clsti中任意的参与设备ck,置簇内迭代轮数变量τ

h,其中,表示簇clsti中设备在第τ轮迭代的初始模型参数,表示表示簇clsti中设备在第h轮迭代的初始模型参数(初始条件下h=0),设备ck经过l轮本地模型更新得到簇内模型更新参数及得到该模型更新时的簇内迭代轮数信息τ,其计算公式如下:
[0087][0088]
其中,l∈l,η表示学习率,b表示最小的训练块大小,

f(.)表示梯度函数。
[0089]
实施例中,clst2内的所有终端设备d={d1,d2,d3,d4}并行的进行本地模型训练。这里假设,终端设备d3计算能力最强,其模型训练响应时间最快,则d3经过5轮本地训练之后得到簇内模型更新参数及得到该模型更新时的簇内迭代轮数信息τ=1;
[0090]
步骤s3-4,设备ck上传和τ至headi节点。
[0091]
实施例中,clst2内的终端设备d3传和τ=1至head2节点;
[0092]
步骤s3-5,头节点headi计算当前簇内迭代轮数h的staleness的影响因子αh,其计算公式为:
[0093][0094]
其中,e表示一个自然指数对数,用来描述时间的影响。
[0095]
实施例中,头节点head2计算当前簇内迭代轮数h=1的staleness的影响因子
[0096]
步骤s3-6,头节点headi计算当前簇内迭代轮数h的模型更新参数其计算公式为:
[0097][0098]
其中,表示簇clsti在簇内迭代轮数(h-1)的模型更新参数。
[0099]
实施例中,头节点head2计算当前簇内迭代轮数h=1的模型更新参数
[0100]
不断重复s3-2,s3-3,s3-4,s3-5及s3-6,直至簇内训练结束,headi得到簇clsti经过簇内训练迭代轮数h的更新参数
[0101]
实施例中,不断重s3-2,s3-3,s3-4,s3-5及s3-6,直至簇内训练结束,head2得到簇clst2经过簇内训练迭代轮数h=10的更新参数
[0102]
步骤s4,簇间模型聚集。每个簇clsti的headi节点上传其获得的更新参数至云中心,并计算得到下一轮迭代的全局模型更新参数ω
t 1
,包括以下子步骤:
[0103]
实施例中,簇集合clst={clst1,clst2,clst3,clst4,clst5}中的每个簇,其对应得头节点集合{head1,head2,head3,head4,head5}分别上传其得到更新参数至云中心,同时计算局模型迭代轮数t=4的全局模型更新参数ω4,具体实现如下:
[0104]
步骤s4-1,每一个簇clsti的headi节点上传其簇内训练模型更新参数至云中心;
[0105]
实施例中,头节点{head1,head2,head3,head4,head5}分别上传其得到更新参数至云中心;
[0106]
步骤s4-2,云中心聚集得到下一轮迭代的全局模型更新参数ω
t 1
,其计算公式如下:
[0107][0108]
实施例中,云中心聚集得到全局模型更新参数
[0109]
步骤s5,全局模型分发。云中心将计算得到的全局模型更新参数ω
t 1
下发给每个簇的head,模型训练进入下一轮迭代。
[0110]
实施例中,云中心将ω4下发给每个簇的{head1,head2,head3,head4,head5},模型训练进入下一轮迭代。
[0111]
不断重复步骤s3~s5,直至t轮迭代为止,模型训练结束,得到收敛后的全局模型ω
t

[0112]
实施例中,不断重复步骤s3~s5,直至t=10轮迭代为止,模型训练结束,得到收敛后的全局模型ω
10

[0113]
如图4所示,本发明还相应提供了一种基于计算资源逻辑分层的联邦学习通信优化系统,如图4所示,包含:
[0114]
分层通信架构构建模块,用于将给定的终端设备集合c={c1,c2,...,ck,cn},根据其设备的计算资源p={p1,p2,...,pk,pn},对设备进行逻辑分组,构建基于“云中心-head节点-终端设备”的分层通信架构,包含以下子模块:
[0115]
计算资源排序子模块,用于根据设备计算资源集合p={p1,p2,...,pk,pn},按照其计算能力大小排序,得到排序后的集合以及相应的设备集合
[0116]
设备分组判断子模块,用于判断集合中所有终端设备是否已分组完成,若表示集合中所有的设备已分组完成,则返回设备分组结果;反之,若表示集合中所有的设备尚未分组完成,则进入设备分组方向判断子模块;
[0117]
设备分组方向判断子模块,用于判断分组方向变量direction的值,若direction=true,则将集合中的前m个设备依次分配给clst={clst1,clst2,...,clstm};反之,若direction=false,则将集合中的前m个设备依次分配给clst={clstm,clst
m-1
,...,clst1};
[0118]
变量重置子模块,用于重置设备分组方向变量direction以及集合即置direction=false/true,
[0119]
迭代子模块,用于重复以上子模块,直至集合为止,返回clst={clst1,clst2,...,clstm}分组结果;
[0120]
head节点选取子模块,用于并行地已分组完成的簇clst={clst1,clst2,...,clstm}中,选取一个计算能力最强的终端设备head={head1,head2,...,headm},并由每个簇的headi节点代替每个簇clsti中所有其他节点与云中心通信,从而构建一个基于“云中心-head节点-终端设备”的分层通信架。
[0121]
云中心初始化模块,用于初始化全局模型参数ω0,全局模型训练轮数t,簇内训练轮数h,以及初始staleness函数影响因子α0。
[0122]
簇内协作训练模块,用于簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数包含以下子模块:
[0123]
head节点模型参数获取子模块,用于头节点headi从云中心获取当前全局模型迭代轮数t的全局模型参数ω
t
,并置得到簇clsti的初始模型更新参数;
[0124]
head节点参数分发子模块,用于头节点headi将簇内模型更新参数分发给簇clsti内的所有终端设备;
[0125]
变量存储子模块,用于簇clsti内任意的终端设备ck,存储模型更新时的簇内迭代轮数信息τ

h以及在第τ轮迭代的初始模型参数
[0126]
本地模型训练子模块,用于终端设备ck,计算得到经过l轮本地模型更新的簇内模型更新参数及得到该模型更新时的簇内迭代轮数信息τ;
[0127]
本地模型更新上传子模块,用于簇clsti内任意的终端设备ck上传和τ至头节点headi;
[0128]
staleness计算子模块,用于终端设备ck计算当前簇内迭代轮数h的staleness的影响因子
[0129]
簇内模型更新参数计算子模块,用于计算簇clsti内迭代轮数h的模型更新参数
[0130]
迭代子模块,用于headi得到簇clsti经过簇内训练迭代轮数h的更新参数
[0131]
并行子模块,用于簇clst={clst1,clst2,...,clstm}中的每个簇并行地进行簇内协作训练,簇内头节点head={head1,head2,...,headm}分别得到经过簇内训练迭代轮数h的更新参数
[0132]
簇间模型聚集,用于每个簇clsti的headi节点上传其获得的更新参数至云中心,并计算得到下一轮迭代的全局模型更新参数ω
t 1
,包含以下子模块:
[0133]
簇内模型更新上传子模块,用于每一个簇clsti的headi节点上传其簇内训练模型更新参数至云中心;
[0134]
云中心聚集子模块,用于云中心聚集得到下一轮迭代的全局模型更新参数
[0135]
全局模型分发模块,用于云中心将计算得到的全局模型更新参数ω
t 1
分发给每个计算簇的头节点,模型训练进入下一轮迭代。
[0136]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
转载请注明原文地址:https://win.8miu.com/read-1056158.html

最新回复(0)