基于区块链的联邦学习的数据共享激励方法、装置及设备转让专利

申请号 : CN202310281737.4

文献号 : CN116029370B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王滨王星谢瀛辉王琴赵海涛张为聪史心玥王伟

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请提供一种基于区块链的联邦学习的数据共享激励方法、装置及设备,包括:将初始全局模型参数添加至目标区块链,以使终端设备从目标区块链下载初始全局模型参数,基于初始全局模型参数获取局部模型参数,将局部模型参数添加至目标区块链;从目标区块链下载局部模型参数,基于局部模型参数确定目标全局模型参数;若目标全局模型参数已收敛,则将目标全局模型参数确定为已训练参数,已训练参数用于对数据进行处理;在得到目标全局模型参数后,基于局部模型参数对应的预测准确率确定终端设备对应的目标奖励率。通过本申请方案,提高模型训练过程的效率,模型训练的收敛速度更快。

权利要求 :

1.一种基于区块链的联邦学习的数据共享激励方法,其特征在于,应用于服务器,包括:将初始全局模型参数添加至目标区块链,以使终端设备从所述目标区块链下载所述初始全局模型参数,并基于所述初始全局模型参数获取局部模型参数,并将所述局部模型参数添加至所述目标区块链;

从所述目标区块链下载所述局部模型参数,基于所述局部模型参数确定目标全局模型参数;若所述目标全局模型参数未收敛,则将所述目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若所述目标全局模型参数已收敛,则将所述目标全局模型参数确定为已训练参数;其中,所述已训练参数用于对图像数据进行处理;

在得到所述目标全局模型参数之后,基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率,并基于所述目标奖励率为所述终端设备分配奖励;

其中,所述基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率,包括:获取多个候选奖励率;针对每个候选奖励率,基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值,并获取所述服务器在训练任务中对应的服务效用值;

基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率;

其中,所述基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值,包括:基于所述预测准确率和所述候选奖励率确定所述终端设备对应的总奖励值;

基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值;其中,所述第一成本参数包括模型训练过程中的每秒CPU周期数和模型训练过程中的总CPU周期数,所述第二成本参数包括区块链操作过程中的每秒CPU周期数和区块链操作过程中的总CPU周期数;

基于所述总奖励值和所述总成本值,确定所述用户效用值。

2.根据权利要求1所述的方法,其特征在于,

所述基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值,包括:基于所述第一成本参数确定第一成本值;

基于所述第二成本参数确定第二成本值;

基于所述预测准确率确定模型训练过程中的迭代次数;

基于所述第一成本值、所述第二成本值和所述迭代次数确定所述总成本值。

3.根据权利要求1所述的方法,其特征在于,

所述基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述服务器在训练任务中对应的服务效用值,包括:基于所述局部模型参数对应的预测准确率确定全局性能值;

基于所述局部模型参数对应的预测准确率、所述终端设备的模型训练时长、所述终端设备的模型下载时长和模型上传时长,确定全局时间成本;

基于所述预测准确率和所述候选奖励率确定全局奖励值;

基于全局性能值、全局时间成本和全局奖励值,确定所述服务效用值。

4.根据权利要求1‑3任一项所述的方法,其特征在于,

所述基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率,包括:基于第一约束条件、第二约束条件、第三约束条件和第四约束条件,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率;其中,所述第一约束条件用于使所述目标奖励率对应的用户效用值最大;所述第二约束条件用于使所述目标奖励率对应的服务效用值最大;所述第三约束条件用于使所述目标奖励率对应的总奖励值大于或等于所述终端设备对应的总成本值;所述第四约束条件用于使所述目标奖励率对应的总奖励值小于或等于奖励上限值。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:确定所述终端设备对应的奖励上限值,所述奖励上限值的确定过程,包括:获取所述终端设备在训练任务中对应的总贡献值;

基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,并基于所述平均预测准确率和已配置的目标性能值确定性能参数值;

基于所述总贡献值和所述性能参数值确定所述奖励上限值。

6.一种基于区块链的联邦学习的数据共享激励装置,其特征在于,应用于服务器,包括:发送模块,用于将初始全局模型参数添加至目标区块链,以使终端设备从所述目标区块链下载所述初始全局模型参数,并基于所述初始全局模型参数获取局部模型参数,并将所述局部模型参数添加至所述目标区块链;

确定模块,用于从所述目标区块链下载所述局部模型参数,基于所述局部模型参数确定目标全局模型参数;若所述目标全局模型参数未收敛,则将所述目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若所述目标全局模型参数已收敛,则将所述目标全局模型参数确定为已训练参数,所述已训练参数用于对图像数据进行处理;

处理模块,用于在得到所述目标全局模型参数之后,基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率,并基于所述目标奖励率为所述终端设备分配奖励;

其中,所述处理模块基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率时具体用于:获取多个候选奖励率;针对每个候选奖励率,基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值,并获取所述服务器在训练任务中对应的服务效用值;基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率;

其中,所述处理模块基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值时具体用于:基于所述预测准确率和所述候选奖励率确定所述终端设备对应的总奖励值;基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值;

基于所述总奖励值和所述总成本值,确定所述终端设备在训练任务中对应的用户效用值;

其中,所述第一成本参数包括模型训练过程中的每秒CPU周期数和模型训练过程中的总CPU周期数,所述第二成本参数包括区块链操作过程中的每秒CPU周期数和区块链操作过程中的总CPU周期数。

7.根据权利要求6所述的装置,其特征在于,

其中,所述处理模块基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值时具体用于:基于第一成本参数确定第一成本值;基于第二成本参数确定第二成本值;基于所述预测准确率确定模型训练过程中的迭代次数;基于第一成本值、第二成本值和所述迭代次数确定所述总成本值;

其中,所述处理模块基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述服务器在训练任务中对应的服务效用值时具体用于:基于所述预测准确率确定全局性能值;基于所述预测准确率、所述终端设备的模型训练时长、所述终端设备的模型下载时长和模型上传时长,确定全局时间成本;基于所述预测准确率和所述候选奖励率确定全局奖励值;基于所述全局性能值、所述全局时间成本和所述全局奖励值,确定所述服务效用值;

其中,所述处理模块基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率时具体用于:基于第一约束条件、第二约束条件、第三约束条件和第四约束条件,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率;其中,所述第一约束条件用于使所述目标奖励率对应的用户效用值最大;所述第二约束条件用于使所述目标奖励率对应的服务效用值最大;所述第三约束条件用于使所述目标奖励率对应的总奖励值大于或等于所述终端设备对应的总成本值;所述第四约束条件用于使所述目标奖励率对应的总奖励值小于或等于奖励上限值;

其中,所述处理模块,还用于确定所述终端设备对应的奖励上限值,所述处理模块确定所述终端设备对应的奖励上限值时具体用于:获取所述终端设备在训练任务中对应的总贡献值;基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,基于所述平均预测准确率和已配置的目标性能值确定性能参数值;基于所述总贡献值和所述性能参数值确定所述奖励上限值。

8.一种电子设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1‑5任一所述的方法。

说明书 :

基于区块链的联邦学习的数据共享激励方法、装置及设备

技术领域

[0001] 本申请涉及数据处理技术领域,尤其是涉及一种基于区块链的联邦学习的数据共享激励方法、装置及设备。

背景技术

[0002] 机器学习是实现人工智能的一种途径,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习更加注重算法设计,使计算机能够自动地从数据中学习规律,并利用规律对未知数据进行预测。机器学习已经有了十分广泛的应用,如深度学习、数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、语音识别和手写识别等。
[0003] 为了采用机器学习实现人工智能处理,需要获取大量样本数据(如图像数据,即具有标签数据的图像),并基于这些样本数据训练出机器学习模型(如具有目标检测功能、目标分类功能的机器学习模型),并将机器学习模型部署到终端设备,以使终端设备基于机器学习模型实现人工智能处理。
[0004] 由于终端设备本地的样本数据的数量有限,无法训练出性能比较高的机器学习模型,因此,每个终端设备均需要将本地的样本数据发送给服务器,由服务器基于多个终端设备的大量样本数据训练出机器学习模型。
[0005] 但是,上述方式需要在终端设备与服务器之间传输样本数据,存在数据安全隐患,无法保证数据安全,样本数据作为终端设备的数字资产,终端设备不愿意向服务器共享样本数据。由于需要在终端设备与服务器之间传输大量样本数据(如图像数据),这些样本数据需要占用大量带宽资源。

