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

横向联邦学习方法、装置、计算机设备和存储介质与流程

2021-10-20 00:02:00 来源:中国专利 TAG:人工智能 学习方法 横向 联邦 装置


1.本发明涉及人工智能领域,特别是涉及横向联邦学习方法、装置、计算机设备和存储介质。


背景技术:

2.随着信息科技的发展,人们的数据越来越多地上传到通信网络上。在分布式系统应用场景中,在每一个端设备上,每一步的操作都有数据埋点。在数据上传通信网络给人们生活带来极大便利的同时,隐私数据保密也称为一个越来越引起人们关注的问题。隐私数据泄漏会导致极大的数据安全风险。然而应用数据来解决场景下的分析挖掘问题又不得不用到大量的隐私数据,如何有效确保隐私数据在网络传输过程中的安全称为一个亟待解决的问题。
3.还有其它的场景中需要训练大规模的分布式训练,分布在不同节点上的数据集可以进行合并,符合同一个特征空间下的数据。分布式集群系统包括大量的节点,各节点与主节点之间进行数据通信。黑客通常会通过截取节点与主节点之间地通信获得数据,造成数据泄漏。数据窃取者只需要对一个节点与主节点之间的通信进行数据窃取即可造成数据泄漏。
4.另外,在分布式系统应用场景中,需要把数据进行拷贝,每一个节点上存储同样大小的源数据,这样的存储方式需要耗费大量的存储空间存储同样的数据,造成了存储空间的浪费。


技术实现要素:

