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

基于联邦学习的模型训练方法、装置及存储介质与流程

2022-07-16 14:28:19 来源:中国专利 TAG:


1.本发明实施例涉及通信领域,具体而言,涉及一种基于联邦学习的模型训练方法、装置及存储介质。


背景技术:

2.联邦学习作为分布式的机器学习范式,可以支持多个数据拥有方的数据在不出域的情况下进行建模,在联邦机制下,利用隐私安全计算技术,各参与方的数据不发生转移,因此不会泄漏用户隐私或者影响数据规范,是一种在保护数据隐私、满足合法合规的要求下解决数据孤岛问题的有效措施,联邦学习技术的引入为分布式数据共享治理提供了有力的技术支持。
3.然而,在基于联邦框架下的模型训练过程中,数据拥有方训练的子模型需要在每个训练阶段完成后进行子模型的整合工作,然后各个训练参与者根据整合的模型进行迭代更新,但是,恶意攻击者可以在子模型的整合过程中可通过交换的梯度恢复数据信息,导致数据安全隐患。


技术实现要素:

4.本发明实施例提供了一种基于联邦学习的模型训练方法、装置及存储介质,以至少解决相关技术中联邦框架下的模型训练过程中存在数据安全隐患的问题。
5.根据本发明的一个实施例,提供了一种基于联邦学习的模型训练方法,包括:参与联邦学习的第一子节点和第二子节点分别计算本地参数,并分别对所述本地参数进行加密;所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络;所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数,并将所述全局参数回传给所述第一子节点和所述第二子节点;所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练。
6.在至少一个示例性实施例中,所述第一子节点和所述第二子节点分别对所述本地参数进行加密包括:所述第一子节点和所述第二子节点之间交换第一密钥;所述第一子节点和所述第二子节点分别根据接收到的所述第一密钥生成第二密钥,并使用所述第二密钥加密各自的所述本地参数得到第一加密本地参数;所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数。
7.在至少一个示例性实施例中,所述第一子节点和所述第二子节点之间交换第一密钥包括:所述第一子节点和所述第二子节点之间通过迪菲霍尔曼dh算法交换第一密钥。
8.在至少一个示例性实施例中,所述第一子节点和所述第二子节点之间通过迪菲霍尔曼dh算法交换第一密钥包括:在所述第一子节点和所述第二子节点之间公开素数a和素数p,其中,a是p的一个原根;所述第一子节点选择第一随机数,并根据所述第一随机数、所述素数a和所述素数p计算所述第一子节点的所述第一密钥;所述第二子节点选择第二随机
数,并根据所述第二随机数、所述素数a和所述素数p计算所述第二子节点的所述第一密钥;所述第一子节点和所述第二子节点之间交换各自的所述第一密钥。
9.在至少一个示例性实施例中,所述第一子节点和所述第二子节点分别根据接收到的所述第一密钥生成第二密钥包括:所述第一子节点根据接收到的所述第二子节点的所述第一密钥、所述第一随机数和所述素数p生成所述第一子节点的所述第二密钥;所述第二子节点根据接收到的所述第一子节点的所述第一密钥、所述第二随机数和所述素数p生成所述第二子节点的所述第二密钥。
10.在至少一个示例性实施例中,使用所述第二密钥加密各自的所述本地参数得到第一加密本地参数包括:所述第一子节点将所述第一子节点的所述本地参数加上所述第一子节点的所述第二密钥得到所述第一子节点的所述第一加密本地参数,且所述第二子节点将所述第二子节点的所述本地参数减去所述第二子节点的所述第二密钥得到所述第二子节点的所述第一加密本地参数;或者,所述第一子节点将所述第一子节点的所述本地参数减去所述第一子节点的所述第二密钥得到所述第一子节点的所述第一加密本地参数,且所述第二子节点将所述第二子节点的所述本地参数加上所述第二子节点的所述第二密钥得到所述第二子节点的所述第一加密本地参数。
11.在至少一个示例性实施例中,所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数包括:所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥,基于同态加密算法分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数。
12.在至少一个示例性实施例中,所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数包括:所述区块链网络对所述第一子节点和所述第二子节点各自的所述第二加密本地参数进行乘法运算,得到所述第一子节点的所述本地参数和所述第二子节点的所述本地参数的和作为所述聚合结果,并将所述聚合结果取平均作为所述全局参数。
13.在至少一个示例性实施例中,所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练包括:所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,并确定模型是否收敛;在模型不收敛的情况下,返回继续执行参与联邦学习的第一子节点和第二子节点分别计算本地参数的步骤;在模型收敛的情况下,确定完成模型训练。
14.在至少一个示例性实施例中,所述本地参数包括局部梯度。
15.根据本发明的另一个实施例,提供了一种基于联邦学习的模型训练装置,设置于参与联邦学习的子节点,该装置包括:加密模块,用于计算本地参数,并对所述本地参数进行加密;发送模块,用于将加密后的所述本地参数发送到区块链网络;接收模块,用于接收所述区块链网络在对参与联邦学习的各子节点的加密后的所述本地参数进行聚合,并根据聚合结果计算全局参数后,回传给所述子节点的所述全局参数;训练控制模块,用于根据所述全局参数进行参数更新,完成模型训练。
16.根据本发明的又一个实施例,提供了一种基于联邦学习的模型训练装置,设置于区块链网络,该装置包括:接收模块,用于参与联邦学习的各子节点发送的加密后的本地参数;聚合模块,用于对各子节点的加密后的所述本地参数进行聚合,并根据聚合结果计算全
局参数;回传模块,用于将所述全局参数回传给各子节点。
17.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
18.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
19.通过本发明,参与联邦学习的第一子节点和第二子节点分别计算本地参数,并分别对所述本地参数进行加密;所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络;所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数,并将所述全局参数回传给所述第一子节点和所述第二子节点;所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练。该方案可以解决相关技术中联邦框架下的模型训练过程中存在数据安全隐患的问题,保证了联邦学习框架下的数据隐私,实现了局部模型权重的安全聚合。
附图说明
20.图1是本发明实施例的一种基于联邦学习的模型训练方法的计算机的硬件结构框图;
21.图2是根据本发明实施例的基于联邦学习的模型训练方法的流程图;
22.图3是根据本发明实施例的基于联邦学习的模型训练装置的结构框图;
23.图4是根据本发明实施例的基于联邦学习的模型训练装置的结构框图;
24.图5是根据本发明实施例的深度神经网络的结构示意图;
25.图6是根据本发明实施例的联邦深度学习框架的示意图。
具体实施方式
26.传统的联邦学习方法需要通过可信的第三方聚合各用户的本地模型以进行全局模型的更新,示例性地,一种双动量随机梯度下降的联邦学习方案具体方案如下:
27.1)在训练开始时从服务器接收初始模型和统计数据。
28.2)在本地训练步骤中融合服务器动量缓冲区。
29.3)在发送到服务器之前,在本地模型更新中删除服务器动量缓冲区的影响。
30.4)聚合来自客户机的本地模型更新,以更新服务器节点上的模型和统计信息。
31.所有参与训练的节点将本地训练好的模型传输给聚合节点进行全局权重计算,为了提高效率,还可以对每个本地模型做压缩处理。
32.上述方案通过双动量sgd方法分别跟踪服务器和本地的更新方向以减少方差、平滑模型更新方向,来解决客户端漂移,不同数据分布可能存在极大的偏差,趋向发散,局部过拟合,以及客户可能不稳定,网络连接较慢的问题。但是模型聚合需要可信的第三方参与,从而使得联邦学习方案在实施过程中系统的稳定受第三方的影响较大且易受攻击,这个问题现有的方案并没有过多考虑。
33.为了解决这个问题,本发明实施例提出了基于区块链技术和隐私安全技术的联邦
深度学习框架。深度学习的应用是为了提取更好的本地数据特征,区块链和隐私安全技术可以保护用户隐私安全、且在可靠可信的环境下进行模型的安全聚合。该方案利用区块链和隐私计算技术解决模型聚合时的信任和隐私保护问题,实现模型的安全聚合,为基于联邦学习的数据共享模式提供全面的技术支持。
34.下文中将参考附图并结合实施例来详细说明本发明的实施例。
35.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
36.本技术实施例中所提供的方法实施例可以在云计算节点、计算机终端或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种基于联邦学习的模型训练方法的计算机的硬件结构框图。如图1所示,计算机可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器cpu、微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
37.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的基于联邦学习的模型训练方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的基于联邦学习的模型训练方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
38.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机的通信供应商提供的有线或无线网络。
39.在本实施例中提供了一种运行于上述计算机的基于联邦学习的模型训练方法,图2是根据本发明实施例的基于联邦学习的模型训练方法的流程图,如图2所示,该流程包括如下步骤:
40.步骤s202,参与联邦学习的第一子节点和第二子节点分别计算本地参数,并分别对所述本地参数进行加密。在至少一个示例性实施例中,所述本地参数可以包括局部梯度。
41.在至少一个示例性实施例中,所述第一子节点和所述第二子节点分别对所述本地参数进行加密可以包括:所述第一子节点和所述第二子节点之间交换第一密钥;所述第一子节点和所述第二子节点分别根据接收到的所述第一密钥生成第二密钥,并使用所述第二密钥加密各自的所述本地参数得到第一加密本地参数;所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数。
42.在至少一个示例性实施例中,所述第一子节点和所述第二子节点之间交换第一密钥可以包括:所述第一子节点和所述第二子节点之间通过迪菲霍尔曼dh算法交换第一密钥。
43.在至少一个示例性实施例中,所述第一子节点和所述第二子节点之间通过迪菲霍尔曼dh算法交换第一密钥可以包括:在所述第一子节点和所述第二子节点之间公开素数a和素数p,其中,a是p的一个原根;所述第一子节点选择第一随机数,并根据所述第一随机数、所述素数a和所述素数p计算所述第一子节点的所述第一密钥;所述第二子节点选择第二随机数,并根据所述第二随机数、所述素数a和所述素数p计算所述第二子节点的所述第一密钥;所述第一子节点和所述第二子节点之间交换各自的所述第一密钥。
44.在至少一个示例性实施例中,所述第一子节点和所述第二子节点分别根据接收到的所述第一密钥生成第二密钥可以包括:所述第一子节点根据接收到的所述第二子节点的所述第一密钥、所述第一随机数和所述素数p生成所述第一子节点的所述第二密钥;所述第二子节点根据接收到的所述第一子节点的所述第一密钥、所述第二随机数和所述素数p生成所述第二子节点的所述第二密钥。
45.在至少一个示例性实施例中,使用所述第二密钥加密各自的所述本地参数得到第一加密本地参数可以包括:所述第一子节点将所述第一子节点的所述本地参数加上所述第一子节点的所述第二密钥得到所述第一子节点的所述第一加密本地参数,且所述第二子节点将所述第二子节点的所述本地参数减去所述第二子节点的所述第二密钥得到所述第二子节点的所述第一加密本地参数;或者,所述第一子节点将所述第一子节点的所述本地参数减去所述第一子节点的所述第二密钥得到所述第一子节点的所述第一加密本地参数,且所述第二子节点将所述第二子节点的所述本地参数加上所述第二子节点的所述第二密钥得到所述第二子节点的所述第一加密本地参数。
46.在至少一个示例性实施例中,所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数可以包括:所述第一子节点和所述第二子节点使用所述区块链网络提供的公钥,基于同态加密算法分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数。
47.步骤s204,所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络。
48.在至少一个示例性实施例中,所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络可以包括:所述第一子节点和所述第二子节点分别将各自的所述第二加密本地参数发送到区块链网络。
49.步骤s206,所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数,并将所述全局参数回传给所述第一子节点和所述第二子节点。
50.在至少一个示例性实施例中,所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数可以包括:所述区块链网络对所述第一子节点和所述第二子节点各自的所述第二加密本地参数进行乘法运算,得到所述第一子节点的所述本地参数和所述第二子节点的所述本地参数的和作为所述聚合结果,并将所述聚合结果取平均作为所述全局参数。
51.步骤s208,所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练。
52.在至少一个示例性实施例中,所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练可以包括:所述第一子节点和所述第二子节点根据所述全
局参数进行参数更新,并确定模型是否收敛;在模型不收敛的情况下,返回继续执行参与联邦学习的第一子节点和第二子节点分别计算本地参数的步骤;在模型收敛的情况下,确定完成模型训练。
53.其中,上述步骤的执行主体可以为计算机、云计算节点等具有计算能力的设备,但不限于此。
54.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
55.在本实施例中还提供了一种基于联邦学习的模型训练装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
56.图3是根据本发明实施例的基于联邦学习的模型训练装置的结构框图,如图3所示,该装置可以设置于参与联邦学习的子节点,该装置包括:
57.加密模块32,用于计算本地参数,并对所述本地参数进行加密;
58.发送模块34,用于将加密后的所述本地参数发送到区块链网络;
59.接收模块36,用于接收所述区块链网络在对参与联邦学习的各子节点的加密后的所述本地参数进行聚合,并根据聚合结果计算全局参数后,回传给所述子节点的所述全局参数;
60.训练控制模块38,用于根据所述全局参数进行参数更新,完成模型训练。
61.在至少一个示例性实施例中,所述加密模块32用于与参与联邦学习的其他子节点之间交换第一密钥;根据接收到的所述第一密钥生成第二密钥,并使用所述第二密钥加密所述本地参数得到第一加密本地参数;使用所述区块链网络提供的公钥分别加密所述第一加密本地参数,得到第二加密本地参数。
62.在至少一个示例性实施例中,所述加密模块32用于通过以下方式与参与联邦学习的其他子节点之间交换第一密钥:与参与联邦学习的其他子节点之间通过迪菲霍尔曼(diffie hellman,dh)算法交换第一密钥。
63.在至少一个示例性实施例中,所述加密模块32用于通过以下方式与参与联邦学习的其他子节点之间通过所述dh算法交换第一密钥:在所述子节点和参与联邦学习的其他子节点之间公开素数a和素数p,其中,a是p的一个原根;所述加密模块32选择第一随机数,并根据所述第一随机数、所述素数a和所述素数p计算所述子节点的所述第一密钥;参与联邦学习的其他子节点的加密模块32选择第二随机数,并根据所述第二随机数、所述素数a和所述素数p计算所述其他子节点的所述第一密钥;所述子节点的所述加密模块32和参与联邦学习的其他子节点的所述加密模块32之间交换各自的所述第一密钥。
64.在至少一个示例性实施例中,所述加密模块32用于通过以下方式根据接收到的所述第一密钥生成第二密钥:所述子节点的所述加密模块32根据接收到的所述其他子节点的
所述第一密钥、所述第一随机数和所述素数p生成所述子节点的所述第二密钥;所述其他子节点的所述加密模块32根据接收到的所述子节点的所述第一密钥、所述第二随机数和所述素数p生成所述其他子节点的所述第二密钥。
65.在至少一个示例性实施例中,所述加密模块32用于通过以下方式使用所述第二密钥加密所述本地参数得到第一加密本地参数:所述子节点的所述加密模块32将所述子节点的所述本地参数加上所述子节点的所述第二密钥得到所述子节点的所述第一加密本地参数,且所述其他子节点的所述加密模块32将所述其他子节点的所述本地参数减去所述其他子节点的所述第二密钥得到所述其他子节点的所述第一加密本地参数;或者,所述子节点的所述加密模块32将所述子节点的所述本地参数减去所述子节点的所述第二密钥得到所述子节点的所述第一加密本地参数,且所述其他子节点的所述加密模块32将所述其他子节点的所述本地参数加上所述其他子节点的所述第二密钥得到所述其他子节点的所述第一加密本地参数。
66.在至少一个示例性实施例中,所述加密模块32用于通过以下方式使用所述区块链网络提供的公钥分别加密所述第一加密本地参数,得到第二加密本地参数:所述子节点和所述子节点的所述加密模块32使用所述区块链网络提供的公钥,基于同态加密算法分别加密各自的所述第一加密本地参数,得到各自的第二加密本地参数。
67.在至少一个示例性实施例中,所述训练控制模块38用于通过以下方式根据所述全局参数进行参数更新,完成模型训练:所述训练控制模块38根据所述全局参数进行参数更新,并确定模型是否收敛;在模型不收敛的情况下,返回调用所述加密模块32继续执行计算本地参数的操作;在模型收敛的情况下,确定完成模型训练。
68.在至少一个示例性实施例中,所述本地参数可以包括局部梯度。
69.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
70.图4是根据本发明实施例的基于联邦学习的模型训练装置的结构框图,如图4所示,该装置可以设置于区块链网络,该装置包括:
71.接收模块42,用于参与联邦学习的各子节点发送的加密后的本地参数;
72.聚合模块44,用于对各子节点的加密后的所述本地参数进行聚合,并根据聚合结果计算全局参数;
73.回传模块46,用于将所述全局参数回传给各子节点。
74.在至少一个示例性实施例中,所述聚合模块44通过以下方式对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数:对各子节点的所述第二加密本地参数进行乘法运算,得到各子节点的所述本地参数的和作为所述聚合结果,并将所述聚合结果取平均作为所述全局参数。
75.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
76.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步
骤。
77.在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
78.s1,参与联邦学习的第一子节点和第二子节点分别计算本地参数,并分别对所述本地参数进行加密;
79.s2,所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络;
80.s3,所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数,并将所述全局参数回传给所述第一子节点和所述第二子节点;
81.s4,所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练。
82.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
83.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
84.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
85.在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
86.s1,参与联邦学习的第一子节点和第二子节点分别计算本地参数,并分别对所述本地参数进行加密;
87.s2,所述第一子节点和所述第二子节点分别将加密后的所述本地参数发送到区块链网络;
88.s3,所述区块链网络对加密后的所述本地参数进行聚合,根据聚合结果计算全局参数,并将所述全局参数回传给所述第一子节点和所述第二子节点;
89.s4,所述第一子节点和所述第二子节点根据所述全局参数进行参数更新,完成模型训练。
90.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
91.在本发明实施例中,提出了一个基于去中心化区块链的隐私保护联邦学习框架,并设计了深度学习网络获得各个联邦节点的数据特征;同时,利用同态加密方式减少高位数据的通信开销。
92.以下首先对区块链和联邦学习的概念予以简要介绍。
93.区块链,分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上为一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
94.联邦学习(federated machine learning/federated learning),是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。联邦学习是一种新兴的人工智能基础技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习。其中,联邦学习可使用的机器学习算法不局限于线性模型,还包括神经网络、树模型等重要算法。联邦学习有望成为下一代人工智能协同算法和协作网络的基础。
95.通过本发明实施例的方案,客户端和用户端的加密知识,保证了用户的隐私;区块链技术保证了数据的可靠性。全局模型的聚合任务通过区块链实现。总结来说,该方案具有以下突出的特点:通过区块链和联邦学习技术在信任和隐私保护的情况下收集来自不同来源数据集;设计了一个同态加密方案对局部模型的权值进行加密,保证数据隐私;设计了一种基于区块链的联邦学习算法来实现局部模型权重的安全聚合。
96.以下对方案所涉及的技术要点分别予以说明。
97.一、深度学习模型
98.本发明实施例利用通用的深度神经网络结构用于提取各个节点的数据特征,图5是根据本发明实施例的深度神经网络的结构示意图,该深度神经网络的具体结构如图5所示。
99.前馈神经网络定义为其中
100.x为输入,w为参数矩阵,训练数据:d=(xi,yi),i∈i,损失函数为l,因此在训练集合d上的损失函数表示为参数更新表示为:η为学习率。
101.二、联邦学习
102.联合学习是一种分布式的、安全的深度学习技术,能够在不泄露隐私的情况下训练共享模型。此外,联邦学习在保护隐私的情况下引入了一种机制来收集来自各方数据。联邦学习模型的优点是减少了单个参与者的资源(即记忆、能力)和提高了训练模型的质量。换句话说,联邦学习协作学习模型,并在本地机器上共享训练好的模型。具体来讲,每个用户u∈u有各自的数据集则针对每个子数据集的随机梯度下降(stochastic gradient descent,sgd)表示为:
[0103][0104]
每个用户将本地模型共享到区块链分布式账本,以训练全局共享模式,然后,每个用户上传新的数据(梯度或者权重)进一步优化全局模型,图6是根据本发明实施例的联邦深度学习框架的示意图。
[0105]
此外,各个数据集拥有方也进行模型的更新对于多个
参数节点,全局函数表示为其中i为各个子数据样本(xi,yi),ui为每个节点的数据集。因此,全局损失函数表示为
[0106]
三、基于区块链和隐私保护的深度联邦学习框架
[0107]
基于区块链和隐私保护的深度联邦学习过程描述如下:
[0108]
(1)各个子节点利用本地数据训练深度学习模型,并计算本地参数;
[0109]
(2)利用加密算法对本地参数加密;
[0110]
(3)发送加密后的参数到区块链网络;
[0111]
(4)对各个参数进行安全聚合:
[0112]
(5)根据聚合后的数据计算全局参数,并回传给各个子节点;
[0113]
(6)子节点更新参数。
[0114]
其中,加密梯度的过程需要经过两个过程,首先数据拥有者使用本地数据训练的模型计算出本地的梯度,假设有两个用户a和b,用户a和b通过dh算法获得只有双方知道的密文,双方再把参数传给区块链聚合的时候分别将密文以相反的形式添加,以便求和的时候添加的密文可以消除;第二个过程就是以加权平均的方式对双方的梯度进行平均求和计算,在这个过程,本发明实施例选择使用paillier加密算法(一种同态加密算法),以确保区块链在做聚合的时候可以获取求和的明文信息。算法过程如下:
[0115]
(1)require:用户a和用户b计算其局部梯度wa和wb;
[0116]
(2)取素数a和素数p,a是p的一个原根,公开a和p;
[0117]
(3)a选择随机数γa≤p,计算
[0118]
(4)b选择随机数γb≤p,计算
[0119]
(5)a将keya传输给b,b将keyb传输给a;
[0120]
(6)a和b分别计算密钥
[0121]
(7)a和b加密各自的梯度:sec(wa)=wa k,sec(wb)=wb (-k);
[0122]
(8)区块链网络:生成一对公钥和私钥(n,g)和(λ,μ),并将公钥传输给用户a和用户b;
[0123]
(9)加密a和b的梯度:enc(sec(wa))=pk(wa k),enc(sec(wb))=pk(wb (-k));
[0124]
(10)传输密文到区块链网络,并进行安全聚合计算:wa wb=d(enc(sec(wa)
·
enc(sec(wb)),并得到全局梯度:
[0125]
(11)传输全局梯度给各个用户,进行梯度更新;
[0126]
(12)重复以上步骤进行迭代更新,直至收敛。
[0127]
本发明实施例的基于去中心化区块链的隐私保护联邦学习框架为深度学习实现联邦任务提供了解决方案,以便更高效的利用各自的数据,在保护数据隐私的情况下实现
数据的价值。此文案提出的技术方案的优点概括如下:
[0128]
(1)通过区块链和联邦学习技术在信任和隐私保护的情况下收集来自不同来源数据集。
[0129]
(2)设计了一个同态加密方案对局部模型的权值进行加密,保证数据隐私。
[0130]
(3)设计了一种基于区块链的联邦学习算法来实现局部模型权重的安全聚合。
[0131]
该基于区块链和隐私保护的深度联邦学习框架通过结合两种加密算法和区块链技术对联邦学习各自的局部梯度进行安全聚合计算,同时也解决了数据可靠性和信任问题,实现联邦学习利用深度学习网络进行学习任务,提升模型的性能,更高效率的利用各个用户的数据,提升数据价值。
[0132]
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0133]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献