发明内容

[0006] 有鉴于此,本申请提供一种基于区块链的联邦学习的数据共享激励方法、装置及设备,能够减少传输终端设备的数据,从而保证数据的安全性。
[0007] 本申请提供一种基于区块链的联邦学习的数据共享激励方法,应用于服务器,包括:将初始全局模型参数添加至目标区块链,以使终端设备从所述目标区块链下载所述初始全局模型参数,并基于所述初始全局模型参数获取局部模型参数,并将所述局部模型参数添加至所述目标区块链;
[0008] 从所述目标区块链下载所述局部模型参数,基于所述局部模型参数确定目标全局模型参数;若所述目标全局模型参数未收敛,则将所述目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若所述目标全局模型参数已收敛,则将所述目标全局模型参数确定为已训练参数;其中,所述已训练参数用于对数据进行处理;
[0009] 在得到所述目标全局模型参数之后,基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率。
[0010] 本申请提供一种基于区块链的联邦学习的数据共享激励装置,应用于服务器,包括:发送模块,用于将初始全局模型参数添加至目标区块链,以使终端设备从所述目标区块链下载所述初始全局模型参数,并基于所述初始全局模型参数获取局部模型参数,并将所述局部模型参数添加至所述目标区块链;
[0011] 确定模块,用于从所述目标区块链下载所述局部模型参数,基于所述局部模型参数确定目标全局模型参数;若所述目标全局模型参数未收敛,则将所述目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若所述目标全局模型参数已收敛,则将所述目标全局模型参数确定为已训练参数,所述已训练参数用于对数据进行处理;
[0012] 处理模块,用于在得到所述目标全局模型参数之后,基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率。
[0013] 本申请提供一种电子设备,包括:处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令;其中,处理器用于执行机器可执行指令,以实现上述的基于区块链的联邦学习的数据共享激励方法。
[0014] 另一方面,本申请提供一种机器可读存储介质,所述机器可读存储介质存储有能够被处理器执行的机器可执行指令;其中,所述处理器用于执行所述机器可执行指令,以实现上述的基于区块链的联邦学习的数据共享激励方法。
[0015] 另一方面,本申请提供一种计算机程序,所述计算机程序存储于机器可读存储介质,当处理器执行所述机器可读存储介质中的所述计算机程序时,促使所述处理器实现上述的基于区块链的联邦学习的数据共享激励方法。
[0016] 由以上技术方案可见,本申请实施例中,终端设备与服务器之间传输的是局部模型参数,而不是终端设备的数据,从而保护终端设备的数字资产,保证数据安全。由于终端设备与服务器之间传输的是局部模型参数,不是大量数据(如图像数据),从而节省带宽资源。将区块链引入模型训练过程,服务器将初始全局模型参数添加至目标区块链,且终端设备将局部模型参数添加至目标区块链,由于目标区块链具有不可否认性和抗篡改性,因此,可以减少模型参数被篡改的可能性,保证模型参数的准确性,从而提高模型训练过程的效率,能够更快的得到已训练参数,模型训练时间更短,模型训练的收敛速度更快,模型精度更高。在得到目标全局模型参数之后,基于局部模型参数对应的预测准确率确定终端设备对应的目标奖励率,基于目标奖励率为终端设备分配奖励,从而能够保证奖励被合理的分配给各个终端设备,终端设备能够根据奖励提供较高质量的计算资源,使得资源能够合理分配,有效利用计算资源完成训练,满足高效的数据安全共享要求,满足模型精度和训练时间消耗的要求。

附图说明

[0017] 图1是基于区块链的联邦学习的数据共享激励方法的流程示意图;
[0018] 图2是基于区块链的联邦学习的数据共享激励方法的流程示意图;
[0019] 图3是基于区块链的联邦学习的数据共享激励方法的流程示意图;
[0020] 图4是基于区块链的联邦学习的数据共享激励方法的示意图;
[0021] 图5是基于区块链的联邦学习的数据共享激励装置的结构示意图;
[0022] 图6是本申请一种实施方式中的电子设备的硬件结构图。

具体实施方式