5.基于此,有必要针对在分布式机器学习场景中,在进行数据传输时数据容易泄露导致数据传输安全性不佳的问题,提供一种横向联邦学习方法、装置、计算机设备和存储介质。
6.一种横向联邦学习方法,基于横向联邦学习系统实现,所述横向联邦学习系统包括主节点以及与所述主节点相连接的至少两个参与者节点,所述横向联邦学习方法包括:
7.所述参与者节点从所述主节点上下载机器学习模型,利用本地数据对所述机器学习模型进行训练,得到训练后的模型参数;
8.所述参与者节点对所述训练后的模型参数进行同态加密,将加密数据发送给所述主节点;
9.所述主节点对所述加密数据进行同态求平均处理,把经过所述同态求平均处理的数据发送给各所述参与者节点;
10.所述参与者节点对所述经过同态求平均处理的数据进行解密,得到解密后数据;
11.所述参与者节点基于预设规则对所述解密后数据进行运算,并根据运算结果去除干扰数据,得到模型更新参数;
12.所述参与者节点利用所述模型更新参数更新所述机器学习模型。
13.在其中一个实施例中,所述机器学习模型为梯度提升决策树模型,所述梯度提升决策树模型包括树节点,所述利用本地数据对所述机器学习模型进行训练包括:
14.每个所述参与者节点分别获取所述树节点的节点训练特征集以及所述梯度提升决策树模型的特征矩阵的梯度数据;
15.每个所述参与者节点分别针对所述树节点,根据所述节点训练特征集和所述梯度数据确定出局部最佳分裂规则并发送给所述主节点。
16.在其中一个实施例中,所述利用本地数据对所述机器学习模型进行训练包括:
17.将所述机器学习模型转换为计算图;
18.将所述本地数据输入到所述计算图中进行训练操作;
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.图1为一个实施例中横向联邦学习系统的结构示意图;
44.图2为一个实施例中横向联邦学习方法的流程图;
45.图3为图2所示实施例中步骤s10的一个实施方式的流程图;
46.图4为图2所示实施例中步骤s10的另一实施方式的流程图;
47.图5为图2所示实施例中步骤s20的一个实施方式的流程图;
48.图6为一个实施方式中横向联邦学习系统的结构示意图;
49.图7为一个实施例中横向联邦学习装置的结构框图;
50.图8为一个实施例中计算机设备的结构框图。
具体实施方式
51.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
52.可以理解,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。还应理解的是,虽然术语“第一”、“第二”、“第三”等在文本中在一些本技术实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语仅用于区分各种元素。
53.联邦学习的提出是为了解决基于不同网络域下的机器学习模型训练问题。主要优化方向为大规模分发的通信成本,不平衡的数据分布,加密规则等。在联邦学习中,数据是按照用户id和设备id进行划分的。所以不同的用户id和设备id在数据空间是相对独立的。
54.联邦学习具备不同的隐私保护技术,比如安全多方计算,差异隐私,同态加密。在
政府场景下在不同机构的合作项目中,采用了同态加密的方法。具体方法是采用同样的加密机制对数据进行了处理。同态加密的好处是在不同机构侧都可以得到模型运算的结果。而加密则伴随着全流程。包括机器学习中的训练和数据处理。解密后可以直接得到训练和预测结果。中间过程在未解密前均不可见。
55.在横向联邦学习解决方案中,单个设备在本地更新模型参数,并且上传到云端,从而与其它设备共同训练一个中心化模型。而这个中心化模型在多个设备都有存储,只不过模型的参数在不同设备上会有不同。其实横向联邦学习架构相当于汇聚各个不同节点的设备创建了一个数据集共享特征空间。
56.在一个实施例中,提出了一种横向联邦学习方法,基于横向联邦学习系统实现,横向联邦学习系统包括主节点以及与该主节点相连接的至少两个参与者节点,横向联邦学习系统如图1所示。
57.如图2所示,本实施例的横向联邦学习方法,具体可以包括以下步骤:
58.s10、参与者节点从主节点上下载机器学习模型,利用本地数据对该机器学习模型进行训练,得到训练后的模型参数。
59.参与者节点可以为各个用户端,可以是各种机构的计算机终端,例如监管部门端的计算机终端,保险公司的计算机终端等。主节点可以是中心服务器。
60.在保险公司的计算机终端的数据库中的数据可以包括个人赔付数据、个人赔付账户、个人参保险种、保险机构核损金额、赔保案件发生的地点、收款账户相关联的账户、参与赔付中的维修机构以及查勘人员信息等。
61.如图3所示,在某些实施方式中,机器学习模型为梯度提升决策树模型,利用本地数据对该机器学习模型进行训练包括:
62.s101、每个参与者节点分别针对机器学习模型的树节点,获取树节点的节点训练特征集和梯度数据,其中,梯度数据为机器学习模型的特征矩阵的梯度数据,节点训练特征集是预先训练好的树节点的分裂规则和参与者节点的特征子集确定的,特征子集中包含多个特征列,特征列中包含所有样本的特征的特征值,各参与者节点各自的特征子集组成特征矩阵,且各参与者节点的特征子集互不相交;
63.s102、每个参与者节点分别针对机器学习模型的树节点,根据获取的节点训练特征集和梯度数据确定出局部最佳分裂规则并发送给主节点,局部最佳分裂规则包括使目标函数的增益最大的特征和特征值。
64.如图4所示,在某些实施方式中,参与者节点利用各自数据库的数据对机器学习模型进行训练,包括以下步骤:
65.1)将机器学习模型转换为计算图。
66.机器学习模型包括多个层,每个层包含至少一个计算逻辑,各个计算逻辑之间存在数据输入或输出关系。将每个计算逻辑用一个算子(operator,op)来表示,计算逻辑中通常包括多个模型参数,将各个计算逻辑之间的输入关系和/或输出关系用边的形式表示,从而将机器学习模型转换为包括多个算子和若干条边的计算图,其中,每条边用于连接两个不同的算子。
67.2)将本地数据作为训练数据输入到计算图中进行训练操作。
68.机器学习模型中包括多个模型参数,模型参数例如可以为权重,模型训练的过程
就是通过不断训练更新权重的过程。其中,梯度通常是权重的导数。每个权重都会有一个梯度,每个算子输出的梯度可以有一个也可以有多个,具体数量依据算子上所包含权重的数量来确定。
69.3)将训练完成的计算图转换为训练完成的机器学习模型。
70.将训练完成的计算图转换为训练完成的机器学习模型的转换方法是步骤1) 中的逆转换。
71.s20、参与者节点对训练后的模型参数进行同态加密,将加密数据发送给主节点。
72.如图5所示,在某些实施方式中,步骤s20包括:
73.s201、参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数(训练后的模型参数为明文数据)进行编码,得到编码数据;其中,编码数据中包括自身的随机噪声以及添加了干扰数据的训练后的模型参数,干扰数据是基于预设规则对自身的随机噪声进行运算后获得的。
74.s202、参与者节点利用对称密钥对编码数据进行加密并将加密得到的加密数据发送给主节点。
75.干扰数据是基于预设规则对自身的随机噪声进行运算后获得的,获得干扰数据的步骤包括:
76.以各个参与者节点共享的预设数据对自身的随机噪声进行乘运算后获得干扰数据。
77.自身的随机噪声的个数为一个;参与者节点利用自身的随机噪声对需要加密的训练后的模型参数进行编码,得到编码数据,包括:
78.将预设数据与随机噪声相乘,得到干扰数据;
79.将干扰数据以及添加了该干扰数据的训练后的模型参数组成编码数据。
80.在某些实施方式中,自身的随机噪声的个数为至少两个;
81.将预设数据与至少两个随机噪声分别相乘,得到至少两个干扰数据;
82.将至少两个干扰数据作为第一数据部分;
83.在训练后的模型参数中添加至少两个干扰数据,得到第二数据部分;
84.利用第一数据部分和第二数据部分组成编码数据。
85.s30、主节点对加密数据进行同态求平均处理,把经过同态求平均处理后的数据发送给各个参与者节点。
86.参与者节点接收主节点返回的密文汇聚数据,密文汇聚数据为主节点对参与同态加密的各个参与者节点分别发送的加密数据执行同态求平均处理得到的第一密文数据和第二密文数据,第一密文数据为各个参与者节点各自的随机噪声的同态求平均处理结果,第二密文数据为各个参与者节点各自添加了干扰数据的明文数据的同态求平均处理结果。
87.在某些实施方式中,机器学习模型在权重初始化时设定的权重通常都较大,所以权重更新的过程通常使用汇聚后的梯度来更新权重,具体地,可用本轮当前的权重减去本轮该权重的汇聚梯度,得到更新后的权重,该更新后的权重用于下一轮训练。
88.对加密数据进行同态求平均处理的过程,以四个参与者节点为例,每个参与者节点生成对应的随机噪声,进而运算得到干扰数据,例如参与者节点b1对应的随机噪声为r1,参与者节点b2对应的随机噪声为r2,参与者节点b3对应的随机噪声为r3,参与者节点b4对
应的随机噪声为r4,将某梯度值作为明文数据。
89.每个参与者节点基于预设规则对随机噪声运算后得到干扰数据,预设规则假设为将随机噪声乘以预设数据m得到干扰数据,将干扰数据加入明文数据中进行编码再加密,得到加密数据。
90.四个参与者节点所获得的某梯度值分别为0.16,0.45,0.15和0.34。参与者节点b1得到加密数据分别为[s(r1),s(0.16 mr1)],参与者节点b2得到加密数据分别为[s(r2),s(0.45 mr2)],参与者节点b3得到加密数据分别为 [s(r3),s(0.15 mr3)],参与者节点b4得到加密数据为[s(r4),s(0.34 mr4)]。
[0091]
主节点接收到每个参与者节点发送的加密数据后,对加密数据进行同态求平均运算,得到密文汇聚数据为 [s(0.25(r1 r2 r3 r4)),s(0.25(0.16 0.45 0.15 0.34 mr1 mr2 mr3 mr4))]。
[0092]
s40、参与者节点利用对称密钥对经过同态求平均处理后的数据进行解密,得到解密后数据。
[0093]
参与者节点利用对称密钥将密文汇聚数据解密,得到第一密文数据的第一解密数据和第二密文数据的第二解密数据;第一解密数据中包括各个参与者节点的随机噪声执行同态求平均处理得到的噪声结果数据,第二解密结果包括对各个参与者节点添加了干扰数据的明文数据执行同态求平均处理得到的码文结果数据。
[0094]
例如,仍以密文汇聚数据为 [s(0.25(r1 r2 r3 r4)),s(0.25(0.16 0.45 0.15 0.34 mr1 mr2 mr3 mr4))]为例,主节点将密文汇聚数据发送回各个参考节点,各个参考节点解密后得到码文数据为[0.25(r1 r2 r3 r4),0.25(1.1 mr1 mr2 mr3 mr4)]。
[0095]
s50、参与者节点基于预设规则对解密后数据进行运算,并根据运算结果去除干扰数据,得到模型更新参数。
[0096]
参与者节点利用预设规则对噪声结果数据进行运算,并根据运算结果去除码文结果数据中各个参与者节点添加的干扰数据,得到明文结果数据。
[0097]
例如,利用预设规则,根据运算结果去除码文结果数据中的干扰数据,得到明文结果数据,即
[0098]
0.25(1.1 mr1 mr2 mr3 mr4)

