一种基于激励机制的联邦学习优化方法及系统

文档序号:31859739发布日期:2022-10-19 04:22阅读:144来源:国知局
一种基于激励机制的联邦学习优化方法及系统

1.本技术涉及联邦学习优化技术领域,尤其涉及一种基于激励机制的联邦学习优化方法及系统。


背景技术:

2.2017年,谷歌给出了联邦学习的定义,联邦学习是机器学习的一种分布式训练范式,在不需要把数据进行汇集的情况下,在每一轮训练中仅传递模型之间的参数就可实现模型训练,由于联邦学习的这一优势,目前,它在医疗保健,工业制造,自动驾驶等领域中得到广泛应用,用于解决数据分散且私密的问题。虽然它有很多优点,但是不可避免的也存在一些问题。
3.首先,传统的联邦学习需要假设客户端自愿奉献自己的数据加入训练,然而,由于客户端的自利性,拥有高质量数据的客户端不愿意进行模型训练,这将会影响训练的精度与轮次。为了解决这个问题,人们提出使用主观逻辑计算各个客户端执行任务后的信誉值,基于合同理论设计激励机制,通过奖励贡献多的客户端更多的奖励,进而激励拥有高质量数据的客户端加入训练。由于合同理论的激励机制设计的合约是提前规定的,客户端只能选择是否接受合同,缺乏一定的灵活性,同时,基于主观逻辑模型设计信誉值存在主观性判断因素。有人针对基于合同理论的激励机制中存在的灵活性问题,提出多维采购拍卖方案,客户端有更多机会提交任何资源组合和预期付款。有人针对使用主观逻辑模型设计信誉值存在的主观判断因素的问题,使用模型质量参数来计算信誉值从而判断客户端的可靠性,提高信誉值在系统中的价值。
4.其次,客户端之间的性能不均衡以及网络中存在的流浪者,使客户端训练时间相差大,从而导致客户端传递的局部梯度到达服务器的时间间隔大,客户端之间相互等待,这是并行计算中普遍存在的问题。为缩短各参与者间的等待时间,人们提出异步解决方案,在收到单个客户端的局部梯度后,直接立即更新全局梯度,并把该全局梯度传递给各个客户端,进而解决客户端等待问题,然而当客户端间数据的分布不一致时训练的结果将不正确。为解决上述问题,有人提出fedcs协议过滤掉低性能客户端,但是该方案会与高性能客户端训练结果过度拟合。此外,也有人提出聚合陈旧与正常模型以加快收敛速度,但是该算法要求客户端在每轮训练中同时上传模型参数和梯度参数,这意味着传输的数据量是平均梯度算法的两倍,花在数据传输上的时间将会增加。为不增加数据传输时间,同时解决客户端间性能不均衡问题,人们提出梯度部分聚合算法,在该算法中,服务器只聚合适当数量的客户端局部梯度,但是聚合的客户端数量针对不同的训练任务会有所变化,需要额外的工作确定适合的参与聚合的具体客户端数量。
5.最后,传统的联邦学习使用梯度平均的方式进行聚合,忽略了高精度客户端在训练中的贡献,从而增加训练的轮次,为解决该问题,人们提出使用与数据质量相关的参数作为梯度聚合的权重,增加高质量数据的局部梯度在全局梯度中的占比.
6.然而,目前没有方案从激励拥有高质量数据的客户端加入训练,解决客户端性能
不均衡问题和聚合策略三方面入手去解决模型训练轮次多,时间长的技术问题,因此,本技术提供了一种基于激励机制的联邦学习优化方法以解决上述技术问题。


技术实现要素:

7.本技术提供了一种基于激励机制的联邦学习优化方法及系统,解决了目前没有方案从激励拥有高质量数据的客户端加入训练,解决客户端性能不均衡问题和聚合策略三方面入手去解决模型训练轮次多,时间长的技术问题。
8.有鉴于此,本技术第一方面提供了一种基于激励机制的联邦学习优化方法,所述方法包括:
9.任务发布客户端向训练客户端网络发布训练任务、奖励规则以及资源要求,使得训练客户端网络中基于奖励规则能够获得收益的训练客户端与任务发布客户端签订合约;
10.训练客户端向雾节点网络发布本地训练任务,由雾节点网络中的各雾节点参与竞拍并提供竞拍信息,竞拍信息包括频率、支付函数以及训练本地训练数据的单次时间;
11.训练客户端将基于支付函数的报价最低且训练本地训练数据的时间最短的雾节点作为竞拍获胜雾节点来执行本地训练任务;
12.训练客户端向竞拍获胜雾节点发送本地训练数据,由竞拍获胜雾节点对本地训练数据进行训练并上传局部模型至服务器;
13.服务器对局部模型进行聚合得到全局梯度,并传递全局梯度给竞拍获胜雾节点,由竞拍获胜雾节点更新模型参数并进行下一轮训练;
14.每轮训练后,服务器根据预设信誉值计算规则重新计算训练客户端的信誉值,并存入区块链中;
15.每轮训练后,根据奖励规则以及训练客户端的信誉值计算训练客户端的奖励,同时训练客户端结算与竞拍获胜雾节点的奖励。
16.可选地,所述资源要求包括本地训练数据的数据大小,数据类型,本地训练的时间阈值以及训练需要达到的精度;
17.本地训练任务task(gmodel,data_size,sys_time,s)包括全局模型gmodel,训练数据量data_size,竞拍结束时间sys_time,服务器标识s。
18.可选地,所述训练客户端向竞拍获胜雾节点发送本地训练数据之前还包括:
19.训练客户端对本地训练数据进行加密。
20.可选地,所述服务器对局部模型进行聚合得到全局梯度具体为:
[0021][0022]
其中,为训练客户端i的第n轮训练的局部梯度。
[0023]
可选地,所述预设信誉值计算规则具体包括:
[0024]
精度信誉值
[0025][0026]
其中,且curret_task,task
x
分别表示当前任务与任务x,sim(h,i)表示任务h与任务i的相似度,为训练客户端i在第n轮的数据质量,q
min
为数据质量阈值;
[0027][0028]
h和i分别表示执行任务h与任务i的客户端集合。γ=h∩i表示同时执行任务h与任务i的客户端的集合,和分别表示在t时刻执行任务h与任务i时所有客户端的平均信誉值,和分别表示在t时刻执行任务h与任务i时训练客户端j的信誉值,满足0<sim(h,i)<1。
[0029]
可选地,所述预设信誉值计算规则还包括:
[0030]
时间信誉值
[0031][0032]
其中,满足t
ex
为期望的训练时间。
[0033]
可选地,所述预设信誉值计算规则还包括:
[0034]
总信誉值r_ati,r_ati=r_ai*r_ti。
[0035]
可选地,所述训练客户端的奖励具体为:
[0036]
r_t
min
为容忍的最小时间信誉值。
[0037]
可选地,所述训练客户端结算与竞拍获胜雾节点的奖励具体为:
[0038][0039]
其中:
[0040]
pi'(r_ati)=φ*(t
ex-tr)*r_ati,t
ex
为期望的训练时间,tr为实际训练的总时间;
[0041]cidi
为训练客户端运行一次本地迭代所需的cpu周期数。
[0042]
本技术第二方面提供一种基于激励机制的联邦学习优化系统,所述系统包括:
[0043]
任务发布客户端、至少一个训练客户端构成的训练客户端网络、至少一个雾节点构成的雾节点网络以及服务器;
[0044]
任务发布客户端向训练客户端网络发布训练任务、奖励规则以及资源要求,使得训练客户端网络中基于奖励规则能够获得收益的训练客户端与任务发布客户端签订合约;
[0045]
训练客户端向雾节点网络发布本地训练任务,由雾节点网络中的各雾节点参与竞拍并提供竞拍信息,竞拍信息包括频率、支付函数以及训练本地训练数据的单次时间;
[0046]
训练客户端将基于支付函数的报价最低且训练本地训练数据的时间最短的雾节点作为竞拍获胜雾节点来执行本地训练任务;
[0047]
训练客户端向竞拍获胜雾节点发送本地训练数据,由竞拍获胜雾节点对本地训练数据进行训练并上传局部模型至服务器;
[0048]
服务器对局部模型进行聚合得到全局梯度,并传递全局梯度给竞拍获胜雾节点,由竞拍获胜雾节点更新模型参数并进行下一轮训练;
[0049]
每轮训练后,服务器根据预设信誉值计算规则重新计算训练客户端的信誉值,并存入区块链中;
[0050]
每轮训练后,根据奖励规则以及训练客户端的信誉值计算训练客户端的奖励,同时训练客户端结算与竞拍获胜雾节点的奖励。
[0051]
从以上技术方案可以看出,本技术实施例具有以下优点:
[0052]
本技术中,提供了一种基于激励机制的联邦学习优化方法,基于信誉值建立奖励机制,激励拥有高质量数据且能高效训练本地数据的训练客户端加入训练,只有具有高精度局部梯度与高训练效率才能获得高奖励,基于拍卖理论设计拍卖机制,训练客户端通过向雾节点拍卖本地训练任务,委托雾节点训练本地数据从而提升本地训练效率,解决训练客户端间由于性能不均而相互等待的问题,设计全局梯度聚合策略,增加高精度局部梯度在全局梯度中的权重,剔除恶意训练客户端的局部梯度,从而减少模型训练次数,整体解决了目前没有方案从激励拥有高质量数据的客户端加入训练,解决客户端性能不均衡问题和聚合策略三方面入手去解决模型训练轮次多,时间长的技术问题。
附图说明
[0053]
图1为本技术实施例中一种基于激励机制的联邦学习优化方法的方法流程图;
[0054]
图2为本技术实施例中一种基于激励机制的联邦学习优化系统的系统模型图;
[0055]
图3为本技术实施例中一种基于激励机制的联邦学习优化方法中竞拍流程图。
具体实施方式
[0056]
为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0057]
本技术设计了一种基于激励机制的联邦学习优化方法及系统,解决了目前没有方案从激励拥有高质量数据的客户端加入训练,解决客户端性能不均衡问题和聚合策略三方面入手去解决模型训练轮次多,时间长的技术问题。
[0058]
为了便于理解,请参阅图1,图1为本技术实施例中一种基于激励机制的联邦学习优化方法的方法流程图,如图1所示,具体为:
[0059]
101、任务发布客户端向训练客户端网络发布训练任务、奖励规则以及资源要求,使得训练客户端网络中基于奖励规则能够获得收益的训练客户端与任务发布客户端签订合约;
[0060]
需要说明的是,任务发布者通过任务发布客户端向训练客户端网络中的各个训练客户端发布训练任务,同时发布奖励规则以及资源要求,其中:
[0061]
资源要求包括本地训练数据的数据大小,数据类型,本地训练的时间阈值以及训练需要达到的精度。
[0062]
训练客户端可以根据自己的实际情况来判断是否能够从中获利,并选择是否与任务发布客户端就训练任务签订合约,签订合约的双方可以提交押金作为保障。
[0063]
102、训练客户端向雾节点网络发布本地训练任务,由雾节点网络中的各雾节点参与竞拍并提供竞拍信息,竞拍信息包括频率、支付函数以及训练本地训练数据的单次时间;
[0064]
需要说明的是,在训练客户端确认加入模型训练后,在训练开始前,向雾节点网络发布本地训练任务task(gmodel,data_size,sys_time,s(包括全局模型gmodel,训练数据量data_size,竞拍结束时间sys_time,服务器标识s;同时发布雾节点彩玉竞拍需提供的竞拍信息b(f,p),竞拍信息b(f,p)包括频率,支付函数。
[0065]
103、训练客户端将基于支付函数的报价最低且训练本地训练数据的时间最短的雾节点作为竞拍获胜雾节点来执行本地训练任务;
[0066]
需要说明的是,请参阅图3,满足本地训练任务要求的雾节点将参与竞拍,根据训练开销提交竞拍的竞拍信息bi(fi,pi)。雾节点不能以更高的竞标价获得本地训练任务,且根据个人理性性质,雾节点不可能在收益低于其自身训练开销时接受训练任务,所以竞拍获胜雾节点的竞拍价是唯一的。
[0067]
每个训练客户端按收益最大化原则选择一个雾节点代替其训练,频率高、支付最低的雾节点将成为最终赢家进行本地训练。训练客户端根据雾节点的出价计算自身可获得收益,如式:utilityi=pi(r_ai,r_t
x
)-p
x

[0068]
此时训练客户端的信誉值取系统当前对应训练客户端的信誉值,并选择能使其获得最大收益的雾节点作为竞拍获胜雾节点执行训练任务。同时,竞拍获胜雾节点需要与客户端签订委托合约,并提交押金,训练完成后退还竞拍获胜雾节点押金,一旦竞拍获胜雾节点违背承诺,竞拍获胜雾节点的押金将传递给训练客户端弥补竞拍获胜雾节点违背承诺给训练客户端带来的损失。
[0069]
每轮训练中以聚合后的全局梯度为基准,损失函数在机器学习中经常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型,反应了训练结果优劣,因此使用损失函数值作为模型精度的衡量标准,训练客户端i在第n轮的数据质量计算公式为
[0070]
为迫使训练客户端在每一轮训练中都使用高质量数据进行训练,设计的信誉值不仅受该轮次数据质量的影响,同样受其之前训练精度的影响,训练轮次越新,对信誉值的影响越大,训练客户端i在第n轮训练后的信誉值为:
[0071][0072]
其中,且
[0073]
此外,训练客户端的信誉值也受其在执行相似任务时训练的模型精度的影响,也受到执行相似任务时的时间与执行当前任务时间的差的影响,在第n轮训练结束时训练客户端的信誉值为:
[0074][0075]
有其中curret_task,task
x
分别表示当前任务与任务x,sim(h,i)表示任务h与任务i的相似度,使用修正余弦函数衡量该相似度,即:
[0076][0077]
h和i分别表示执行任务h与任务i的训练客户端集合。γ=h∩i,表示同时执行任务h与任务i的训练客户端的集合,和分别表示在t时刻执行任务h与任务i时所有训练客户端的平均信誉值,和分别表示在t时刻执行任务h与任务i时训练客户端j的信誉值,满足0<sim(h,i)<1。
[0078]
为防止恶意训练客户端在训练的某一轮次中加入低质量数据影响训练结果,通过设计精度信誉值计算策略,增加训练客户端使用低质量数据训练时精度信誉值降低的速度,减缓训练客户端使用高质量数据训练数据时精度信誉值的增长速度。设定数据质量阈值q
min
,与精度相关的精度信誉值更新如下:
[0079][0080]
与时间相关的时间信誉值同样考虑训练客户端的训练时间高于阈值t
max
时,提高时间信誉值下降速度,解决训练客户端惰性问题。由于在不同任务中任务发布者期望的每轮训练时间有所差异,因此与时间相关的时间信誉值不考虑训练客户端执行其他任务时的表现,具体如下:
[0081][0082]
其中,满足时间信誉值越小,本地训练的时间越短。
[0083]
总信誉值与时间和精度相关,且只有当r_ai和r_ti都高时总信誉值最优,存在一方信誉值低则总信誉值则低。具体计算公式为:
[0084]
r_ati=r_ai*r_ti。
[0085]
104、训练客户端向竞拍获胜雾节点发送本地训练数据,由竞拍获胜雾节点对本地训练数据进行训练并上传局部模型至服务器;
[0086]
需要说明的是,雾节点接近边缘设备,是一种在网络边缘提供计算服务的云扩展,所以训练客户端向竞拍获胜雾节点传送数据的通信开销在本文中不做考虑。训练客户端从本地选择数据量为data_size的高质量数据传递给竞拍获胜雾节点。之后,本地训练任务由竞拍获胜雾节点完成。
[0087]
105、服务器对局部模型进行聚合得到全局梯度,并传递全局梯度给竞拍获胜雾节点,由竞拍获胜雾节点更新模型参数并进行下一轮训练;
[0088]
需要说明的是,服务器对局部模型进行聚合得到全局梯度,并传递全局梯度给竞拍获胜雾节点,竞拍获胜雾节点更新模型参数并进行下一轮训练。其中全局梯度聚和遵循式:
[0089]
106、每轮训练后,服务器根据预设信誉值计算规则重新计算训练客户端的信誉值,并存入区块链中;
[0090]
107、每轮训练后,根据奖励规则以及训练客户端的信誉值计算训练客户端的奖励,同时训练客户端结算与竞拍获胜雾节点的奖励。
[0091]
需要说明的是,任务发布者发布模型以及希望模型训练的时间t,希望到达的精度。
[0092]
每轮本地迭代时间为:
[0093][0094]
其中,训练客户端运行一次本地迭代所需的cpu周期数为c
idi

[0095]
用于本地训练的能量消耗为:
[0096][0097]
由上两式可得:
[0098][0099]
根据个人理性可知,只有训练客户端的收益非负时,才愿意加入训练,所以满足:
[0100][0101]
训练客户端挑选高质量数据参与模型训练,把模型的总体信誉值作为支付的衡量标准,支付函数。由上面公式可知,本地训练消耗的能量与训练时间成平方的反比,所以支付函数如下:
[0102][0103]
其中:
[0104]
r_t
min
为容忍的最小时间信誉值,高于该信誉值训练客户端将获得奖励,相反则训练客户端将不会获得奖励。
[0105]
r_a
min
为容忍的最小精度信誉值,只有信誉值不低于该值,训练客户端才能获得奖励,最终只有当训练客户端训练的本地模型精度高且花费的训练时间低时才能获得高奖励。对于理性的训练客户端,只有训练的收益非负时才会加入训练。
[0106]
针对训练客户端的总体表现,对训练轮次减少而缩短总体时间的情况给以奖励,如下:
[0107]
pi'(r_ati)=φ*(t
ex-tr)*r_ati;
[0108]
其中,t
ex
为期望的训练时间,tr为实际训练的总时间。
[0109]
训练客户端i的总收益为:
[0110][0111]
请参阅图2,本技术实施例还提供一种基于激励机制的联邦学习优化系统,所述系统包括:
[0112]
任务发布客户端、至少一个训练客户端21构成的训练客户端网络、至少一个雾节点22构成的雾节点网络以及服务器23;
[0113]
任务发布客户端向训练客户端网络发布训练任务、奖励规则以及资源要求,使得训练客户端网络中基于奖励规则能够获得收益的训练客户端21与任务发布客户端签订合
约;
[0114]
训练客户端21向雾节点网络发布本地训练任务,由雾节点网络中的各雾节点22参与竞拍并提供竞拍信息,竞拍信息包括频率、支付函数以及训练本地训练数据的单次时间;
[0115]
训练客户端21将基于支付函数的报价最低且训练本地训练数据的时间最短的雾节点22作为竞拍获胜雾节点来执行本地训练任务;
[0116]
训练客户端21向竞拍获胜雾节点发送本地训练数据,由竞拍获胜雾节点对本地训练数据进行训练并上传局部模型至服务器23;
[0117]
服务器23对局部模型进行聚合得到全局梯度,并传递全局梯度给竞拍获胜雾节点,由竞拍获胜雾节点更新模型参数并进行下一轮训练;
[0118]
每轮训练后,服务器23根据预设信誉值计算规则重新计算训练客户端21的信誉值,并存入区块链24中;
[0119]
每轮训练后,根据奖励规则以及训练客户端21的信誉值计算训练客户端21的奖励,同时训练客户端21结算与竞拍获胜雾节点的奖励。
[0120]
本技术实施例中,提供了一种基于激励机制的联邦学习优化方法,基于信誉值建立奖励机制,激励拥有高质量数据且能高效训练本地数据的训练客户端加入训练,只有具有高精度局部梯度与高训练效率才能获得高奖励,基于拍卖理论设计拍卖机制,训练客户端通过向雾节点拍卖本地训练任务,委托雾节点训练本地数据从而提升本地训练效率,解决训练客户端间由于性能不均而相互等待的问题,设计全局梯度聚合策略,增加高精度局部梯度在全局梯度中的权重,剔除恶意训练客户端的局部梯度,从而减少模型训练次数,整体解决了目前没有方案从激励拥有高质量数据的客户端加入训练,解决客户端性能不均衡问题和聚合策略三方面入手去解决模型训练轮次多,时间长的技术问题。
[0121]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0122]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0123]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0124]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0125]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0126]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0127]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-only memory,英文缩写:rom)、随机存取存储器(英文全称:random access memory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0128]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1