[0023] 在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
[0024] 应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0025] 本申请实施例中提出一种基于区块链的联邦学习的数据共享激励方法,可以应用于数据处理系统中的服务器(也称为中心服务器),数据处理系统还包括多个终端设备,参见图1所示,为该方法的流程示意图,该方法可以包括:
[0026] 步骤101、将初始全局模型参数添加至目标区块链,以使终端设备从该目标区块链下载该初始全局模型参数,并基于该初始全局模型参数获取局部模型参数,并将该局部模型参数添加至该目标区块链。
[0027] 步骤102、从该目标区块链下载该局部模型参数,并基于该局部模型参数确定目标全局模型参数;若该目标全局模型参数未收敛,则可以将该目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若该目标全局模型参数已收敛,则可以将目标全局模型参数确定为已训练参数;其中,已训练参数用于对数据进行处理,如人工智能处理等。
[0028] 步骤103、在得到目标全局模型参数之后,针对每个终端设备,基于该终端设备的局部模型参数对应的预测准确率确定该终端设备对应的目标奖励率,在得到目标奖励率之后,就可以基于目标奖励率为终端设备分配奖励。
[0029] 在一种可能的实施方式中,基于局部模型参数对应的预测准确率确定终端设备对应的目标奖励率,可以包括但不限于:获取多个候选奖励率;针对每个候选奖励率,基于该局部模型参数对应的预测准确率和该候选奖励率,可以获取终端设备在训练任务中对应的用户效用值,并获取服务器在训练任务中对应的服务效用值;基于每个候选奖励率对应的用户效用值和服务效用值,可以从多个候选奖励率中选取终端设备对应的目标奖励率。
[0030] 示例性的,基于该局部模型参数对应的预测准确率和该候选奖励率,获取终端设备在训练任务中对应的用户效用值,可以包括但不限于:基于该预测准确率和该候选奖励率确定终端设备对应的总奖励值;基于该预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定终端设备对应的总成本值;基于总奖励值和总成本值,确定该用户效用值。
[0031] 示例性的,基于该预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定终端设备对应的总成本值,可以包括但不限于:基于第一成本参数确定第一成本值,第一成本参数可以包括模型训练过程中的每秒CPU周期数和模型训练过程中的总CPU周期数;基于第二成本参数确定第二成本值,第二成本参数可以包括区块链操作过程中的每秒CPU周期数和区块链操作过程中的总CPU周期数;基于预测准确率确定模型训练过程中的迭代次数;基于第一成本值、第二成本值和迭代次数确定总成本值。
[0032] 示例性的,基于该局部模型参数对应的预测准确率和该候选奖励率,获取服务器在训练任务中对应的服务效用值,可以包括但不限于:基于该局部模型参数对应的预测准确率确定全局性能值;基于该局部模型参数对应的预测准确率、终端设备的模型训练时长、终端设备的模型下载时长和模型上传时长,确定全局时间成本;基于该局部模型参数对应的预测准确率和该候选奖励率确定全局奖励值;基于全局性能值、全局时间成本和全局奖励值,确定服务效用值。
[0033] 示例性的,基于每个候选奖励率对应的用户效用值和服务效用值,从多个候选奖励率中选取终端设备对应的目标奖励率,可以包括但不限于:基于第一约束条件、第二约束条件、第三约束条件和第四约束条件,从多个候选奖励率中选取终端设备对应的目标奖励率。其中,该第一约束条件可以用于使目标奖励率对应的用户效用值最大;该第二约束条件可以用于使目标奖励率对应的服务效用值最大;该第三约束条件可以用于使目标奖励率对应的总奖励值大于或等于终端设备对应的总成本值;该第四约束条件可以用于使目标奖励率对应的总奖励值小于或等于奖励上限值。或者,基于第一约束条件和第二约束条件,从多个候选奖励率中选取终端设备对应的目标奖励率。或者,基于第一约束条件、第二约束条件和第三约束条件,从多个候选奖励率中选取终端设备对应的目标奖励率。或者,基于第一约束条件、第二约束条件和第四约束条件,从多个候选奖励率中选取终端设备对应的目标奖励率。当然,上述只是示例,对此不做限制,可以基于第一约束条件、第二约束条件、第三约束条件和第四约束条件中的至少一个,从多个候选奖励率中选取终端设备对应的目标奖励率。
[0034] 示例性的,还可以确定终端设备对应的奖励上限值,终端设备对应的奖励上限值的确定过程,可以包括但不限于:获取终端设备在训练任务中对应的总贡献值;基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,并基于平均预测准确率和已配置的目标性能值确定性能参数值;在此基础上,可以基于该总贡献值和该性能参数值确定奖励上限值。
[0035] 由以上技术方案可见,本申请实施例中,终端设备与服务器之间传输的是局部模型参数,而不是终端设备的数据,从而保护终端设备的数字资产,保证数据安全。由于终端设备与服务器之间传输的是局部模型参数,不是大量数据(如图像数据),从而节省带宽资源。将区块链引入模型训练过程,服务器将初始全局模型参数添加至目标区块链,且终端设备将局部模型参数添加至目标区块链,由于目标区块链具有不可否认性和抗篡改性,因此,可以减少模型参数被篡改的可能性,保证模型参数的准确性,从而提高模型训练过程的效率,能够更快的得到已训练参数,模型训练时间更短,模型训练的收敛速度更快,模型精度更高。在得到目标全局模型参数之后,可以基于局部模型参数对应的预测准确率确定终端设备对应的目标奖励率,并基于目标奖励率为终端设备分配奖励,从而能够保证奖励被合理的分配给各个终端设备,终端设备能够根据奖励提供较高质量的计算资源,使得资源能够合理分配,有效利用计算资源完成训练,满足高效的数据安全共享要求,满足模型精度和训练时间消耗的要求。
[0036] 以下结合具体应用场景,对本申请实施例的技术方案进行说明。
[0037] 为了采用机器学习实现人工智能处理,需要获取大量样本数据(如图像数据),并基于这些样本数据训练出机器学习模型,将机器学习模型部署到终端设备,终端设备基于机器学习模型实现人工智能处理。由于终端设备的样本数据的数量有限,无法训练出性能比较高的机器学习模型,因此,每个终端设备可以将本地的样本数据发送给服务器,由服务器基于多个终端设备的样本数据训练出机器学习模型。但是,上述方式需要在终端设备与服务器之间传输样本数据,存在数据安全隐患,无法保证数据安全,样本数据作为终端设备的数字资产,终端设备不愿意向服务器共享样本数据。由于需要在终端设备与服务器之间传输大量样本数据(如图像数据),这些样本数据需要占用大量带宽资源。
[0038] 针对上述发现,本申请实施例中提出一种基于区块链的联邦学习的数据共享激励方法,能够结合区块链实现联邦学习方法。其中,区块链是按照时间顺序将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,是利用块链式数据结构验证和存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用自动化脚本代码组成的智能合约。联邦学习是一种分布式机器学习框架,在保障数据安全的基础上,实现数据共享、共同建模,其核心思想是在多个终端设备共同参与模型训练时,不需要进行原始数据的流转,仅通过交互模型中间参数进行模型联合训练,可以实现数据保护和数据共享分析。
[0039] 进一步的,在终端设备参与到联邦学习过程时,会消耗终端设备的大量资源,考虑到终端设备的自私性,终端设备在没有奖励的情况下不愿协助联邦学习训练,可能会有意或无意地执行不受欢迎的行为,从而误导联邦学习任务的全局模型训练,降低全局模型的准确性。为此,本申请实施例中提出一种基于区块链的联邦学习的数据共享激励方法,可以激励终端设备参与联邦学习的训练,从而可以提高联邦学习任务的效率,最大化服务器的效益,能够满足高效的数据安全共享等要求,满足全局模型精度和训练时间消耗的要求,确保BFL系统的稳定性,即服务器能够确保奖励被合理的分配给各个终端设备,同时终端设备能够根据自身所获得的奖励提供较高质量的计算资源。
[0040] 示例性的,BFL是基于区块链的联邦学习框架,是区块链和FL(联邦学习)的结合,区块链作为一个去中心化的系统来提供激励和数据验证。
[0041] 本申请实施例中提出一种基于区块链的联邦学习的数据共享激励方法,可以应用于BFL系统(基于区块链的联邦学习系统),BFL系统可以包括服务器(也称为中心服务器)和多个终端设备,参见图2所示,该方法包括:
[0042] 步骤201、中心服务器获取初始全局模型参数。
[0043] 示例性的,中心服务器可以获取初始全局模型,对此初始全局模型的获取过程不做限制。该初始全局模型可以是机器学习模型,如基于深度学习算法的机器学习模型、基于神经网络的机器学习模型等,对此不做限制。可以将该初始全局模型的网络参数(即网络权重)称为初始全局模型参数。
[0044] 步骤202、中心服务器将初始全局模型参数添加至目标区块链。
[0045] 示例性的,中心服务器在得到初始全局模型参数之后,不是将初始全局模型参数发送给每个终端设备,而是将初始全局模型参数添加至目标区块链,这样,可以保证初始全局模型参的可靠性和准确性,使初始全局模型参不被篡改。
[0046] 步骤203、针对每个终端设备,终端设备可以从目标区块链下载该初始全局模型参数,并基于该初始全局模型参数获取局部模型参数。
[0047] 示例性的,终端设备可以维护样本数据集,该样本数据集可以包括多个样本数据(如图像数据、文本数据、音频数据等),这些样本数据可以是终端设备自身采集的数据,也可以是采用其它方式获取的数据,对此不做限制。
[0048] 终端设备从目标区块链下载初始全局模型参数之后,可以基于初始全局模型参数构建初始全局模型,并采用样本数据集对初始全局模型进行训练,对此训练过程不做限制,得到训练后的局部模型,可以将该局部模型的网络参数(即网络权重)称为局部模型参数。由于局部模型是基于样本数据集中的样本数据训练得到,因此,局部模型参数与终端设备的本地数据匹配。
[0049] 示例性的,终端设备在采用样本数据集对初始全局模型进行训练时,可以采用小批量梯度下降的方法初始全局模型进行训练,对此不做限制。
[0050] 步骤204、终端设备将局部模型参数添加至目标区块链。
[0051] 示例性的,终端设备在得到局部模型参数之后,不是将局部模型参数直接发送给中心服务器,而是将局部模型参数添加至目标区块链,这样,可以保证局部模型参数的可靠性和准确性,使得局部模型参数不被篡改。
[0052] 步骤205、中心服务器从目标区块链下载局部模型参数,并基于局部模型参数确定目标全局模型参数。比如说,中心服务器可以从目标区块链下载多个终端设备的局部模型参数,并基于多个局部模型参数确定目标全局模型参数。
[0053] 比如说,基于每个局部模型参数对应的权重系数,中心服务器可以对多个终端设备的局部模型参数进行加权运算,得到目标全局模型参数。
[0054] 比如说,中心服务器可以采用如下公式确定目标全局模型参数:
[0055] S=S1*W1+S2*W2+S3*W3+…+SI*WI
[0056] 在上述公式中,以I个局部模型参数为例,S表示目标全局模型参数,S1表示第1个终端设备的局部模型参数,W1表示第1个局部模型参数对应的权重系数,S2表示第2个终端设备的局部模型参数,W2表示第2个局部模型参数对应的权重系数,…,以此类推,SI表示第I个终端设备的局部模型参数,WI表示第I个局部模型参数对应的权重系数。其中,不同局部模型参数对应的权重系数可以相同,也可以不同,对各局部模型参数对应的权重系数不作限制。
[0057] 综上所述,中心服务器通过对多个局部模型参数进行加权运算,可以得到加权运算后的模型参数,将加权运算后的模型参数作为目标全局模型参数。
[0058] 步骤206、中心服务器确定目标全局模型参数是否已收敛。
[0059] 若否,则可以执行步骤207,若是,则可以执行步骤208。
[0060] 在一种可能的实施方式中,可以基于验证数据集确定目标全局模型参数对应的预测准确率。若目标全局模型参数对应的预测准确率大于收敛阈值(根据经验配置,如98%、99%等),则确定目标全局模型参数已收敛。若目标全局模型参数对应的预测准确率不大于收敛阈值,则确定目标全局模型参数未收敛。
[0061] 示例性的,中心服务器可以获取验证数据集,该验证数据集可以包括大量验证数据(如图像数据)和这些验证数据对应的真实结果,对此验证数据集不做限制。比如说,验证数据集可以包括验证数据s1和验证数据s1对应的真实结果s1‑1,表示采用模型对验证数据s1进行处理后,正确结果是真实结果s1‑1。
[0062] 中心服务器在得到目标全局模型参数之后,可以基于目标全局模型参数构建全局模型,并将验证数据集中的验证数据输入给该全局模型,由该全局模型对该验证数据进行处理,得到该验证数据对应的预测结果。若该验证数据对应的预测结果与该验证数据对应的真实结果相同,则表示该验证数据的预测正确,若该验证数据对应的预测结果与该验证数据对应的真实结果不同,则表示该验证数据的预测错误。在将验证数据集中的每个验证数据输入给该全局模型之后,可以统计预测正确的数量p1和预测错误的数量p2,基于数量p1和数量p2可以确定该目标全局模型参数对应的预测准确率,如目标全局模型参数对应的预测准确率可以为p1/(p1+ p2)。当然,上述只是一个示例,对此不做限制。
[0063] 在另一种可能的实施方式中,若目标全局模型参数的迭代次数大于预设次数阈值(可以根据经验配置),则确定目标全局模型参数已收敛。若目标全局模型参数的迭代次数不大于预设次数阈值,则确定目标全局模型参数未收敛。
[0064] 在另一种可能的实施方式中,若目标全局模型参数的迭代时长大于预设时长阈值(可以根据经验配置),则确定目标全局模型参数已收敛。若目标全局模型参数的迭代时长不大于预设时长阈值,则确定目标全局模型参数未收敛。
[0065] 当然,上述只是几个示例,本实施例中对此收敛条件不做限制。
[0066] 步骤207、中心服务器将目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作,即返回步骤202。
[0067] 步骤208、中心服务器将目标全局模型参数确定为已训练参数,已训练参数用于对数据(如图像数据等)进行处理,如人工智能处理等。
[0068] 示例性的,若目标全局模型参数已收敛,则表示目标全局模型参数为已训练参数,即最终输出的训练参数,因此,中心服务器可以将目标全局模型参数发送给终端设备,终端设备在得到目标全局模型参数之后,可以基于目标全局模型参数构建目标全局模型,并部署目标全局模型,继而基于目标全局模型实现人工智能处理。比如说,终端设备在得到待处理数据(如图像数据)之后,可以将待处理数据输入给目标全局模型,由目标全局模型对待处理数据进行处理,得到待处理数据的处理结果,对此人工智能处理过程不做限制。
[0069] 至此,通过中心服务器和终端设备的配合,完成联邦学习过程,可以得到已训练参数,并通过已训练参数对数据进行处理,如人工智能处理等。
[0070] 在一种可能的实施方式中,在得到目标全局模型参数之后,针对每个终端设备,中心服务器还可以基于该终端设备的局部模型参数对应的预测准确率确定该终端设备对应的目标奖励率,并基于目标奖励率为终端设备分配奖励(比如说,在每次得到目标全局模型参数时,均会基于本轮的数据确定终端设备对应的目标奖励率,并基于目标奖励率为终端设备分配奖励,假设一共进行T轮迭代,即生成T次目标全局模型参数,则会确定T次目标奖励率),从而能够保证奖励被合理的分配给各个终端设备,终端设备能够根据奖励提供较高质量的计算资源,使得资源能够合理分配,有效利用计算资源完成训练。
[0071] 以终端设备i为例,为了确定终端设备i对应的目标奖励率,本实施例提出一种基于区块链的联邦学习的数据共享激励方法,参见图3所示,该方法包括:
[0072] 步骤301、中心服务器获取终端设备i的局部模型参数对应的预测准确率。
[0073] 示例性的,中心服务器可以获取验证数据集,该验证数据集可以包括大量验证数据(如图像数据)和这些验证数据对应的真实结果,对此验证数据集不做限制。比如说,验证数据集可以包括验证数据s1和验证数据s1对应的真实结果s1‑1,表示采用模型对验证数据s1进行处理后,正确结果是真实结果s1‑1。
[0074] 在得到终端设备i的局部模型参数之后,中心服务器可以基于该局部模型参数构建局部模型,并将验证数据集中的验证数据(如多个验证数据)输入给该局部模型,由该局部模型对该验证数据进行处理,得到该验证数据对应的预测结果。若该验证数据对应的预测结果与该验证数据对应的真实结果相同,则表示该验证数据的预测正确,若该验证数据对应的预测结果与该验证数据对应的真实结果不同,则表示该验证数据的预测错误。在将验证数据集中的多个验证数据输入给该局部模型之后,可以统计预测正确的数量p1和预测错误的数量p2,基于数量p1和数量p2可以确定该局部模型参数对应的预测准确率,如预测准确率可以为p1/(p1+ p2)。当然,上述只是一个示例,对此不做限制。
[0075] 步骤302、中心服务器获取终端设备i对应的多个候选奖励率。
[0076] 示例性的,中心服务器可以获取终端设备i对应的多个候选奖励率,而目标奖励率正是从多个候选奖励率中选取的某个候选奖励率,比如说,可以获取已配置的奖励率范围(可以根据经验配置,或者,采用某种算法得到,对此奖励率范围不做限制),可以将奖励率范围内的所有奖励率作为候选奖励率,也可以将奖励率范围内的部分奖励率作为候选奖励率,当然,上述只是示例,对此多个候选奖励率的获取方式不做限制,可以将候选奖励率记为pi。
[0077] 步骤303、中心服务器基于终端设备i的局部模型参数对应的预测准确率和候选奖励率,获取终端设备i在训练任务中对应的用户效用值。
[0078] 示例性的,可以将终端设备i的训练任务划分为模型训练过程和区块链操作过程,模型训练过程是指终端设备i基于初始全局模型参数获取局部模型参数的过程,区块链操作过程是指终端设备i从目标区块链下载初始全局模型参数、将局部模型参数添加至目标区块链的过程。
[0079] 示例性的,针对每个候选奖励率,基于局部模型参数对应的预测准确率和该候选奖励率,中心服务器可以基于模型训练过程中的参数和区块链操作过程中的参数,获取终端设备i在训练任务中对应的用户效用值。
[0080] 示例性的,由于终端设备i的计算资源有限,且终端设备i有其它任务要完成,因此,需要为终端设备i分配合理的计算资源,将CPU(中央处理器)周期分配给模型训练过程和区块链操作过程。而且,由于终端设备i只有得到足够的补偿,才能够自愿为BFL的训练任务做出贡献,且中心服务器的奖励预算有限,因此,需要设计合理的激励机制,以使模型训练过程和区块链操作过程的时间消耗可以缩短,且可以得到一个精度较高的全局机器学习(ML)模型。
[0081] 综上所述,本实施例中,可以从资源分配和激励机制的角度建立终端设备i的效用模型,为此,中心服务器可以基于终端设备i的局部模型参数对应的预测准确率和候选奖励率,获取终端设备i在训练任务中对应的用户效用值。
[0082] 在一种可能的实施方式中,可以采用如下步骤获取用户效用值:
[0083] 步骤3031、基于预测准确率和候选奖励率确定终端设备i对应的总奖励值。
[0084] 示例性的,为了鼓励终端设备i加入BFL,中心服务器可以根据终端设备i训练的局部模型参数的质量,向终端设备i提供相应的奖励,终端设备i可以根据中心服务器给出的奖励,为模型训练过程和区块链操作过程投入一定的计算资源,进而训练出高质量的局部模型参数。基于此,定义一种质量参数 , 代表终端设备i训练出的局部模型参数的精度,反映了终端设备i对模型训练做出的贡献。 可以大于0且小于1, 越接近1,则表示终端设备i的局部模型参数的质量越好。本实施例中,可以将终端设备i的局部模型参数对应的预测准确率作为质量参数 ,也就是说,通过预测准确率反映局部模型参数的精度。
[0085] 示例性的,基于预测准确率 和候选奖励率pi,可以采用如下公式(1)确定终端设备i对应的总奖励值Ri,当然,公式(1)只是示例,对此不做限制。
[0086] 公式(1)
[0087] 步骤3032、基于模型训练过程中的第一成本参数确定第一成本值(第一成本值可以是针对模型训练过程的成本值),第一成本参数可以包括但不限于模型训练过程中的每秒CPU周期数和模型训练过程中的总CPU周期数。
[0088] 示例性的,基于模型训练过程中的第一成本参数,可以采用如下公式(2)确定模型训练过程的第一成本值,当然,公式(2)只是示例,对此不做限制。
[0089] 公式(2)
[0090] 在公式(2)中, 表示终端设备i在模型训练过程中的能源成本,本实施例中记为第一成本值, 是与终端设备i的硬件结构相关的参数,可以为已知参数,对此不做限制, 是模型训练过程中的总CPU周期数, 是模型训练过程中的每秒CPU周期数。显然,终端设备i可以获知模型训练过程中的总CPU周期数 和模型训练过程中的每秒CPU周期数,并通知给中心服务器。
[0091] 当然,公式(2)只是确定模型训练过程的第一成本值的示例,还可以采用如下公式(3)确定模型训练过程的第一成本值,对此不做限制。
[0092] 公式(3)
[0093] 在公式(3)中, 是终端设备i的能量消耗系数,可以是根据经验配置的数值, 是终端设备i的每比特数据所需的CPU周期数,ϑ是终端设备i的CPU时钟频率,z表示终端设备i的局部模型参数对应的比特数。
[0094] 步骤3033、基于区块链操作过程中的第二成本参数确定第二成本值(第二成本值可以是针对区块链操作过程的成本值),第二成本参数可以包括但不限于区块链操作过程中的每秒CPU周期数和区块链操作过程中的总CPU周期数。
[0095] 示例性的,基于区块链操作过程中的第二成本参数,可以采用如下公式(4)确定区块链操作过程的第二成本值,当然,公式(4)只是示例,对此不做限制。
[0096] 公式(4)
[0097] 在公式(4)中, 表示终端设备i在区块链操作过程中的能源成本,本实施例中记为第二成本值, 是与终端设备i的硬件结构相关的参数,为已知参数,对此不做限制,是区块链操作过程中的总CPU周期数, 是区块链操作过程中的每秒CPU周期数。显然,终端设备i可以获知区块链操作过程中的总CPU周期数 和区块链操作过程中的每秒CPU周期数 ,并通知给中心服务器。
[0098] 终端设备在区块链操作过程中的总CPU周期数表示为 ,由于区块链系统中挖掘一个新区块会消耗固定的计算资源,因此, 对所有终端设备都是一样的。
[0099] 步骤3034、基于终端设备i的局部模型参数对应的预测准确率确定模型训练过程中的迭代次数,用于表示终端设备i训练局部模型参数时的迭代次数。
[0100] 示例性的,在每一轮全局迭代中,终端设备i在进行若干次模型训练过程和区块链操作过程之后,进行一次全局迭代,终端设备i将局部模型参数上传到目标区块链,由中心服务器从目标区块链下载局部模型参数并进行聚合。基于终端设备i的局部模型参数对应的预测准确率 ,即局部模型参数的质量 ,模型训练过程中的迭代次数可以表示为,显然,可以中心服务器可以基于终端设备i的局部模型参数对应的预测准确率确定模型训练过程中的迭代次数。
[0101] 步骤3035、基于该第一成本值、该第二成本值和该迭代次数确定终端设备i对应的总成本值。示例性的,从步骤3032‑步骤3034可以看出,可以基于终端设备i的局部模型参数对应的预测准确率、模型训练过程中的第一成本参数、区块链操作过程中的第二成本参数,确定终端设备i对应的总成本值。
[0102] 示例性的,基于模型训练过程的第一成本值、区块链操作过程的第二成本值、模型训练过程中的迭代次数,可以采用如下公式(5)确定终端设备i对应的总成本值,当然,公式(5)只是一个示例,对此不做限制。
[0103] 公式(5)
[0104] 在公式(5)中, 表示终端设备i对应的总成本值, 表示终端设备i在模型训练过程中的第一成本值, 表示终端设备i在区块链操作过程中的第二成本值,表示终端设备i在模型训练过程中的迭代次数。
[0105] 步骤3036、基于总奖励值和总成本值,确定终端设备i对应的用户效用值。
[0106] 示例性的,基于终端设备i对应的总奖励值和终端设备i对应的总成本值,中心服务器可以采用如下公式(6)确定终端设备i在训练任务中对应的用户效用值,当然,公式(6)只是一个示例,对此确定方式不做限制。
[0107] 公式(6)
[0108] 在公式(6)中, 表示终端设备i对应的用户效用值, 表示终端设备i对应的总奖励值,相关参数的含义可以参见公式(1)所示, 表示终端设备i对应的总成本值,相关参数的含义可以参见公式(2)‑公式(5)所示。
[0109] 至此,完成步骤303,可以得到终端设备i在训练任务中对应的用户效用值。
[0110] 步骤304、中心服务器基于终端设备i的局部模型参数对应的预测准确率和候选奖励率,获取中心服务器在训练任务中对应的服务效用值。
[0111] 示例性的,可以将中心服务器的训练任务划分为模型训练过程和区块链操作过程,中心服务器的模型训练过程与终端设备i的模型训练过程对应,即终端设备i基于初始全局模型参数获取局部模型参数的过程,中心服务器的区块链操作过程与终端设备i的区块链操作过程对应,即终端设备i从目标区块链下载初始全局模型参数、将局部模型参数添加至目标区块链的过程。
[0112] 示例性的,针对每个候选奖励率,基于局部模型参数对应的预测准确率和该候选奖励率,中心服务器可以基于终端设备i在模型训练过程中的参数和区块链操作过程中的参数,获取中心服务器在训练任务中对应的服务效用值。
[0113] 示例性的,由于终端设备i的计算资源有限,因此,需要为终端设备i分配合理的计算资源,将CPU周期分配给模型训练过程和区块链操作过程。由于终端设备i只有得到足够补偿,才能够自愿为BFL的训练任务做出贡献,且中心服务器的奖励预算有限,因此,需要设计合理的激励机制,以使模型训练过程和区块链操作过程的时间消耗可以缩短,并得到一个精度较高的全局机器学习模型。综上所述,本实施例中,可以从资源分配和激励机制的角度建立中心服务器的效用模型,为此,中心服务器可以基于终端设备i的局部模型参数对应的预测准确率和候选奖励率,获取中心服务器在训练任务中对应的服务效用值。
[0114] 在一种可能的实施方式中,可以采用如下步骤获取服务效用值:
[0115] 步骤3041、基于终端设备i的局部模型参数对应的预测准确率确定全局性能值。比如说,中心服务器可以获取每个终端设备的局部模型参数对应的预测准确率,并基于这些局部模型参数对应的预测准确率确定全局性能值。
[0116] 示例性的,基于每个终端设备的局部模型参数对应的预测准确率,可以采用公式(7)确定全局性能值,当然,公式(7)只是示例,对此不做限制。
[0117] 公式(7)
[0118] 在公式(7)中,G表示全局性能值,用于表示目标全局模型的性能, 用于表示单调增长的函数,表明所有终端设备的局部模型参数的质量越好,中心服务器聚合后的目标全局模型的性能越好, 的示例可以参见公式(7)所示,即 。 是从模型性能到利润的转换参数,可以根据经验配置。
[0119] 在公式(7)中, ,用于表示所有终端设备的局部模型参数对应的预测准确率的平均值,例如, 表示第1个终端设备的局部模型参数对应的预测准确率, 表示第2个终端设备的局部模型参数对应的预测准确率,以此类推。
[0120] 步骤3042、基于终端设备i的局部模型参数对应的预测准确率、终端设备i的模型训练时长、终端设备i的模型下载时长和模型上传时长确定全局时间成本。
[0121] 比如说,针对每个终端设备(以终端设备i为例),中心服务器基于终端设备i的局部模型参数对应的预测准确率、终端设备i的模型训练时长、终端设备i的模型下载时长和模型上传时长确定终端设备i对应的局部时间成本。基于每个终端设备对应的局部时间成本,可以将最大局部时间成本作为全局时间成本,也就是说,完成训练任务所需的时间取决于时间消耗最长的终端设备,因此,需要将最大局部时间成本作为全局时间成本,即BFL任务的总时间成本。
[0122] 示例性的,基于终端设备i的局部模型参数对应的预测准确率、终端设备i的模型训练时长、终端设备i的模型下载时长和模型上传时长,可以采用公式(8)确定终端设备i的局部时间成本,当然,公式(8)只是示例,对此不做限制。
[0123] 公式(8)
[0124] 在公式(8)中,Ti用于表示终端设备i对应的局部时间成本,Tti用于表示终端设备i的模型训练时长,即终端设备i基于初始全局模型参数确定局部模型参数的时长,Tmi用于表示终端设备i的模型下载时长和模型上传时长,即模型下载时长与模型上传时长之和,模型下载时长是终端设备i从目标区块链下载初始全局模型参数的时长,模型上传时长是终端设备i将局部模型参数上传到目标区块链的时长, 用于表示终端设备i的局部模型参数对应的预测准确率。
[0125] 其中,在模型训练过程中,终端设备i可以统计模型训练时长Tti,并将模型训练时长Tti发送给中心服务器,不同终端设备的模型训练时长Tti不同或相同。
[0126] 其中,在区块链操作过程中,终端设备i可以统计模型下载时长和模型上传时长,并将模型下载时长和模型上传时长发送给中心服务器,不同终端设备的模型下载时长不同或相同,不同终端设备的模型上传时长不同或相同。
[0127] 示例性的,终端设备在区块链操作过程中的总CPU周期数可以表示为 ,由于区块链系统中挖掘一个新区块会消耗固定的计算资源,因此, 对所有终端设备都是一样的。基于此,Tmi还可以采用如下公式确定: ,在上述公式中, 用于表示终端设备i的区块链操作过程的计算能力。
[0128] 示例性的,在得到每个终端设备对应的局部时间成本Ti之后,可以将最大局部时间成本作为全局时间成本,即 作为全局时间成本。
[0129] 步骤3043、基于终端设备i的局部模型参数对应的预测准确率和候选奖励率确定全局奖励值。比如说,针对每个终端设备(以终端设备i为例),中心服务器基于终端设备i的局部模型参数对应的预测准确率和候选奖励率确定该终端设备i对应的总奖励值,并基于每个终端设备对应的总奖励值确定全局奖励值,例如,所有终端设备对应的总奖励值之和可以作为全局奖励值。
[0130] 比如说,可以通过如下公式表示全局奖励值 ,Ri表示第i个终端设备对应的总奖励值,即所有终端设备对应的总奖励值之和作为全局奖励值,且 , 表示第i个终端设备的局部模型参数对应的预测准确率,pi表示候选奖励率。
[0131] 步骤3044、基于全局性能值、全局时间成本和全局奖励值,确定服务效用值,即,得到中心服务器在训练任务中对应的服务效用值。
[0132] 示例性的,与中心服务器的服务效用值有关的参数可以包括但不限于:全局模型的性能(通过全局性能值体现)、时间消耗(通过全局时间成本体现)和所有终端设备的奖励(通过全局奖励值体现),全局性能值为收入,全局时间成本和全局奖励值为支出,因此,可以基于全局性能值、全局时间成本和全局奖励值,确定中心服务器在训练任务中对应的服务效用值。
[0133] 示例性的,中心服务器可以采用如下公式(9)确定中心服务器在训练任务中对应的服务效用值,当然,公式(9)只是示例,对此确定方式不做限制。
[0134] 公式(9)
[0135] 在公式(9)中, 表示候选奖励率pi对应的服务效用值, 表示全局性能值,全局性能值的确定方式可以参见公式(7)所示, 表示全局时间成本,全局时间成本是所有终端设备对应的局部时间成本Ti的最大值,而终端设备对应的局部时间成本Ti的确定方式可以参见公式(8)所示, 表示全局奖励值,即所有终端设备对应的总奖励值之和。在公式(9)中, 和 是标量参数,用于平衡收入和成本,且 可以大于0, 可以大于0。
[0136] 至此,完成步骤304,可以得到中心服务器在训练任务中对应的服务效用值。
[0137] 步骤305、中心服务器基于每个候选奖励率对应的用户效用值和服务效用值,可以从多个候选奖励率中选取终端设备i对应的目标奖励率。
[0138] 示例性的,终端设备i根据中心服务器给予的奖励为训练任务做出相应贡献,可以将终端设备i和中心服务器之间的互动表述为一个两阶段博弈,在这个博弈中,中心服务器根据终端设备i训练的局部模型参数的质量(即终端设备i的贡献)决定奖励分配,终端设备i根据奖励决定在模型训练上做出的贡献,然后中心服务器再根据终端设备i训练的局部模型参数的质量决定奖励分配,以此类推。
[0139] 在这种情况下,可以将两阶段博弈过程定义如下:中心服务器通过最大化自身效用(即服务效用值)来为终端设备i设定目标奖励率pi,基于目标奖励率pi决策终端设备i的奖励,在确定终端设备i对应的目标奖励率pi时,还取决于中心服务器的预算和终端设备i的局部模型参数的质量。在接收到中心服务器的奖励后,终端设备i通过优化自身效用来确定为模型训练所做的贡献量。
[0140] 综上所述,考虑到奖励分配的公平性,可以设计一个两阶段博弈方案,从而设计一个公平的奖励分配方案,确保每个终端设备都有平等的机会参与训练任务,并获得公平的奖励,确保BFL系统的稳定性和可持续性。
[0141] 基于上述发现,本申请实施例中,中心服务器可以基于每个候选奖励率对应的用户效用值和服务效用值,从多个候选奖励率中选取终端设备i对应的目标奖励率,并基于目标奖励率为终端设备分配奖励,从而能够基于终端设备i的贡献为终端设备i分配奖励,使得终端设备i能够获得公平的奖励。
[0142] 在一种可能的实施方式中,基于每个候选奖励率对应的用户效用值和服务效用值,中心服务器可以采用如下方式从多个候选奖励率中选取终端设备i对应的目标奖励率:基于第一约束条件、第二约束条件、第三约束条件和第四约束条件中的至少一个约束条件,从多个候选奖励率中选取终端设备i对应的目标奖励率。比如说,可以基于第一约束条件、第二约束条件、第三约束条件和第四约束条件,从多个候选奖励率中选取终端设备i对应的目标奖励率。
[0143] 当然,中心服务器也可以基于所有约束条件中的部分约束条件,从多个候选奖励率中选取终端设备i对应的目标奖励率,对此不做限制。
[0144] 示例性的,第一约束条件用于使目标奖励率对应的用户效用值最大,且第三约束条件用于使目标奖励率对应的总奖励值大于或等于终端设备i对应的总成本值,也就是说,在从多个候选奖励率中选取终端设备i对应的目标奖励率时,选取的候选奖励率需要满足第一约束条件和第三约束条件。其中,为了满足第一约束条件,需要使选取的候选奖励率(即目标奖励率)对应的用户效用值最大,此外,为了满足第三约束条件,还需要使选取的候选奖励率(即目标奖励率)对应的总奖励值大于或等于终端设备i对应的总成本值。
[0145] 参见公式(10)所示,为第一约束条件和第三约束条件的示例,当然,公式(10)只是一个示例,对此第一约束条件和第三约束条件不做限制。
[0146] 公式(10)
[0147] 在公式(10)中, 为第一约束条件, 表示终端设备i对应的用户效用值,确定方式可以参见公式(6)。针对每个候选奖励率,在将该候选奖励率代入公式(6)之后,可以得到该候选奖励率对应的用户效用值,这样,可以将用户效用值最大作为选取目标奖励率的第一约束条件,从而基于第一约束条件从所有候选奖励率中选取目标奖励率,且第一约束条件用于使目标奖励率对应的用户效用值最大。其中,由于需要同时满足4个约束条件,因此,不是直接将最大用户效用值对应的候选奖励率作为目标奖励率,而是在满足所有约束条件的前提下,选择最大用户效用值对应的候选奖励率作为目标奖励率。
[0148] 在公式(10)中, 为第三约束条件, 表示终端设备i对应的总奖励值,确定方式参见公式(1), 表示终端设备i对
应的总成本值,确定方式参见公式(5)。针对每个候选奖励率,在将该候选奖励率代入公式(1)之后,可以得到该候选奖励率对应的总奖励值,这样,可以将总奖励值与总成本值的差值作为选取目标奖励率的第三约束条件,从而基于第三约束条件从所有候选奖励率中选取目标奖励率,且第三约束条件用于使目标奖励率对应的总奖励值大于或等于终端设备i对应的总成本值。
[0149] 其中,由于需要同时满足4个约束条件,因此,可以基于第三约束条件从所有候选奖励率中选取出部分候选奖励率(即满足第三约束条件的候选奖励率),基于选取的部分候选奖励率,结合其它约束条件选取目标奖励率。
[0150] 由于每个终端设备i拥有有限的计算资源,因此,终端设备i的目标是使其效用(即用户效用值)最大化,通过第一约束条件表示用户效用值最大化,此外,第三约束条件表示终端设备i在本地模型的训练过程中获取非负的回报。
[0151] 在公式(10)中, 表示终端设备i的本地迭代次数存在限制。
[0152] 示例性的,第二约束条件用于使目标奖励率对应的服务效用值最大,且第四约束条件用于使目标奖励率对应的总奖励值小于或等于奖励上限值。在从多个候选奖励率中选取终端设备i对应的目标奖励率时,选取的候选奖励率需要满足第二约束条件和第四约束条件。为了满足第二约束条件,需要使选取的候选奖励率(目标奖励率)对应的服务效用值最大,为了满足第四约束条件,需要使选取的候选奖励率(目标奖励率)对应的总奖励值小于或等于奖励上限值。
[0153] 参见公式(11)所示,为第二约束条件和第四约束条件的示例,当然,公式(11)只是一个示例,对此第二约束条件和第四约束条件不做限制。
[0154] 公式(11)
[0155] 在公式(11)中, 为第二约束条件, 表示候选奖励率对应的服务效用值,确定方式可以参见公式(9)。针对每个候选奖励率,在将该候选奖励率代入公式(9)之后,可以得到该候选奖励率对应的服务效用值,这样,可以将服务效用值最大作为选取目标奖励率的第二约束条件,从而基于第二约束条件从所有候选奖励率中选取目标奖励率,且第二约束条件用于使目标奖励率对应的服务效用值最大。其中,由于需要同时满足
4个约束条件,因此,不是直接将最大服务效用值对应的候选奖励率作为目标奖励率,而是在满足所有约束条件的前提下,选择最大服务效用值对应的候选奖励率作为目标奖励率。
[0156] 在公式(11)中, 为第四约束条件, 表示终端设备i对应的总奖励值,确定方式参见公式(1), 表示奖励上限值。针对每个候选奖励率,在将该候选奖励率代入公式(1)之后,可以得到该候选奖励率对应的总奖励值,这样,可以将总奖励值与奖励上限值的关系,作为选取目标奖励率的第四约束条件,从而基于第四约束条件从所有候选奖励率中选取目标奖励率,且第四约束条件用于使目标奖励率对应的总奖励值小于或等于奖励上限值。
[0157] 其中,由于需要同时满足4个约束条件,因此,可以基于第四约束条件从所有候选奖励率中选取出部分候选奖励率(即满足第四约束条件的候选奖励率),基于选取的部分候选奖励率,结合其它约束条件选取目标奖励率。
[0158] 根据参与用户的最优策略,中心服务器为每个终端设备评估最佳的目标奖励率,使目标奖励率的效用最大化。中心服务器希望得到一个性能良好的目标全局模型,消耗的时间和支付成本越少越好,因此,中心服务器的目标是最大化服务效用值,优化问题可以表述为公式(11)。此外, 的第四约束条件,用于表示终端设备i的奖励约束,从而满足中心服务器的预算。
[0159] 示例性的,参见公式(10)所示,是一个具有不等式约束的非线性优化问题,且是凹函数,有最大值,可以采用KKT条件的方法来求解最大值,参见公式(11)所示,也是一个非线性优化问题,且 也是凹函数,有最大值,可以采用KKT条件的方法来求解最大值。综上所述,公式(10)和公式(11)均是可以解决的问题,因此,可以基于上述约束条件确定目标奖励率。
[0160] 在一种可能的实施方式中,奖励上限值 可以是根据经验配置的,也可以是采用某种算法得到的奖励上限值 ,对此不做限制。比如说,可以采用如下步骤确定终端设备i对应的奖励上限值,当然,这里只是一个示例。
[0161] 步骤S11、获取终端设备i在训练任务中对应的总贡献值。
[0162] 示例性的,由于不同终端设备可能具有不同计算能力,不能简单地将奖励平均分配给每个终端设备,为了保证奖励分配的公平性,根据每个终端设备在训练任务中的贡献来分配奖励。考虑到Shapely Value(SV)是一种可以根据参与者各自贡献来分配奖励的方法,在步骤S11中,可以使用SV来促进奖励分配,终端设备i在训练任务中对应的总贡献值SV被定义为如下公式(12):
[0163] 公式(12)
[0164] 在公式(12)中, 是所有终端设备的子集, 是集合 中终端设备的数量, 是描述终端设备集合 训练结果的性能函数,可以称为性能参数值, 是一个与 相关的函数,可以被定义为如下公式(13)所示:
[0165] 公式(13)
[0166] 在公式(13)中,G是多个终端设备的局部模型参数对应的预测准确率的平均预测准确率,确定方式参见公式(7)所示。比如说,针对每个终端设备集合 ,假设该终端设备集合包括5个终端设备,则G可以是5个终端设备的局部模型参数对应的预测准确率的平均预测准确率,假设该终端设备集合包括6个终端设备,则G可以是6个终端设备的局部模型参数对应的预测准确率的平均预测准确率,以此类推。在公式(13)中,s用于表示终端设备集合的总数量, 用于表示目标性能值,可以根据经验进行配置, 用于是欧氏规范。
[0167] ,假设存在6个终端设备集合,每个终端设备集合对应一个 ,而W就是6个终端设备集合对应的 中的最大值。
[0168] 综上所述,可以得到终端设备i在训练任务中对应的总贡献值 。
[0169] 步骤S12、基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,并基于平均预测准确率和已配置的目标性能值确定性能参数值。
[0170] 示例性的,可以采用公式(14)确定终端设备i的性能参数值 :
[0171] 公式(14)
[0172] 在公式(14)中,G是多个终端设备的局部模型参数对应的预测准确率的平均预测准确率,即基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,确定方式参见公式(7)所示。 用于已配置的目标性能值,因此,可以基于平均预测准确率和已配置的目标性能值确定性能参数值 。
[0173] 步骤S13、基于该总贡献值和该性能参数值确定奖励上限值。
[0174] 示例性的,可以采用公式(15)确定终端设备i的奖励上限值 。
[0175] 公式(15)
[0176] 表示终端设备i的奖励上限值, 表示终端设备i在训练任务中对应的总贡献值, 表示终端设备i的性能参数值, 为预先配置的常数值。
[0177] 至此,完成步骤305,可以得到终端设备i对应的目标奖励率。
[0178] 步骤306、中心服务器基于终端设备i对应的目标奖励率为终端设备i分配奖励,比如说,目标奖励率表示单位时间的奖励值,基于单位时间的奖励值和终端设备i的模型训练时长和区块链操作时长,就可以为终端设备i分配奖励。
[0179] 示例性的,中心服务器与终端设备可以进行多次迭代(中心服务器生成一次目标全局模型参数的过程称为一次迭代),针对每次迭代过程,在得到目标全局模型参数之后,可以采用步骤301‑步骤306为终端设备分配奖励。
[0180] 综上可以看出,本申请实施例中提出一种基于区块链的联邦学习的数据共享激励方法,参见图4所示,涉及基于区块链的联邦学习(BFL),终端设备作为联邦学习的用户或区块链操作用户,终端设备与中心服务器交互局部模型参数和全局模型参数,终端设备提供数据质量和计算资源,中心服务器提供训练过程和区块链操作过程的奖励。基于终端设备提供的数据质量和计算资源、以及中心服务器提供的奖励,可以执行两阶段的博弈,对此过程不再赘述。
[0181] 由以上技术方案可见,本申请实施例中,将区块链引入模型训练过程,服务器将初始全局模型参数添加至目标区块链,且终端设备将局部模型参数添加至目标区块链,由于目标区块链具有不可否认性和抗篡改性,因此,可以减少模型参数被篡改的可能性,保证模型参数的准确性,从而提高模型训练过程的效率,能够更快的得到已训练参数,模型训练时间更短,模型训练的收敛速度更快,模型精度更高。在得到目标全局模型参数之后,还可以基于局部模型参数对应的预测准确率确定终端设备对应的目标奖励率,基于目标奖励率为终端设备分配奖励,从而能够保证奖励被合理的分配给各个终端设备,终端设备能够根据奖励提供较高质量的计算资源,使得资源能够合理分配,有效利用计算资源完成训练,满足高效的数据安全共享要求,满足模型精度和训练时间消耗的要求,确保系统稳定性。能够在联邦学习中加入激励机制,促进BFL系统资源的合理分配,能够保护用户数据的安全,防止用户降低或破坏训练的全局模型的准确性,设计公平的奖励分配方案,能确保BFL系统的稳定性和可持续性。
[0182] 基于与上述方法同样的申请构思,本申请实施例中提出一种基于区块链的联邦学习的数据共享激励装置,应用于服务器,参见图5所示,为所述装置的结构示意图,所述装置可以包括:
[0183] 发送模块51,用于将初始全局模型参数添加至目标区块链,以使终端设备从所述目标区块链下载所述初始全局模型参数,并基于所述初始全局模型参数获取局部模型参数,并将所述局部模型参数添加至所述目标区块链;
[0184] 确定模块52,用于从所述目标区块链下载所述局部模型参数,基于所述局部模型参数确定目标全局模型参数;若所述目标全局模型参数未收敛,则将所述目标全局模型参数确定为初始全局模型参数,返回执行将初始全局模型参数添加至目标区块链的操作;若所述目标全局模型参数已收敛,则将所述目标全局模型参数确定为已训练参数,所述已训练参数用于对数据进行处理;
[0185] 处理模块53,用于在得到所述目标全局模型参数之后,基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率。
[0186] 示例性的,所述处理模块53基于所述局部模型参数对应的预测准确率确定所述终端设备对应的目标奖励率时具体用于:获取多个候选奖励率;针对每个候选奖励率,基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值,并获取所述服务器在训练任务中对应的服务效用值;基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率。
[0187] 示例性的,所述处理模块53基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述终端设备在训练任务中对应的用户效用值时具体用于:基于所述预测准确率和所述候选奖励率确定所述终端设备对应的总奖励值;基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值;基于所述总奖励值和所述总成本值,确定所述终端设备在训练任务中对应的用户效用值。
[0188] 示例性的,所述处理模块53基于所述预测准确率、模型训练过程中的第一成本参数和区块链操作过程中的第二成本参数,确定所述终端设备对应的总成本值时具体用于:基于第一成本参数确定第一成本值,第一成本参数包括模型训练过程中的每秒CPU周期数和模型训练过程中的总CPU周期数;基于第二成本参数确定第二成本值,第二成本参数包括区块链操作过程中的每秒CPU周期数和区块链操作过程中的总CPU周期数;基于所述预测准确率确定模型训练过程中的迭代次数;基于第一成本值、第二成本值和迭代次数确定所述总成本值。
[0189] 示例性的,所述处理模块53基于所述局部模型参数对应的预测准确率和所述候选奖励率,获取所述服务器在训练任务中对应的服务效用值时具体用于:基于所述预测准确率确定全局性能值;基于所述预测准确率、所述终端设备的模型训练时长、所述终端设备的模型下载时长和模型上传时长,确定全局时间成本;基于所述预测准确率和所述候选奖励率确定全局奖励值;基于所述全局性能值、所述全局时间成本和所述全局奖励值,确定所述服务效用值。
[0190] 示例性的,所述处理模块53基于每个候选奖励率对应的用户效用值和服务效用值,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率时具体用于:基于第一约束条件、第二约束条件、第三约束条件和第四约束条件,从所述多个候选奖励率中选取所述终端设备对应的目标奖励率;其中,所述第一约束条件用于使所述目标奖励率对应的用户效用值最大;所述第二约束条件用于使所述目标奖励率对应的服务效用值最大;所述第三约束条件用于使所述目标奖励率对应的总奖励值大于或等于所述终端设备对应的总成本值;所述第四约束条件用于使所述目标奖励率对应的总奖励值小于或等于奖励上限值。
[0191] 示例性的,所述处理模块53,还用于确定终端设备对应的奖励上限值,所述处理模块53确定终端设备对应的奖励上限值时具体用于:获取终端设备在训练任务中对应的总贡献值;基于所有终端设备的局部模型参数对应的预测准确率,确定平均预测准确率,基于所述平均预测准确率和已配置的目标性能值确定性能参数值;基于所述总贡献值和所述性能参数值确定所述奖励上限值。
[0192] 基于与上述方法同样的申请构思,本申请实施例提出一种电子设备(如中心服务器),参见图6所示,包括处理器61和机器可读存储介质62,机器可读存储介质62存储有能够被处理器61执行的机器可执行指令;处理器61用于执行机器可执行指令,以实现上述基于区块链的联邦学习的数据共享激励方法。
[0193] 基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,机器可读存储介质上存储有若干计算机指令,其中,计算机指令被处理器执行时,能够实现上述示例的基于区块链的联邦学习的数据共享激励方法。
[0194] 其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0195] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0196] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0197] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0198] 而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
[0199] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。