一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型训练方法和装置、计算机可读存储介质、电子设备与流程

2022-07-06 07:13:43 来源:中国专利 TAG:


1.本公开实施例涉及机器学习技术领域,具体而言,涉及一种模型训练方法、模型训练装置、计算机可读存储介质以及电子设备。


背景技术:

2.随着计算机技术的发展,为了解决数据孤岛,保证数据的安全性,联邦学习应运而生,在金融机构、公共服务以及数据认证等众多场景下,得到了广泛的应用。
3.联邦学习,需要各参与方一起训练模型,并各自将每轮训练中学习到的参数同步至中心节点,中心节点根据接收到的参数计算下一轮的更新参数,并将计算得到的下一轮的更新参数分发至各参与方,对于各参与方的每一轮的训练周期,通常会设置为固定周期,导致极大增长了各参与方的训练时间,降低了模型训练效率。
4.因此,需要提供一种新的模型训练方法。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的目的在于提供一种模型训练方法、模型训练装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的在联邦学习中各参与方模型训练效率低的问题。
7.根据本公开的一个方面,提供一种模型训练方法,应用于联邦学习的参与方,包括:
8.接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;
9.获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;
10.将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
11.在本公开的一种示例性实施例中,获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数,包括:
12.获取所述参与方根据所述初始训练周期训练时,生成的第一梯度向量以及第二梯度向量;
13.根据所述参与方的所述第一梯度向量以及所述第二梯度向量,计算所述参与方的梯度向量变化幅度;
14.根据所述参与方的梯度向量变化幅度,确定所述参与方的下一训练周期数。
15.在本公开的一种示例性实施例中,根据所述参与方的梯度向量变化幅度,确定所
述参与方的下一训练周期数,包括:
16.根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数。
17.在本公开的一种示例性实施例中,根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数,包括:
18.在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积小于预设值时,将所述参与方的下一训练周期数设置为1;
19.在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积不小于所述预设值时,将所述参与方的下一训练周期数设置为所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积。
20.在本公开的一种示例性实施例中,将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,包括:
21.对所述第一梯度向量以及所述第二梯度向量进行加密,得到加密梯度向量;
22.将所述加密梯度向量以及所述下一训练周期数,发送至所述中心节点;
23.接收所述中心节点发送的聚合梯度参数以及根据所述下一训练周期数确定的目标训练周期数,并利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
24.根据本公开的一个方面,提供一种模型训练方法,应用于联邦学习的中心节点,包括:
25.生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练;
26.接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数;
27.将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
28.在本公开的一种示例性实施例中,接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数,包括:
29.接收所述参与方发送的下一训练周期数,对所述下一训练周期数进行排序,得到所述下一训练周期数中的中位数;
30.将所述中位数,确定为所述目标训练周期数。
31.在本公开的一种示例性实施例中,在将所述目标训练周期发送至所述参与方之前,所述模型训练方法还包括:
32.接收所述参与方发送的加密梯度向量,对所述加密梯度参数解密,并对解密后的梯度参数进行聚合,生成聚合梯度参数。
33.在本公开的一种示例性实施例中,将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,包括:
34.将所述聚合梯度参数以及所述目标训练周期数发送至所述参与方,以使所述参与方利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
35.根据本公开的一个方面,提供一种模型训练装置,应用于联邦学习的参与方,包括:
36.初始训练周期数接收模块,用于接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;
37.下一训练周期数确定模块,用于获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;
38.目标训练周期数接收模块,用于将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
39.根据本公开的一个方面,提供一种模型训练装置,应用于联邦学习的中心节点,包括:
40.初始训练周期数生成模块,用于生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练;
41.目标训练周期数生成模块,用于接收所述参与方发送下一训练周期数,根据所述下一训练周期数,得到目标训练周期数;
42.目标训练周期数发送模块,用于将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
43.根据本公开的一个方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一示例性实施例所述的模型训练方法。
44.根据本公开的一个方面,提供一种电子设备,包括:
45.处理器;以及
46.存储器,用于存储所述处理器的可执行指令;
47.其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的模型训练方法。
48.本公开实施例提供的一种模型训练方法,接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练;一方面,接收中心节点发送初始训练周期数,各参与方根据该初始训练周期数进行训练,获取训练过程中生成的梯度向量,根据梯度向量确定下一训练周期数,并将该下一训练周期数发送至中心节点,以使中心节点根据该下一训练周期数生成目标训练周期数,并接收中心节点发送的目标训练周期数,根据该目标训练周期数进行当前轮次的下一轮次的模型训练,解决了现有技术中将各参与方的训练周期设置为固定周期导致训练时间增长的问题,降低了模型训练的时间,提升了模型训练的效率;另一方面,采用固定周期对各参与方的本地数据进行训练,极易偏离最佳参数点,从而偏离全局最优解,影响模型收敛,但是,通过各参与方的梯度向量来计算各参与方进行当前轮次的下一轮次模型训练时的目标训练周期数,提高了模型训练的准确性。
49.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本公开。
附图说明
50.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1示意性示出根据本公开示例实施例的一种应用于联邦学习的参与方的模型训练方法的流程图。
52.图2示意性示出根据本公开示例实施例的一种模型训练系统的框图。
53.图3示意性示出根据本公开示例实施例的一种获取模型训练过程中生成的梯度向量,根据梯度向量,确定参与方的下一训练周期数的方法流程图。
54.图4示意性示出根据本公开示例实施例的一种根据参与方的梯度向量变化幅度与初始训练周期数的乘积,确定参与方的下一训练周期数的方法流程图。
55.图5示意性示出根据本公开示例实施例的一种接收中心节点发送的目标训练周期数,并根据目标训练周期数进行当前轮次的下一轮次的模型训练的方法流程图。
56.图6示意性示出根据本公开示例实施例的一种应用于联邦学习的中心节点的模型训练方法的流程图。
57.图7示意性示出根据本公开示例实施例的一种接收参与方发送的下一训练周期数,根据下一训练周期数,得到目标训练周期数的方法流程图。
58.图8示意性示出根据本公开示例实施例的一种模型训练方法的流程图。
59.图9示意性示出根据本公开示例实施例的一种应用于联邦学习的参与方的模型训练装置的框图。
60.图10示意性示出根据本公开示例实施例的一种应用于联邦学习的中心节点的模型训练装置的框图。
61.图11示意性示出根据本公开示例实施例的用于实现上述模型训练方法的电子设备。
具体实施方式
62.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
63.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功
能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
64.联邦学习需要各参与方对本地数据进行训练,并将每轮训练中学习到的参数同步至中心节点,中心节点根据接收到的参数计算下一轮的更新参数,并将计算得到的更新参数发送至各参与方,为了提升联邦学习的效率,相关技术中通常会设置一个固定周期作为各参与方的训练周期,例如,当设置的固定周期为10时,各参与方对本地数据进行10轮训练之后将学习到的参数同步至中心节点,该种设置固定周期对本地数据进行训练的方式会极大增长各参与方的训练时间,同时降低了各参与方的训练效率;此外,通过固定周期对本地数据进行训练时,由于通过固定周期对本地数据进行训练前后梯度变化可能较大,会影响梯度下降的路径选择,从而影响最后的训练结果,当在开始训练阶段,梯度变化较大时,如果按照固定周期进行训练,很容易较大偏离最佳参数点,从而偏离全局最优解,影响模型收敛。
65.基于上述一个或者多个问题,本示例实施方式中首先提供了一种模型训练方法,该方法可以运行于服务器、服务器集群或者云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该模型训练方法可以包括步骤s110-步骤s130:
66.步骤s110.接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;
67.步骤s120.获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;
68.步骤s130.将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
69.上述模型训练方法,接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练;一方面,接收中心节点发送初始训练周期数,各参与方根据该初始训练周期数进行训练,获取训练过程中生成的梯度向量,根据梯度向量确定下一训练周期数,并将该下一训练周期数发送至中心节点,以使中心节点根据该下一训练周期数生成目标训练周期数,并接收中心节点发送的目标训练周期数,根据该目标训练周期数进行当前轮次的下一轮次的模型训练,解决了现有技术中将各参与方的训练周期设置为固定周期导致训练时间增长的问题,降低了模型训练的时间,提升了模型训练的效率;另一方面,采用固定周期对各参与方的本地数据进行训练,极易偏离最佳参数点,从而偏离全局最优解,影响模型收敛,但是,通过各参与方的梯度向量来计算各参与方进行当前轮次的下一轮次模型训练时的目标训练周期数,提高了模型训练的准确性。
70.以下,对本公开示例实施例的模型训练方法中涉及的各步骤进行详细的解释以及说明。
71.首先,对本公开示例实施例的应用场景以及目的进行解释以及说明。具体的,本公开示例实施例可以应用于联邦学习中,主要研究如何提高各参与方对本地数据的训练效率以及训练准确度。
72.在本公开中以参与方接收到的中心节点发送的初始训练周期数为基础,各参与方根据接收到的初始训练周期数,利用本地数据进行模型训练,在训练过程中,获取第一梯度向量以及第二梯度向量,根据第一梯度向量以及第二梯度向量,得到该参与方的梯度向量变化幅度;各参与方根据梯度变化幅度以及接收到的初始训练周期数,确定其下一训练周期数,并将下一训练周期数发送至中心节点,中心节点根据接收到的下一训练周期数得到参与方进行当前轮次的下一轮次模型训练时的目标训练周期数,并将该目标训练周期数发送至参与方,参与方接收到目标训练周期数之后,根据该目标训练周期数进行当前轮次的下一轮次的模型训练。其中,通过各参与当在当前训练中得到的梯度向量,得到各参与方进行当前轮次的下一轮次模型训练时的目标训练周期数,缩短了各参与方的训练时间,提高了各参与方的训练效率以及训练准确度。
73.其次,对本公开示例实施例中涉及到的模型训练系统进行解释以及说明。参考图2所示,该模型训练系统可以包括中心节点210以及参与节点220。其中,中心节点210,生成初始训练周期数,将该初始训练周期数发送至参与节点220,接收参与节点220发送的加密梯度向量以及参与方的下一训练周期数,对接收到的加密梯度向量解密,并对解密后的梯度向量进行安全聚合,得到聚合梯度参数;对接收到的参与方的下一训练周期数进行排序,得到中位数,并将中位数作为参与方进行当前轮次的下一轮次模型训练的目标训练周期数;将该聚合梯度参数以及目标训练周期发送至参与节点220;参与节点220,与中心节点210网络连接,参与节点220中可以包括多个参与方,用于根据接收到的初始训练周期数,利用本地数据进行模型训练,训练过程中得到第一梯度向量以及第二梯度向量,根据第一梯度向量以及第二梯度向量生成下一训练周期数;对训练过程中生成的第一梯度向量以及第二梯度向量进行加密,得到加密梯度向量,将该加密梯度向量以及下一训练周期数发送至中心节点;接收中心节点发送的聚合梯度参数以及目标训练周期数,根据该聚合梯度参数以及目标训练周期数进行模型训练。
74.以下,将结合图2对步骤s110-步骤s130进行详细的解释以及说明。
75.在步骤s110中,接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练。
76.在本示例实施例中,在各参与方利用本地数据进行模型训练时,可以根据接收到的中心节点发送的初始训练周期数p进行模型训练,其中,各参与方接收到的初始训练周期数相等,该初始训练周期数至少为2,在本示例实施例中对初始训练周期数不做具体限定,本领域技术人员可以根据需要确定初始训练周期数,当初始训练周期数越大,训练准确度越高,当初始训练周期数越小,训练速度越快。
77.在步骤s120中,获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数。
78.在本示例实施例中,当各参与方根据初始训练周期数对本地数据进行训练时,可以获取训练过程中生成的梯度向量。其中,梯度为多元函数的一阶偏导,即对函数的各个分量求偏导;当损失函数f由n(n为正整数)个自变量构成时,损失函数f在点(x1,x2,x3,

,xn)
处的梯度向量g可以表示为:
79.在本示例实施例中,参考图3所示,获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数,可以包括步骤s310-步骤s330:
80.步骤s310.获取所述参与方根据所述初始训练周期训练时,生成的第一梯度向量以及第二梯度向量;
81.步骤s320.根据所述参与方的所述第一梯度向量以及所述第二梯度向量,计算所述参与方的梯度向量变化幅度;
82.步骤s330.根据所述参与方的梯度向量变化幅度,确定所述参与方的下一训练周期数。
83.以下,将对步骤s310-步骤s330进行进一步的解释以及说明。具体的,首先,在根据初始训练周期数对本地数据进行训练时,各参与方获取在模型训练过程中产生的第一梯度向量以及第二梯度向量,其中,第一梯度向量可以为参与方根据初始训练周期数进行训练时第一次训练得到的梯度向量g1,第二梯度向量可以为参与方根据初始训练周期数进行训练时最后一次训练得到的梯度向量g
p
。当得到各参与方的第一梯度向量g1以及第二梯度向量g
p
之后,各参与方可以根据第一梯度向量以及第二梯度向量g
p
,计算梯度向量变化幅度。当各参与方得到梯度向量变化幅度之后,可以根据梯度向量变化幅度确定该参与方的下一训练周期数。进一步的,可以通过等式(1)来表示各参与方的梯度向量变化幅度:
[0084][0085]
也可以当通过等式(2)来表示各参与方的梯度向量变化幅度
[0086][0087]
其中,θ为梯度向量g1与梯度向量g
p
之间的夹角;g1×gp
为向量的外积。
[0088]
在本示例实施例中,根据所述参与方的梯度向量变化幅度,确定所述参与方的下一训练周期数,包括:
[0089]
根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数。
[0090]
具体的,当得到各参与方的梯度向量变化幅度之后,可以根据各参与方的梯度向量变化幅度cosθ或者sinθ与初始训练周期数p的乘积得到各参与方的下一训练周期数。
[0091]
进一步的,参考图4所示,根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数,可以包括步骤s410以及步骤s420:
[0092]
步骤s410.在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积小于预设值时,将所述参与方的下一训练周期数设置为1;
[0093]
步骤s420.在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积不小于所述预设值时,将所述参与方的下一训练周期数设置为所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积。
[0094]
以下,将对步骤s410、步骤s420进行进一步的解释以及说明。具体的,当参与方的梯度向量变化幅度cosθ或者sinθ与初始训练周期数p的乘积小于预设值时,可以将该参与方的下一训练周期数设置为1;其中预设值可以为1,在本示例实施例中可以根据实际场景
对预设值进行调整,在本示例实施例中对预设值不做具体限定;当参与方的梯度向量变化幅度cosθ或者sinθ与初始训练周期数p的乘积不小于预设值时,可以将参与方的下一轮次的第一训练周期数设置为该任一参与方的梯度向量变化幅度与初始训练周期数的乘积cosθ*p或者sinθ*p;当得到各参与方的下一训练周期数之后,各参与方可以将该下一训练周期数发送至中心节点,以使中心节点确定各参与方的下一训练周期数确定目标训练周期数。
[0095]
在步骤s130中,将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0096]
在本示例实施例中,参考图5所示,将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,可以包括步骤s510-步骤s530:
[0097]
步骤s510.对所述第一梯度向量以及所述第二梯度向量进行加密,得到的加密梯度向量;
[0098]
步骤s520.将所述加密梯度向量以及所述下一训练周期数发送至所述中心节点;
[0099]
步骤s530.接收所述中心节点发送的聚合梯度参数以及根据所述下一训练周期数确定的目标训练周期数,并利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0100]
以下,将对步骤s510-步骤s530进行进一步的解释以及说明。在各参与方根据初始训练周期数对本地数据进行训练过程中得到第一梯度向量以及第二梯度向量之后,对第一梯度向量以及第二梯度向量进行加密,得到加密梯度向量,各参与方将加密梯度向量以及下一训练周期数发送至中心节点,以使中心节点根据接收到的加密梯度向量以及下一训练周期数分别进行计算,得到聚合梯度参数以及目标训练周期数,并将该聚合梯度参数以及目标训练周期数发送至参与方,当参与方接收到中心节点发送的聚合梯度参数以及目标训练周期数之后,根据该聚合梯度参数以及目标训练周期数进行当前轮次的下一轮次的模型训练。
[0101]
在本公开中还提供了一种模型训练方法,该方法可应用于联邦学习的中心节点,参考图6所示,该方法包括:
[0102]
步骤s610.生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练;
[0103]
步骤s620.接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数;
[0104]
步骤s630.将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0105]
以下,将对步骤s610-步骤s630进行详细的解释以及说明。
[0106]
在步骤s610中,生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练。
[0107]
在本示例实施例中,首先,在各参与方进行模型训练之前,中心节点生成初始训练周期数,并将该初始训练周期数发送至参与联邦训练的各参与方中,各参与方根据初始训练周期数进行模型训练。
[0108]
在步骤s620中,接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数。
[0109]
在本示例实施例中,参考图7所示,接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数,可以包括步骤s710以及步骤s720:
[0110]
步骤s710.接收所述参与方发送的下一训练周期数,对所述下一训练周期数进行排序,得到所述下一训练周期数中的中位数;
[0111]
步骤s720.将所述中位数,确定为所述目标训练周期数。
[0112]
以下,将对步骤s710以及步骤s720进行进一步的解释以及说明。具体的,首先,当各参与方根据当前轮次训练过程中得到的梯度向量生成下一训练周期数,并将该下一训练周期数发送至中心节点之后,中心节点接收各参与方发送的下一训练周期数,对接收到的多个下一训练周期数进行排序,获取多个下一训练周期数中的中位数,并将该中位数作为各参与方的目标训练周期数。
[0113]
在步骤s630中,将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0114]
在本示例实施例中,在将所述目标训练周期发送至所述参与方之前,所述模型训练方法还包括:
[0115]
接收所述参与方发送的加密梯度向量,对所述加密梯度参数解密,并对解密后的梯度参数进行聚合,生成聚合梯度参数。
[0116]
具体的,中心节点接收各参与方发送的加密梯度向量,对接收到的加密梯度向量进行解密,并对解密后的多个梯度向量进行聚合,生成聚合梯度参数。
[0117]
在本示例实施例中,将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,包括:
[0118]
将所述聚合梯度参数以及所述目标训练周期数发送至所述参与方,以使所述参与方利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0119]
具体的,中心节点得到聚合梯度参数以及目标训练周期数之后,将该聚合梯度参数以及目标训练周期数发送至各参与方,当各参与方接收到聚合梯度参数以及目标训练周期数之后,根据该聚合梯度参数以及目标训练周期数进行当前轮次的下一轮次的模型训练。
[0120]
进一步的,当各参与方根据目标训练周期数进行模型训练时,可以获取模型训练过程中生成的梯度向量,根据生成的梯度向量得到第二训练周期数,并对该梯度向量进行加密,得到第一加密梯度向量,将该第一加密梯度向量以及第二训练周期数发送至中心节点,中心节点对接收到的第一加密梯度向量进行解密,并对解密后的梯度向量进行聚合得到第一聚合梯度参数,对接收到的第二训练周期数进行排序,并将中位数作为第一目标训练周期数,将该第一聚合梯度参数以及第一目标训练周期数发送至各参与方,各参与方根据该第一聚合梯度参数以及第一目标训练周期数再次进行模型训练,重复上述过程,直至各参与方的模型训练结束。
[0121]
本公开示例实施例提供的模型训练方法至少具有以下优点:一方面,接收初始训练周期数,各参与方通过初始训练周期数,利用本地数据对模型进行训练,获取训练过程中生成的第一梯度向量以及第二梯度向量,通过第一梯度向量以及第二梯度向量,得到下一
训练周期数据,将该下一训练周期数发送至中心节点,中心节点根据接收到的下一训练周期数得到目标训练周期数,并将目标训练周期数发送至参与方,各参与方根据目标训练周期数进行模型训练,降低了各参与方的模型训练时间,提升了模型训练的效率;另一方面,采用固定周期对各参与方的本地数据进行训练,极易偏离最佳参数点,从而偏离全局最优解,影响模型收敛,但是,通过各参与方的梯度向量来计算各参与方的的目标训练周期数,提高了模型训练的准确性。
[0122]
以下,结合图8对本公开示例实施例的模型训练方法进行进一步的解释以及说明。其中,模型训练方法可以包括以下步骤:
[0123]
步骤s810.接收中心节点发送的初始训练周期数,各参与方根据初始训练周期数,利用本地数据对模型进行训练;
[0124]
步骤s820.各参与方获取训练过程中生成的第一梯度向量以及第二梯度向量,对第一梯度向量以及第二梯度向量进行加密,得到加密梯度向量;
[0125]
步骤s830.各参与方根据第一梯度向量以及第二梯度向量,得到梯度向量变化幅度;
[0126]
步骤s840.各参与方根据梯度向量变化幅度与初始训练周期数之间的乘积,得到下一训练周期数;
[0127]
步骤s850.各参与方将加密梯度向量以及下一训练周期数发送至中心节点;
[0128]
步骤s860.中心节点根据接收到的加密梯度向量以及下一训练周期数分别进行计算,得到聚合梯度参数以及目标训练周期数;
[0129]
步骤s870.中心节点将聚合梯度参数以及目标训练周期数发送至各参与方;
[0130]
步骤s880.各参与方根据接收到的聚合梯度参数以及目标训练周期数再次进行模型训练。
[0131]
本公开示例实施例还提供了一种模型训练装置,应用于联邦学习的参与方,参考图9所示,可以包括:初始训练周期数接收模块910、下一训练周期数确定模块920以及目标训练周期数接收模块930。其中:
[0132]
初始训练周期数接收模块910,用于接收中心节点发送的初始训练周期数,并利用所述初始训练周期数进行当前轮次的模型训练;
[0133]
下一训练周期数确定模块920,用于获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;
[0134]
目标训练周期数接收模块930,用于将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0135]
本公开示例实施例还提供了一种模型训练装置,应用与联邦学习的中心节点,参考图10所示,可以包括:初始训练周期数生成模块1010、目标训练周期数生成模块1020以及目标训练周期数发送模块1030。其中:
[0136]
初始训练周期数生成模块1010,用于生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练;
[0137]
目标训练周期数生成模块1020,用于接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数;
[0138]
目标训练周期数发送模块1030,用于将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0139]
上述模型训练装置中各模块的具体细节已经在对应的模型训练方法中进行了详细的描述,因此此处不再赘述。
[0140]
在本公开的一种示例性实施例中,获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数,包括:
[0141]
获取所述参与方根据所述初始训练周期训练时,生成的第一梯度向量以及第二梯度向量;
[0142]
根据所述参与方的所述第一梯度向量以及所述第二梯度向量,计算所述参与方的梯度向量变化幅度;
[0143]
根据所述参与方的梯度向量变化幅度,确定所述参与方的下一训练周期数。
[0144]
在本公开的一种示例性实施例中,根据所述参与方的梯度向量变化幅度,确定所述参与方的下一训练周期数,包括:
[0145]
根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数。
[0146]
在本公开的一种示例性实施例中,根据所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积,确定所述参与方的下一训练周期数,包括:
[0147]
在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积小于预设值时,将所述参与方的下一训练周期数设置为1;
[0148]
在确定所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积不小于所述预设值时,将所述参与方的下一训练周期数设置为所述参与方的梯度向量变化幅度与所述初始训练周期数的乘积。
[0149]
在本公开的一种示例性实施例中,将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,包括:
[0150]
对所述第一梯度向量以及所述第二梯度向量进行加密,得到加密梯度向量;
[0151]
将所述加密梯度向量以及所述下一训练周期数,发送至所述中心节点;
[0152]
接收所述中心节点发送的聚合梯度参数以及根据所述下一训练周期数确定的目标训练周期数,并利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0153]
根据本公开的一个方面,提供一种模型训练方法,应用于联邦学习的中心节点,包括:
[0154]
生成初始训练周期数,并将所述初始训练周期数发送至参与方,以使所述参与方根据所述初始训练周期数进行训练;
[0155]
接收所述参与方发送的下一训练周期数,根据所述下一训练周期数,得到目标训练周期数;
[0156]
将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0157]
在本公开的一种示例性实施例中,接收所述参与方发送的下一训练周期数,根据
所述下一训练周期数,得到目标训练周期数,包括:
[0158]
接收所述参与方发送的下一训练周期数,对所述下一训练周期数进行排序,得到所述下一训练周期数中的中位数;
[0159]
将所述中位数,确定为所述目标训练周期数。
[0160]
在本公开的一种示例性实施例中,在将所述目标训练周期发送至所述参与方之前,所述模型训练方法还包括:
[0161]
接收所述参与方发送的加密梯度向量,对所述加密梯度参数解密,并对解密后的梯度参数进行聚合,生成聚合梯度参数。
[0162]
在本公开的一种示例性实施例中,将所述目标训练周期数发送至所述参与方,以使所述参与方根据所述目标训练周期数进行当前轮次的下一轮次的模型训练,包括:
[0163]
将所述聚合梯度参数以及所述目标训练周期数发送至所述参与方,以使所述参与方利用所述聚合梯度参数以及所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0164]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0165]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0166]
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0167]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0168]
下面参照图11来描述根据本公开的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0169]
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130以及显示单元1140。
[0170]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图1中所示的步骤s110:接收中心节点发送的初始训练周期数,并利用所述初始训练周期数据进行当前轮次的模型训练;s120:获取所述模型训练过程中生成的梯度向量,根据所述梯度向量,确定所述参与方的下一训练周期数;s130:将所述下一训练周期数发送至所述中心节点,接收所述中心节点发送的根据所述下一训练周期数得到的目标训练周期数,并根据所述目标训练周期数进行当前轮次的下一轮次的模型训练。
[0171]
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元
(ram)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(rom)11203。
[0172]
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0173]
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0174]
电子设备1100也可以与一个或多个外部设备1200(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0175]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0176]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
[0177]
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0178]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0179]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、
光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0180]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0181]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0182]
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0183]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献