0.25m(r1 r2 r3 r4)=0.275,即该更新后的权重为0.275。
[0099]
s60、参与者节点利用模型更新参数,更新机器学习模型。
[0100]
解密接收到的数据,得到训练后的模型参数,对来自各参与者节点的训练后的模型参数进行参数汇聚操作,得到汇聚后的参数,利用汇聚后的参数更新机器学习模型。
[0101]
参数可以包括梯度。参数汇聚操作可以为梯度汇聚操作。该过程并不需要了解各个参与者节点的信息;梯度汇聚的过程通常是将各参与者节点结算得到的梯度相加然后再求平均值的过程。
[0102]
本技术的改进在于解决在需要联合训练机器学习模型的需求下,联邦学习的应用可以解决传输数据等繁琐步骤,并且也可以解决政府机构之间数据泄漏的担忧。各个节点之间完全不需要除自己节点之外的数据,就可以获取全域特征空间的机器学习训练结果。
[0103]
在传统的机器学习建模中,通常是把机器学习模型训练需要的数据集合到一个数据中心然后再机器学习模型,然后进行预测。而在本技术实施例的横向联邦学习,是基于样
本的分布式模型训练,分发全部数据到不同的机器,每台机器从服务器下载模型,然后利用本地数据机器学习模型,之后返回给服务器需要更新的参数;服务器汇聚各机器上的返回的参数,更新模型,再把最新的模型反馈到每台机器。
[0104]
在这个过程中,每台机器下都是相同且完整的模型,且机器之间互相不交流、互不依赖,在预测时每台机器也可以独立预测,可以把这个过程看作成基于样本的分布式模型训练。
[0105]
在某些实施方式中,机器学习模型可以采用梯度提升决策树模型。梯度提升决策树模型包括若干决策树。
[0106]
在某些实施方式中,机器学习模型可以采用深度神经网络模型。
[0107]
如图6所示,在某些实施方式中,以监管部门数据服务器和保险公司数据服务器作为参与者节点,以中心服务器作为主节点,监管部门数据服务器和中心服务器位于信赖域内,信赖域即可信赖的网络区域。在训练过程中,参数更新并不发生在保险公司数据服务器,而是保险公司数据服务器贡献梯度的变化,梯度汇集之后(平均梯度)传输到监管部门数据服务器,以监管部门端和保险公司的数据服务器都信赖的中心服务器作为主节点,由该中心服务器进行随机梯度下降的训练。每一轮训练后参数有所更新,再把相关参数同步到保险公司数据服务器,保险公司数据服务器进行计算,更新梯度。形成一个这个流程的循环操作,直到参数不在更新则意味着训练结束。
[0108]
因为在训练的过程中可能存在大量的网络通信消耗,如果是保险公司数据服务器和监管部门数据服务器仅仅做一次梯度更新就进行参数更新的话,需要大量的通信。所以累积梯度可以有效较少网络通信消耗。具体步骤为在等待的过程中更新的梯度进行累加,这样传输给到训练服务器端就是多次累加更新的梯度,而不是依次。同样,在监管部门数据服务器也是这么操作。
[0109]
在某具体实施方式中,在实际中应用联邦学习,在监管部门数据服务器与保险公司数据服务器上联合开发反欺诈模型。在监管部门数据服务器和保险公司数据服务器之间数据不互通,而在两者之间有专线做数据传输使用,这条专线仅有2m/s,并且与其它场景共同占用该专线。所以是一个传输慢,需要在各个节点上异步训练的流程。
[0110]
在监管部门数据服务器与保险公司数据服务器合作场景下应用联邦学习。在首次机器学习模型的方法上做了以下几点的改进和创新。
[0111]
采用累积梯度更新方法。在保险公司数据服务器的数据可以视为一个批梯度更新的数据集,在监管部门数据服务器的数据可以视为另外一个批梯度更新的数据集。在保险公司数据服务器上先进行训练,仅仅在保险公司业务上的参数。在固定的时间窗口内将参数以加密形式,通过https传输到监管部门数据服务器,监管部门数据服务器获得参数后在监管部门数据服务器的数据集上进行训练,在固定的时间窗口内再批量将参数传回到保险公司数据服务器。这个过程循环多轮,知道参数和损失不在更新位置认为是累积梯度更新方法结束。以上梯度更新方法都是通过加密传输的。
[0112]
在保险公司数据服务器累积梯度计算的过程中,这个时候监管部门数据服务器是处于等待请求的状态。当监管部门数据服务器收到保险公司数据服务器累积梯度计算的结果时,会告知保险公司数据服务器现在监管部门数据服务器已经在累积梯度的计算过程中。保险公司数据服务器会暂定梯度更新直到监管部门数据服务器反馈其业务数据的累积
梯度。
[0113]
在最后更新完参数之后,会有一个一致性方法去检验最终的模型,保证保险公司数据服务器的模型和监管部门数据服务器的模型一致。每当模型进行变更时,都会以时间戳的方式去命名模型文件。
[0114]
在某些实施方式中,在训练步骤中需要保证模型的唯一性,还要保证模型是最新的。利用时间戳更新可以在对比的时候选取最新的模型,方便在程序中用时间的规则来更新模型。时间戳构成的模型名的组成为年月日小时分_任务 id 训练轮数 学习率.model。
[0115]
等待到模型参数没有更新,模型文件名也相应的不变更。在一致性检验模型名不变更后便在监管部门数据服务器和保险公司数据服务器进行模型拷贝和复制。这样保证模型一致性。
[0116]
在得到一个初始的模型之后,这个模型可以在监管部门数据服务器的对方接口被请求,也可以在保险公司数据服务器的接口被请求。
[0117]
在现有技术中,黑客和数据窃取者倾向于在节点传输过程中窃取数据,这样给分布式机器学习造成了极大的不安全性。本技术实施例的技术方案中,横向联邦学习过程中,节点与节点之间的加密传输使得分布式机器学习系统安全性更高,大大降低了被攻击的可能性。
[0118]
现有技术中,在不同机构之间进行分布式机器学习合作总会牵扯到数据传输、数据安全的问题。本技术实施例中横向联邦学习的架构中不需要各个机构之间互相进行数据传输,各个机构仍然能够保留自身数据的私密性。这样在合作时即解决了数据隐私泄漏问题。
[0119]
本技术实施例的方法加强了数据隐私性,横向联邦学习侧重于对隐私的强调。在学习训练、预测的过程中,联邦学习保证全过程中数据是加密状态的,只有在结果阶段用户能够拿到结果对应的预测数据,用户只能看到加密的模型参数和加密的数据训练、数据处理过程。联邦学习地引入,使得数据窃取者即使破解了网络节点之间的通信过程,仍然不会造成数据泄漏。另外,本技术实施例的横向联邦学习方法不需要每个节点都存储全部的源数据,只需要存储自身的数据就可以了,因而克服了现有存储方式耗费大量的存储空间存储同样的数据导致存储空间的浪费的缺陷,大大节省了存储空间。
[0120]
本技术实施例的横向联邦学习方法,参与者节点将训练机器学习模型得到的模型参数进行同态加密后发送给主节点,主节点对加密数据进行同态求平均处理后将处理后的数据发送给各参与者节点,参与者节点解密处理后的数据,基于预设规则处理解密后的数据得到模型更新参数,更新机器学习模型,参与者节点与主节点之间进行数据加密传输,主节点不对接收到的加密数据进行解密,在整个横向联邦学习过程中数据传输都是在加密状态下进行的,提高了数据传输过程中的安全性,避免了数据泄露问题。
[0121]
如图7所示,在一个实施例中,提出了一种横向联邦学习装置,包括:
[0122]
训练模块10,用于参与者节点从主节点上下载机器学习模型,利用本地数据对所述机器学习模型进行训练,得到训练后的模型参数;
[0123]
加密模块20,用于所述参与者节点对所述训练后的模型参数进行同态加密,将加密数据发送给所述主节点;
[0124]
计算模块30,用于所述主节点对所述加密数据进行同态求平均处理,把经过所述
同态求平均处理的数据发送给各所述参与者节点;
[0125]
解密模块40,用于所述参与者节点对所述经过同态求平均处理的数据进行解密,得到解密后数据;
[0126]
运算模块50,用于所述参与者节点基于预设规则对所述解密后数据进行运算,并根据运算结果去除干扰数据,得到模型更新参数;
[0127]
更新模块60,用于所述参与者节点利用所述模型更新参数更新所述机器学习模型。
[0128]
在某些实施方式中,所述机器学习模型为梯度提升决策树模型,所述梯度提升决策树模型包括树节点,所述利用本地数据对该机器学习模型进行训练的步骤包括:
[0129]
每个所述参与者节点分别获取所述树节点的节点训练特征集以及所述梯度提升决策树模型的特征矩阵的梯度数据;
[0130]
每个所述参与者节点分别针对所述树节点,根据所述节点训练特征集和所述梯度数据确定出局部最佳分裂规则并发送给所述主节点。
[0131]
在某些实施方式中,所述利用本地数据对该机器学习模型进行训练的步骤包括:
[0132]
将所述机器学习模型转换为计算图;
[0133]
将所述本地数据输入到计算图中进行训练操作;
[0134]
将训练完成的计算图转换为训练完成的机器学习模型。
[0135]
在某些实施方式中,对训练后的模型参数进行同态加密的步骤,包括:
[0136]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的。
[0137]
在某些实施方式中,对训练后的模型参数进行同态加密的步骤,包括:
[0138]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的;
[0139]
所述参与者节点利用对称密钥对所述编码数据进行加密,得到加密数据。
[0140]
在某些实施方式中,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的,包括:
[0141]
以各所述参与者节点共享的预设数据对所述随机噪声进行乘运算后获得所述干扰数据。
[0142]
在某些实施方式中,利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据的步骤,包括:
[0143]
当所述随机噪声的个数为一个时,将所述预设数据与所述随机噪声相乘得到干扰数据,利用所述干扰数据以及添加了所述干扰数据的训练后的模型参数组成编码数据;
[0144]
当所述随机噪声的个数至少为两个时,将所述预设数据与至少两个所述随机噪声分别相乘,得到至少两个干扰数据;
[0145]
将所述至少两个干扰数据作为第一数据部分;
[0146]
在所述训练后的模型参数中添加所述第一数据部分,得到第二数据部分;
[0147]
利用所述第一数据部分以及所述第二数据部分组成编码数据。
[0148]
如图8所示,在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0149]
所述参与者节点从所述主节点上下载机器学习模型,利用本地数据对所述机器学习模型进行训练,得到训练后的模型参数;
[0150]
所述参与者节点对所述训练后的模型参数进行同态加密,将加密数据发送给所述主节点;
[0151]
所述主节点对所述加密数据进行同态求平均处理,把经过所述同态求平均处理的数据发送给各所述参与者节点;
[0152]
所述参与者节点对所述经过同态求平均处理的数据进行解密,得到解密后数据;
[0153]
所述参与者节点基于预设规则对所述解密后数据进行运算,并根据运算结果去除干扰数据,得到模型更新参数;
[0154]
所述参与者节点利用所述模型更新参数更新所述机器学习模型。
[0155]
在一个实施例中,所述机器学习模型为梯度提升决策树模型,所述梯度提升决策树模型包括树节点,所述处理器执行所述计算机程序时所执行的利用本地数据对该机器学习模型进行训练包括:
[0156]
每个所述参与者节点分别获取所述树节点的节点训练特征集以及所述梯度提升决策树模型的特征矩阵的梯度数据;
[0157]
每个所述参与者节点分别针对所述树节点,根据所述节点训练特征集和所述梯度数据确定出局部最佳分裂规则并发送给所述主节点。
[0158]
在一个实施例中,所述处理器执行所述计算机程序时所执行的利用本地数据对该机器学习模型进行训练包括:
[0159]
将所述机器学习模型转换为计算图;
[0160]
将所述本地数据输入到计算图中进行训练操作;
[0161]
将训练完成的计算图转换为训练完成的机器学习模型。
[0162]
在一个实施例中,所述处理器执行所述计算机程序时所执行的参与者节点对训练后的模型参数进行同态加密,包括:
[0163]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的。
[0164]
在一个实施例中,所述处理器执行所述计算机程序时所执行的参与者节点对训练后的模型参数进行同态加密,包括:
[0165]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的;
[0166]
所述参与者节点利用对称密钥对所述编码数据进行加密,得到加密数据。
[0167]
所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的,包括:
[0168]
以各所述参与者节点共享的预设数据对所述随机噪声进行乘运算后获得所述干扰数据。
[0169]
在一个实施例中,所述处理器执行所述计算机程序时所执行的所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据,包括:
[0170]
当所述随机噪声的个数为一个时,将所述预设数据与所述随机噪声相乘得到干扰数据,利用所述干扰数据以及添加了所述干扰数据的训练后的模型参数组成编码数据;
[0171]
当所述随机噪声的个数至少为两个时,将所述预设数据与至少两个所述随机噪声分别相乘,得到至少两个干扰数据;
[0172]
将所述至少两个干扰数据作为第一数据部分;
[0173]
在所述训练后的模型参数中添加所述第一数据部分,得到第二数据部分;
[0174]
利用所述第一数据部分以及所述第二数据部分组成编码数据。
[0175]
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
[0176]
所述参与者节点从所述主节点上下载机器学习模型,利用本地数据对所述机器学习模型进行训练,得到训练后的模型参数;
[0177]
所述参与者节点对所述训练后的模型参数进行同态加密,将加密数据发送给所述主节点;
[0178]
所述主节点对所述加密数据进行同态求平均处理,把经过所述同态求平均处理的数据发送给各所述参与者节点;
[0179]
所述参与者节点对所述经过同态求平均处理的数据进行解密,得到解密后数据;
[0180]
所述参与者节点基于预设规则对所述解密后数据进行运算,并根据运算结果去除干扰数据,得到模型更新参数;
[0181]
所述参与者节点利用所述模型更新参数更新所述机器学习模型。
[0182]
在一个实施例中,所述机器学习模型为梯度提升决策树模型,所述梯度提升决策树模型包括树节点,所述一个或多个处理器所执行的利用本地数据对该机器学习模型进行训练包括:
[0183]
每个所述参与者节点分别获取所述树节点的节点训练特征集以及所述梯度提升决策树模型的特征矩阵的梯度数据;
[0184]
每个所述参与者节点分别针对所述树节点,根据所述节点训练特征集和所述梯度数据确定出局部最佳分裂规则并发送给所述主节点。
[0185]
在一个实施例中,所述一个或多个处理器所执行的利用本地数据对该机器学习模型进行训练包括:
[0186]
将所述机器学习模型转换为计算图;
[0187]
将所述本地数据输入到计算图中进行训练操作;
[0188]
将训练完成的计算图转换为训练完成的机器学习模型。
[0189]
在一个实施例中,所述一个或多个处理器所执行的参与者节点对训练后的模型参数进行同态加密,包括:
[0190]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的。
[0191]
在一个实施例中,所述一个或多个处理器所执行的参与者节点对训练后的模型参
数进行同态加密,包括:
[0192]
所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据;其中,所述编码数据中包括所述随机噪声以及添加了干扰数据的训练后的模型参数,所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的;
[0193]
所述参与者节点利用对称密钥对所述编码数据进行加密,得到加密数据。
[0194]
所述干扰数据是基于预设规则对所述随机噪声进行运算后获得的,包括:
[0195]
以各所述参与者节点共享的预设数据对所述随机噪声进行乘运算后获得所述干扰数据。
[0196]
在一个实施例中,所述一个或多个处理器所执行的所述参与者节点利用自身的随机噪声对需要进行加密的训练后的模型参数进行编码,得到编码数据,包括:
[0197]
当所述随机噪声的个数为一个时,将所述预设数据与所述随机噪声相乘得到干扰数据,利用所述干扰数据以及添加了所述干扰数据的训练后的模型参数组成编码数据;
[0198]
当所述随机噪声的个数至少为两个时,将所述预设数据与至少两个所述随机噪声分别相乘,得到至少两个干扰数据;
[0199]
将所述至少两个干扰数据作为第一数据部分;
[0200]
在所述训练后的模型参数中添加所述第一数据部分,得到第二数据部分;
[0201]
利用所述第一数据部分以及所述第二数据部分组成编码数据。
[0202]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory, rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram) 等。
[0203]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0204]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