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

分布式机器学习模型的训练方法、装置、设备和介质与流程

2021-10-24 12:20:00 来源:中国专利 TAG:学习 人工智能 分布式 介质 深度


1.本公开涉及人工智能技术领域,具体为深度学习技术领域,尤其涉及一种分布式机器学习模型的训练方法、装置、设备和介质。


背景技术:

2.随着人工智能技术的发展,机器学习在各个场景中得到了越来越广泛的运用。
3.随着分布式机器学习的普及,引出了一个隐私保护的问题。对于机器学习模型的训练,往往需要多方各自提供的数据样本来联合进行训练。但是,多方对于自己所持有的数据样本存在隐私保护需求,不希望自己所持有的数据样本被公开或被其他方获取。甚至多方可能需要各自训练机器学习模型中的一部分模型,而该部分模型的训练过程数据也不希望被其他方获知。
4.对于上述需求,现有技术一般采用可信第三方来进行协调,将不希望暴露给其他参与方的隐私数据,放在可信第三方中进行处理。现有技术仍然存在可信第三方恶意泄露的可能性,且大量数据在多方和可信第三方之间进行交互,也使得模型训练过程的数据传输量大,效率低。


技术实现要素:

5.本公开提供了一种分布式机器学习模型的训练方法、装置、设备和介质,以兼顾多方训练模型的隐私数据保护和模型训练效率。
6.根据本公开的一方面,提供了一种分布式机器学习模型的训练方法,包括:获取第一同态加密中间参数和第二同态加密中间参数;产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数;基于所述第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数;将所述第一加密关键参数传输给第二参与方,以供所述第二参与方采用第二同态私钥对所述第一加密关键参数进行解密;获取所述第二参与方解密后的第一关键参数;根据所述第一关键参数和所述第一干扰参数,对所述第一子模型进行迭代更新,直至所述第一子模型训练完成。
7.根据本公开的另一方面,还提供了一种分布式机器学习模型的训练装置,包括:中间参数获取模块,用于获取第一同态加密中间参数和第二同态加密中间参数;干扰参数形成模块,用于产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数;参数产生模块,用于基于所述第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数;
参数解密模块,用于将所述第一加密关键参数传输给第二参与方,以供所述第二参与方采用第二同态私钥对所述第一加密关键参数进行解密;第一关键参数获取模块,用于获取所述第二参与方解密后的第一关键参数;子模型训练模块,用于根据所述第一关键参数和所述第一干扰参数,对所述第一子模型进行迭代更新,直至所述第一子模型训练完成。
8.根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所提供的任意一种分布式机器学习模型的训练方法。
9.根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开实施例所提供的任意一种分布式机器学习模型的训练方法。
10.根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开实施例所提供的任意一种分布式机器学习模型的训练方法。
11.根据本公开的技术,兼顾了多方训练模型的隐私数据保护和模型训练效率。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是根据本公开实施例提供的一种分布式机器学习模型的训练方法的示意图;图2是根据本公开实施例提供的另一种分布式机器学习模型的训练方法的示意图;图3是根据本公开实施例提供的又一种分布式机器学习模型的训练方法的示意图;图4是根据本公开实施例提供的一种分布式机器学习模型的训练装置的示意图;图5是用来实现本公开实施例的分布式机器学习模型的训练方法的电子设备的框图。
具体实施方式
14.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
15.以下结合附图,对本公开实施例提供的该方案进行详细说明。
16.图1是根据本公开实施例提供的一种分布式机器学习模型的训练方法的示意图,
本公开实施例可适用于多方在隐私保护需求下进行数据交互,完成对机器学习模型训练的情况。该方法可由一种分布式机器学习模型的训练装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中。该电子设备可以是属于任一参与方的设备,在多方联合训练的场景下,一般有至少两个参与方参与模型训练,每个参与方可具有独立的电子设备,多个参与方进行交互,以完成模型训练。本实施例从其中任意一个参与方的角度进行说明,各参与方的模型训练过程基本相同。
17.参考图1,该方法具体包括如下:s101、获取第一同态加密中间参数和第二同态加密中间参数;其中,第一同态加密中间参数为采用第二参与方的第二同态公钥对第一训练中间参数进行加密的数据,第一训练中间参数为第一参与方基于第一样本数据对第一子模型进行训练后产生的中间参数,第二同态加密中间参数为采用第二参与方的第二同态公钥对第二训练中间参数进行加密的数据,第二训练中间参数为第二参与方基于第二样本数据对第二子模型进行训练后产生的中间参数;机器学习模型由至少两个参与方各自本地的子模型组成。
18.机器学习模型的训练由至少两个参与方参与,机器学习模型由至少两个参与方各自本地的子模型组成,每个子模型均为待训练模型,子模型各自的训练过程具有隐私性,需要保密。其中,第一参与方可以是参与模型训练的多个参与方中任一参与方,第二参与方可以是参与模型训练的多个参与方中,除第一参与方之外的其他参与方,第二参与方可以是一个,也可以是多个。第一子模型可以是第一参与方的本地的子模型,第二子模型可以是第二参与方的本地的子模型。
19.其中,第一样本数据可以是第一参与方用于训练第一子模型时所使用的样本数据;第二样本数据可以是第二参与方用于训练第二子模型时所使用的样本数据。每个参与方所持有的样本数据所对应的对象重合,但对象的属性数据不同。例如,在网购平台或外卖平台中,各平台方分别为模型训练的参与方,训练对象是重合的,均基于相同的用户,而各参与方所持有的用户的不同属性数据。例如,网购平台持有用户的网购相关数据,外卖平台持有用户在外卖平台中所记录的相关数据。无论是网购平台或外卖平台,需要对用户隐私数据进行不可见的处理,或将用户隐私数据进行隐藏后,再使用在各平台上的网购信息或外卖信息。各参与方所训练的子模型,是与自身平台所持有的属性数据相关的数据处理子模型。各子模型经训练后组合得到的机器训练模型,能够结合用户的多方面属性数据,得到平台自身所需求的数据。至少一个参与方的样本数据具有标签,例如,用户是否存在违约风险作为标签,是由网购平台所知的,则网购平台方的样本数据具有标签。其他参与方提供的样本数据可以不具有标签。
20.具体的,第一参与方基于第一样本数据对第一子模型进行训练,得到第一训练中间参数;第二参与方基于第二样本数据对第二子模型进行训练,得到第二训练中间参数。上述训练过程,即将参与方自己所持有的样本数据输入子模型进行计算,训练中间参数包括子模型输出的、用于进行目标损失函数和梯度计算的参数。子模型的训练中间参数,需与其他参与方的训练中间参数,一并经过诸如目标损失函数和梯度函数的计算,从而确定子模型训练是否收敛,以及该以和梯度进行迭代更新等。
21.第二参与方通过第二同态公钥,对第二训练中间参数进行加密操作,得到第二同
态加密中间参数,并发送至第一参与方。第一参与方通过由第二参与方发送的第二同态公钥,对第一训练中间参数进行加密,得到第一同态加密中间参数。
22.其中,每个参与方具有自己的同态密钥对,同态密钥对包括同态私钥和同态公钥,同态公钥可提供给其他参与方,同态私钥由自己保留。具体的,第二参与方生成第二同态密钥对,第二同态密钥对包括第二同态公钥和第二同态私钥。第二同态私钥用于对通过第二同态公钥加密的数据进行解密。第二同态公钥用于第二参与方根据第二同态公钥对第二训练中间参数进行加密。第二参与方将第二同态公钥发送至第一参与方,第一参与方能够根据第二同态公钥对第一训练中间参数进行加密,以供后续第二参与方能够通过第二同态私钥,对第一参与方根据第二同态公钥进行加密后的数据进行解密。
23.s102、产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数。
24.其中,第一干扰参数可以是由第一参与方生成的干扰参数,用于对第一参与方的模型训练过程进行加扰,从而保证隐私性。
25.可选的,第一干扰参数为随机数,例如,可以是随机整数或随机浮点数。其中,随机浮点数的取值区间可以是0至1之间任意浮点数。
26.第一参与方产生第一干扰参数,并采用第二参与方的第二同态公钥,对第一干扰参数进行加密,形成第一加密干扰参数。
27.s103、基于第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数。
28.其中,同态计算函数能够对同态加密数据进行计算,并且,计算的过程中不会泄漏加密数据,而计算得到的结果仍是加密结果。通过同态计算函数对同态加密数据进行计算得到的加密结果,与对同态加密数据对应的明文数据进行计算得到的结果,经解密后相同。因此,同态加密技术不影响计算过程,但可以对计算过程进行保密。
29.上述操作中的同态计算函数用于计算第一加密关键参数,第一加密关键参数包括第一子模型的训练结束条件判断参数和/或迭代更新参数。例如,目标损失函数计算的损失值,或迭代更新的梯度值等。
30.具体的,若采用公钥对数据进行加密生成加密数据,采用同态计算函数对加密数据进行计算得到加密结果,则拥有私钥的一方可以通过私钥对加密结果进行解密。
31.第一参与方可以通过第一子模型的同态计算函数,对第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数进行计算,产生第一加密关键参数。需要说明的是,第一参与方可以通过第一子模型的同态计算函数,对第一同态加密中间参数与第二加密中间参数进行计算,并将第一加密干扰参数通过线性计算或非线性计算的方式,叠加至计算结果中,从而产生第一加密关键参数。
32.在一个可选实施例中,基于第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,基于第一子模型的同态计算函数进行计算,以产生第一加密关键参数包括:基于第一同态加密中间参数和第二同态加密中间参数,基于第一子模型的同态计算函数进行计算,并将第一加密干扰参数基于线性计算叠加至计算结果中,以产生第一加密关键参数。
33.示例性的,第一参与方可以通过第一子模型的同态计算函数,对第一同态加密中
间参数和第二同态加密中间参数进行计算,并将第一加密干扰参数通过线性计算的方式,叠加至计算的结果中,从而产生第一加密关键参数。
34.示例性的,可以根据计算结果的不同形式,采用不同线性计算的方式进行计算,例如,作为计算结果的中间参数的形式可以是集合形式。以计算结果形式为集合形式为例,则可以通过遍历集合的方式,将第一加密干扰参数线性叠加至集合中的每个元素中,从而得到第一加密关键参数集合。
35.本可选实施例通过第一子模型的同态计算函数,对第一同态加密中间参数和第二同态加密中间参数进行计算,并将第一加密干扰参数基于线性计算叠加至计算结果中的方式,实现了对第一加密关键参数的获取,提高了第一参与方数据的安全性,避免了数据泄露的情况发生。
36.s104、将第一加密关键参数传输给第二参与方,以供第二参与方采用第二同态私钥对第一加密关键参数进行解密。
37.第一参与方将第一加密关键参数传输给第二参与方,第一参与方采用第二同态私钥对接收到的第一加密关键参数进行解密,从而生成第一关键参数。
38.需要说明的是,由于第二参与方生成的第一关键参数中包含了第一干扰参数,因此,第二参与方无法获知不含第一干扰参数的第一关键参数,即无法获知第一参与方的第一子模型经目标函数的损失值和梯度参数等数据。因此,无法反推获知第一参与方所采用的目标函数和梯度函数,也无法获知第一参与方的子模型训练结束条件、梯度精度等信息,从而保证了第一参与方模型训练过程的隐私性。
39.s105、获取第二参与方解密后的第一关键参数。
40.s106、根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成。
41.第一参与方可以从第一关键参数中,提取出第一干扰参数,从而确定最终的关键参数,并使用最终确定的关键参数,对第一子模型进行迭代更新,直到第一子模型训练完成。
42.需要说明的是,第一参与方根据第一子模型的同态计算函数,对基于第一同态加密中间参数和第二同态加密中间参数进行计算,若第一参与方采用线性计算的方式,将第一加密干扰参数叠加至计算结果中,则第一参与方在接收到第一关键参数后,还需要基于第一干扰参数,对第一关键参数进行逆向线性计算操作。例如,若线性计算是相加,则逆向线性计算可以是相减。
43.在一个可选实施例中,根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成包括:基于第一干扰参数对第一关键参数进行逆向线性计算,并根据逆向线性计算后的关键参数,对第一子模型进行迭代更新,直至第一子模型训练完成。
44.若第一参与方采用线性计算的方式,将第一加密干扰参数叠加至计算结果中,则第一参与方接收到第一关键参数后,需要根据第一干扰参数对第一关键参数进行逆向线性计算,从而能够将第一干扰参数从第一关键参数中提取出来,并确定逆向线性计算后的关键参数。具体可以是采用与线性计算相对应的规则,基于第一干扰参数对第一关键参数进行逆向线性计算。第一参与方根据逆向线性计算后的关键参数,对第一子模型进行迭代更
新,直至第一子模型训练完成。各参与方可持有训练完成的子模型,当需要使用机器学习模型进行处理的时候,可以将输入的待处理数据,分别提供给各参与方,经子模型处理后,再汇总结果。
45.以第一关键参数为集合的形式为例,若线性计算的规则为遍历第一加密干扰集合中的每个元素,并为每个元素线性叠加相同的第一加密干扰参数,则逆向线性计算可以是遍历第一关键参数集合中的每个元素,并对每个元素减去第一干扰参数。
46.本可选实施例通过采用逆向线性计算的方式,对关键参数进行确定,与上述第一参与方采用线性计算的方式,将第一加密干扰参数叠加至计算结果相对应,为上述采用线性计算的方式确定的结果提供解决途径,从而能够准确的根据第一干扰参数确定出关键参数。
47.本公开实施例通过获取第一同态加密中间参数和第二同态加密中间参数;产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数;基于第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,基于第一子模型的同态计算函数进行计算,以产生第一加密关键参数;将第一加密关键参数传输给第二参与方,以供第二参与方采用第二同态私钥对第一加密关键参数进行解密;获取第二参与方解密后的第一关键参数;根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成。上述方案实现了多方训练模型的隐私数据和训练过程数据的保护;同时,无需采用可信第三方进行协调,避免了可信第三方对数据恶意泄露的可能性,且避免了大量数据在多方和可信第三方之间进行交互,减少了模型训练过程的数据传输量,从而提高了模型训练的效率。
48.需要说明的是,为保证第一参与方与第二参与方训练得到的子模型的准确度,第一参与方与第二参与方对应的样本数据的所属对象保持一致,因此,需要获取第一参与方与第二参与方的各样本数据中,属于同一用户的样本数据,作为第一参与方对应的第一样本数据和第二参与方对应的第二样本数据。
49.在一个可选实施例中,获取第一同态加密中间参数和第二同态加密中间参数之前,还包括:确定第一参与方与第二参与方的样本数据交集标识,至少一个参与方的样本数据对应标注有标签。
50.至少一个参与方的样本数据对应标注有标签。其中,标签可以是模型训练的结果,例如,若样本数据为用户违约系数风险,则对应的标签可以是有风险或无风险。
51.示例性的,可以通过隐私集合求交(private set intersection,psi)的方式,分别对第一参与方的样本数据和第二参与方的样本数据进行交集运算。其中,psi能够在各参与方不泄露任何额外信息的情况下,得到各参与方持有的样本数据的交集。其中,额外信息可以是除了各参与方的样本数据的交集之外的任何信息。
52.具体的,对第一参与方的样本数据和第二参与方的样本数据进行psi计算,确定第一参与方与第二参与方共同持有的样本数据交集,并确定样本数据交集标识,其中,样本数据交集标识可以是用户身份证号、用户姓名等。第一参与方与第二参与方仅能够获知样本数据交集标识,而无法获知除样本数据交集标识之外的其他额外信息,从而保证了各参与方的各样本数据的安全性。第一参与方根据psi计算确定的样本数据交集标识,得到第一样本数据;第二参与方根据psi计算确定的样本数据交集标识,得到第二样本数据。
53.例如,第一参与方的样本数据为用户身份证号数据和用户信用度数据;第二参与方的样本数据为用户身份证号数据和用户年龄数据。通过psi计算可以确定第一参与方和第二参与方的样本数据交集标识为用户身份证号,并且可以通过用户身份证号确定各参与方的样本数据交集。而第一参与方仅能够获知第二参与方的样本数据中存在用户身份证号对应的样本数据,而无法获知第二参与方的样本数据中的其他样本数据标识,如用户年龄,更无法获知用户年龄数据。同理,第二参与方也无法获知第一参与方的样本数据中的其他样本数据标识,如用户信用度,更无法获知用户信用度数据。
54.本可选实施例,通过采用psi计算的方式,确定第一参与方与第二参与方的样本数据交集标识,实现了第一参与方根据样本数据交集标识确定第一样本数据,第二参与方根据样本数据交集标识确定第二样本数据,保证了样本数据的一致性。此外,通过psi计算样本数据交集的方式,使得各参与方无法获知除样本数据交集标识之外的其他额外信息,从而保证了各参与方的各样本数据的安全性。通过对至少一个参与方的样本数据标注标签的方式,实现了对模型训练结果类别的确定。
55.图2是根据本公开实施例提供的另一种分布式机器学习模型的训练方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案。参见图2,本实施例提供的分布式机器学习模型的训练方法包括:s201、获取第一同态加密中间参数和第二同态加密中间参数;其中,第一同态加密中间参数为采用第二参与方的第二同态公钥对第一训练中间参数进行加密的数据,第一训练中间参数为第一参与方基于第一样本数据对第一子模型进行训练后产生的中间参数,第二同态加密中间参数为采用第二参与方的第二同态公钥对第二训练中间参数进行加密的数据,第二训练中间参数为第二参与方基于第二样本数据对第二子模型进行训练后产生的中间参数;机器学习模型由至少两个参与方各自本地的子模型组成。
56.其中,第一训练中间参数可以包括第一中间损失参数和第一中间梯度参数,第二训练中间参数可以包括第二中间损失参数和第二中间梯度参数。相应的,第一同态加密中间参数可以包括第一同态加密损失参数和第一同态加密损失参数,第二同态加密中间参数可以包括第二同态加密损失参数和第二同态加密损失参数。其中,损失参数可以表征模型的收敛程度,梯度参数可以更新模型中的参数。
57.可选的,各参与方在通过各本地的子模型进行参数训练之前,还可以对子模型进行初始化操作,且在初始化过程中对当前损失参数进行随机设置,例如可以是设置为0。
58.需要说明的是,在机器学习模型训练过程中,由于样本数据的量级较大,因此,生成的参数通常以集合形式呈现,集合中所包含的元素可以是模型在训练过程中产生的中间参数;例如,损失参数集合中包括损失中间参数,梯度参数集合中包括梯度中间参数。因此,本实施例中所涉及到的通过模型训练得到的损失参数和梯度参数的存在形式为集合形式,以及通过同态加密得到的加密损失参数和加密梯度参数的存在形式同样为集合形式。
59.s202、产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数。
60.其中,第一干扰参数包括第一梯度干扰参数和第一损失干扰参数。采用第二参与方的第二同态公钥对第一梯度干扰参数和第一损失干扰参数进行加密,形成第一加密梯度
干扰参数和第一加密损失干扰参数。
61.第一梯度干扰参数和第一损失干扰参数为随机数,例如可以是随机整数或随机浮点数,第一梯度干扰参数和第一损失干扰参数的随机数可以设置为相同或不同,具体可以由相关技术人员根据实际需求进行人为设置。
62.s203、基于第一同态加密中间参数、第二同态加密中间参数和第一加密梯度干扰参数,以及第一子模型的同态梯度计算函数进行计算,以产生第一加密梯度参数。
63.基于第一同态加密中间参数中的第一同态加密梯度参数、第二同态加密中间参数中的第二同态加密梯度参数和第一加密梯度干扰参数,基于第一子模型的同态梯度计算函数进行计算,以产生第一加密梯度参数。
64.其中,同态梯度计算函数可以用于对第一同态加密梯度参数和第二同态加密梯度参数进行梯度计算。示例性的,第一参与方通过第一子模型的同态梯度计算函数,对第一同态加密梯度参数与第二同态加密梯度参数进行梯度计算,并在计算得到的梯度计算结果中,线性叠加第一加密梯度干扰参数。例如,可以对计算结果得到的梯度集合进行遍历,并将第一加密梯度干扰线性叠加至梯度集合中的每个元素,并将线性叠加后的结果作为第一加密梯度参数。
65.s204、基于第一同态加密中间参数、第二同态加密中间参数和第一加密损失干扰参数,以及第一子模型的同态损失计算函数进行计算,以产生第一加密损失参数。
66.基于第一同态加密中间参数中的第一同态加密损失参数、第二同态加密中间参数中的第二同态加密损失参数和第一加密损失干扰参数,基于第一子模型的同态损失计算函数进行计算,以产生第一加密损失参数。
67.其中,同态损失计算函数可以用于对第一同态加密损失参数和第二同态加密损失参数进行损失计算,可选的,同态损失计算函数的设置可以与上述同态梯度计算函数设置相同或不同。
68.示例性的,第一参与方通过第一子模型的同态损失计算函数,对第一同态加密损失参数与第二同态加密损失参数进行损失计算,并在计算得到的损失计算结果中,线性叠加第一加密损失干扰参数。例如,可以对计算结果得到的损失集合进行遍历,并将第一加密损失干扰线性叠加至损失集合中的每个元素,并将线性叠加后的结果作为第一加密损失参数。
69.s205、将第一加密关键参数传输给第二参与方,以供第二参与方采用第二同态私钥对第一加密关键参数进行解密。
70.其中,第一加密关键参数包括第一加密损失参数和第一加密梯度参数。具体的,第一参与方将第一加密损失参数和第一加密梯度参数传输给第二参与方,以供第二参数方采用第二同态私钥对第一加密损失参数和第二加密梯度参数进行解密。
71.s206、获取第二参与方解密后的第一关键参数。
72.其中,第一关键参数包括第一梯度参数和第一损失参数。具体的,第一参与方获取第二参与方解密后的第一梯度参数和第一损失参数。
73.s207、根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成。
74.根据第一关键参数中的第一梯度参数和第一干扰参数中的第一梯度干扰参数,确
定最终的梯度关键参数;根据第一关键参数中的第一损失参数和第一干扰参数中的第一损失干扰参数,确定最终的损失关键参数。采用最终的损失关键参数确定第一子模型是否收敛,如果收敛则训练完成,如果未收敛则采用最终的梯度关键参数对第一子模型进行迭代更新,再返回执行下一轮的训练中间参数计算和关键参数计算,直到第一参与方的第一子模型训练完成。
75.本公开实施例通过采用第一子模型的同态损失计算函数的方式,实现了有针对性的对第一同态加密损失参数和第二同态加密损失参数进行计算,并将第一加密损失干扰参数线性叠加至计算结果中,以产生第一加密损失参数,提高了第一加密损失参数确定的准确度。采用第一子模型的同态梯度计算函数的方式,实现了有针对性的对第一同态加密梯度参数和第二同态加密梯度参数进行计算,并将第一加密梯度干扰参数线性叠加至计算结果中,以产生第一加密梯度参数,提高了第一加密梯度参数确定的准确度。
76.需要说明的是,为确保第二参与方能够根据最终确定的关键参数对第二子模型进行训练,还需接收第一参与方的第一同态公钥,以供第二参与方根据第一同态公钥对第一训练中间参数和第二训练中间参数进行加密。
77.在一个可选实施例中,产生第一同态密钥对,第一同态密钥对包括第一同态公钥和第一同态私钥;将第一同态公钥发送给第二参与方;接收第二参与方发送的第二参与方产生的第二同态密钥对中的第二同态公钥。
78.第一参与方产生第一同态密钥对,第一同态密钥对包括第一同态公钥和第一同态私钥;第二参与方产生第二同态密钥对,第二同态密钥对包括第二同态公钥和第二同态私钥。第一参与方将第一同态公钥发送给第二参与方;第二参与方将第二同态公钥发送给第一参与方。
79.本可选实施例通过产生第一同态密钥对,并将第一同态密钥对中的第一同态公钥发送给第二参与方的方式,实现了第二参与方能够根据第一同态公钥,对第一训练中间参数和第二训练中间参数进行加密操作,从而确保了后续第二参与方能够确定关键参数,并根据关键参数对第二子模型进行训练。
80.图3是根据本公开实施例提供的另一种分布式机器学习模型的训练方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案,增加了对样本数据的标准化处理,以及对机器训练模型的逆标准化处理。参见图3,本实施例提供的分布式机器学习模型的训练方法包括:s301、对第一参与方的第一原始样本数据进行标准化处理,以获得样本特征维度的第一标准化值和第一样本数据;标准化处理后的第一样本数据用于对模型进行训练。
81.其中,第一原始样本数据的不同特征维度下,具有不同的量纲和数量级。若第一原始样本数据的不同特征维度的数值水平相差较大时,第一参与方直接使用第一原始样本数据对模型进行训练,则会突出数值水平较高的特征维度在模型训练中的作用,从而削弱数值水平较低的特征维度在模型训练中的作用。例如,样本特征维度可以是用户月收入、用户超期还款日期数量或用户信用度。其中,用户月收入的数量级较大,对应数值水平较高;用户超级还款日数量,相对于用户月收入的数量级较小,对应数值水平较低。
82.通过数据标准化算法,对第一参与方的第一原始样本数据进行标准化处理。其中,数据标准化算法可以是min

max标准化(min

maxnormalization)算法、z

score标准化
(zero

meannormalization)算法、log函数转换算法或归一化算法等。可以由相关技术人员根据实际需求对数据标准化算法进行选择,本实施例对此不进行限制。
83.通过数据标准化算法,对第一参与方的第一原始样本数据进行标准化处理,以获得样本特征维度的第一标准化值和第一样本数据。其中,第一标准化值可以包括样本特征维度的第一标准差和第一均值。采用标准化处理后的第一样本数据对模型进行训练。
84.s302、将第一标准化值采用第三加密密钥进行加密,形成第一加密标准化值,并将第一加密标准化值提供给可信第三方。
85.其中,可信第三方可以是基于硬件的可信执行环境(trusted execution environment,tee),还可以是多方安全计算(mpc:secure muti

party computation)协议。
86.可信第三方可以生成第三加密密钥,其中,第三方加密密钥可以是对称加密密钥或非对称加密密钥。可信第三方把第三加密密钥分别发送至各参与方,以供各参与方能够根据第三加密密钥对数据进行加密。
87.在一可选实施方式中,若第三加密密钥是对称加密密钥,则可信第三方将第三加密密钥发送至第一参与方和第二参与方。第一参与方采用第三加密密钥对第一标准化值进行加密,形成第一加密标准化值,并将形成的第一加密标准化值提供给可信第三方。同理,第二参与方采用第三加密密钥对第二标准化值进行加密,形成第二加密标准化值,并将形成的第二加密标准化值提供给可信第三方。
88.在又一可选实施方式中,若第三加密密钥是非对称密钥,则第三加密密钥包括第三加密公钥和第三加密私钥;可信第三方将第三加密公钥发送至第一参与方和第二参与方。第一参与方采用第三加密公钥对第一标准化值进行加密,形成第一加密标准化值,并将形成的第一加密标准化值提供给可信第三方。同理,第二参与方采用第三加密公钥对第二标准化值进行加密,形成第二加密标准化值,并将形成的第二加密标准化值提供给可信第三方。
89.s303、获取第一同态加密中间参数和第二同态加密中间参数。
90.需要说明的是,为保证第一子模型进行训练后产生的第一训练中间参数的精度具有统一性,还可以对第一训练中间参数进行精度调整,从而保证后续运算得到的数据精度具有统一性。
91.在一个可选实施例中,获取第一同态加密中间参数包括:基于第一样本数据对第一子模型进行训练后产生第一训练中间参数;根据设定精度将第一训练中间参数中的浮点数转为第一大整数;将第一大整数中的整数数值进行编码,以转换为第一正整数;采用第二参与方的第二同态公钥对第一正整数进行加密,以得到第一同态加密中间参数。
92.其中,精度可以由相关技术人员根据实际需求进行设定,具体可以是数值小数点后保留的位数,例如,可以设置精度为数值小数点后保留2位。
93.根据设定精度,通过大整数转换函数,将第一训练中间参数中的浮点数转为第一大整数。例如,大整数转换函数可以是高斯函数或ceil函数等。将第一大整数中的整数数值进行编码,以转换成第一正整数,具体可以是对第一大整数中的整数数值采用原码、补码和/或反码的编码方式进行编码,从而转换成第一正整数。采用第二参与方的第二同态公钥对第一正整数进行加密,以得到第一同态加密中间参数。
94.本可选实施例通过设定精度将第一训练中间参数中的浮点数转为第一大整数;将
第一大整数中的整数数值进行编码,以转换为第一正整数,实现了对第一训练中间参数精度的统一性,从而保证后续运算得到的数据精度同样具有统一性。
95.s304、产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数。
96.s305、基于第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数。
97.s306、将第一加密关键参数传输给第二参与方,以供第二参与方采用第二同态私钥对第一加密关键参数进行解密。
98.s307、获取第二参与方解密后的第一关键参数。
99.s308、根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成。
100.由于对第一训练中间参数进行了精度处理,将第一训练中间参数中的浮点数最终转换成了第一正整数,则后续生成的第一关键参数同样为精度处理后的数据,因此,需要对第一关键参数进行逆向处;可以对第一关键参数进行精度缩放操作,从而还原原始精度。
101.在一个可选实施例中,根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新包括:基于第一干扰参数对第一关键参数进行去干扰操作;对去干扰后的第一关键参数进行解码,并按照设定精度进行缩放,以转换成为浮点数;采用转换后的浮点数形式的第一关键参数对第一子模型进行迭代更新。
102.对第一关键参数进行解码操作,首先,将第一关键参数的数值类型由原始的正数转换为整数,其中,整数包括正数或负数;其次,将转换后的整数按照精度进行缩放,其中,精度的设置与编码时所设置的精度保持一致。最后,将精度转换后的整数转换为浮点数。采用转换后的浮点数形式的第一关键参数对第一子模型进行迭代更新。
103.本可选实施例采用逆向处理的方式,通过对去干扰后的第一关键参数进行解码,并按照设定精度进行缩放,并转换成为浮点数的方式,实现了第一关键参数的精度缩放,并还原至原始精度,从而保证了数据的数值类型的一致性。
104.s309、将第一子模型采用第三加密密钥进行加密,形成第一加密子模型,并将第一加密子模型提供给可信第三方,以供可信第三方基于各参与方提供的加密子模型进行组合,并基于各参与方提供的加密标准化值进行去标准化处理,再进行切分。
105.在一可选实施方式中,若可信第三方发送的第三加密密钥是对称加密密钥,则第一参与方采用第三加密密钥对第一子模型进行加密,形成第一加密子模型,并将第一加密子模型提供给可信第三方。同理,第二参与方采用第三加密密钥对第二子模型进行加密,形成第二加密子模型,并将第二加密子模型提供给可信第三方。
106.可信第三方使用第三加密密钥,对接收到的第一参与方提供的第一加密子模型和第一加密标准化值进行解密;对接收到的第二参与方提供的第二加密子模型和第二加密标准化值进行解密。可信第三方对解密后的第一参与方和第二参与方的子模型进行组合,并基于解密后的第一参与方和第二参与方的标准化值进行去标准化处理;将去标准化处理后的子模型进行切分,分成去标准化的第一子模型和去标准化的第二子模型。可信第三方将去标准化后的子模型,采用第三加密密钥进行加密,分别发送至各参与方。
107.在又一可选实施方式中,若可信第三方发送的第三加密密钥是非对称加密密钥,
则第一参与方采用可信第三方发送的第三加密公钥对第一子模型进行加密,形成第一加密子模型,并将第一加密子模型提供给可信第三方。同理,第二参与方采用可信第三方发送的第三加密公钥对第二子模型进行加密,形成第二加密子模型,并将第二加密子模型提供给可信第三方。
108.可信第三方使用第三加密私钥,对接收到的第一参与方提供的第一加密子模型和第一加密标准化值进行解密;对接收到的第二参与方提供的第二加密子模型和第二加密标准化值进行解密。可信第三方对解密后的第一参与方和第二参与方的子模型进行组合,并基于解密后的第一参与方和第二参与方的标准化值进行去标准化处理;将去标准化处理后的子模型进行切分,分成去标准化的第一子模型和去标准化的第二子模型。可信第三方将去标准化后的子模型,采用第三加密私钥进行加密,分别发送至各参与方。
109.s310、接收可信第三方返回的切分后的第一去标准化子模型。
110.在一可选实施方式中,若可信第三方发送的第三加密密钥是对称加密密钥,则各参与方通过第三加密密钥,对接收可信第三方返回的切分后的各去标准化子模型进行解密,从而得到解密后的去标准化子模型。
111.在又一可选实施方式中,若可信第三方发送的第三加密密钥是非对称加密密钥,则各参与方通过第三加密公钥,对接收可信第三方返回的切分后的各去标准化子模型进行解密,从而得到解密后的去标准化子模型。
112.本可选实施例通过对各参与方的原始样本数据进行标准化处理的方式,实现了对样本数据的不同特性维度的量纲与数理的统一,从而避免了由于不同特征维度的数值水平相差过大导致的训练结果不准确。通过将各参与方的标准化值和用标准化值训练后的子模型发送至可信第三方,通过可信第三方对各参与方的子模型进行去标准化操作,保证了数据的安全性,从而避免数据被泄露的情况发生。
113.本公开实施例提供的一种分布式机器学习模型的训练方法,本实施例以两个参与方为例进行说明。
114.该模型训练的完整过程可分为模型训练阶段与模型恢复阶段。假设参与方有两个:参与方a(样本数据无标签)与参与方b(样本数据有标签)。还有可信第三方c,可运行tee环境。
115.模型训练过程包括:s1、参与方a生成a的同态密钥对;s2、参与方b生成b的同态密钥对;s3、可信第三方c生成a的非同态加密密钥对;s4、可信第三方c生成b的非同态加密密钥对;s5、参与方a发送a的同态公钥给b;s6、参与方b发送b的同态公钥给a;s7、可信第三方c发送a的非同态加密公钥给a;s8、可信第三方c发送b的非同态加密公钥给b;s9、参与方a初始化本地子模型w

a(无常数项),当前损失loss

last设置为0;s10、参与方b初始化本地子模型w

b(有常数项),当前损失loss

last设置为0;s11、通过psi过程确定样本集合的交集,从而从各自的数据库中确定本次训练所
使用的样本数据;s12、参与方a对a的样本数据集进行标准化,获得各个特征维度的标准差和均值;s13、参与方b对b的样本数据集进行标准化,获得各个特征维度和标签的标准差和均值;s14、参与方a使用可信第三方c发来的非同态加密公钥,加密自己数据集里各个特征维度的标准差和均值,然后将其发给可信第三方c;s15、参与方b使用可信第三方c发来的非同态加密公钥,加密自己数据集里各个特征维度和标签的标准差和均值,然后将其发给可信第三方c;s16、可信第三方c将收到的加密的标准化数据传递到tee中,在可信执行环境隔离区解密数据,获得所有特征维度和标签的标准差和均值。为后续逆标准化模型做好准备。
116.s17、参与方a基于a的原始样本数据,基于子模型w

a执行计算,得到参数集合p

a1,即第一训练中间参数,其中含有计算梯度和损失的关键参数。
117.参数集合p

a1中包括的每个参数,是每个样本数据基于模型w

a计算出来的梯度中间参数和损失中间参数。
118.s18、参与方b基于b的原始样本数据,基于子模型w

b执行计算,得到参数集合p

b1,即第二训练中间参数,其中含有计算梯度和损失的关键参数。
119.参数集合p

b1中包括的每个参数,是每个样本数据基于模型w

b计算出来的梯度中间参数和损失中间参数。
120.s19、参与方a根据精度(保留小数点后几位)将参数集合p

a1中的浮点数转为大整数,得到参数集合p

a2;s20、参与方b根据精度(保留小数点后几位)将参数集合p

b1中的浮点数转为大整数,得到参数集合p

b2;s21、参与方a将参数集合p

a2中的整数数值进行编码,从而将负数转为正整数,得到参数集合p

a3;s22、参与方b将参数集合p

b2中的整数数值进行编码,从而将负数转为正整数,得到参数集合p

b3;s23、参与方a将参数集合p

a3中所有正整数用a的同态公钥加密,得到参数集合p

a4

a;s24、参与方b将参数集合p

b3中所有正整数用b的同态公钥加密,得到参数集合p

b4

b,即第二同态加密中间参数;s25、参与方a将参数集合p

a4

a发给参与方b;s26、参与方b将参数集合p

b4

b发给参与方a;s27、参与方a收到参与方b发来的加密参数集合p

b4

b;s28、参与方b收到参与方a发来的加密参数集合p

a4

a;s29、参与方a将参数集合p

a3中所有正整数用参与方b的同态公钥加密,得到参数集合p

a4

b,即第一同态加密中间参数;s30、参与方b将参数集合p

b3中所有正整数用参与方a的同态公钥加密,得到参数集合p

b4

a;s31、参与方a生成随机数r

a1(即第一干扰参数),用参与方b的同态公钥加密后,
得到r

a1

b,即第一加密干扰参数;s32、参与方b生成随机数r

b1,用参与方a的同态公钥加密后,得到r

b1

a;s33、参与方a执行同态运算函数f1,基于p

a4

b、p

b4

b、r

a1

b,得到参数集合g

a1

b,即第一加密梯度参数;同态运算函数f1相当于参与方a的梯度计算函数;s34、参与方b执行同态运算函数f2,基于p

b4

a、p

a4

a和r

b1

a,得到参数集合g

b1

a;同态运算函数f2相当于参与方b的梯度计算函数;s35、参与方a生成随机数r

a2,用参与方b的同态公钥加密后,得到r

a2

b;s36、参与方b生成随机数r

b2,用参与方a的同态公钥加密后,得到r

b2

a;s37、参与方a执行同态运算函数f3,基于p

a4

b、p

b4

b和r

a2

b,得到参数集合l

a1

b,即第一加密损失参数;同态运算函数f3相当于参与方a的损失函数;s38、参与方b执行同态运算函数f4,基于p

b4

a、p

a4

a和r

b2

a,得到参数集合l

b1

a;同态运算函数f4相当于参与方b的损失函数;s39、参与方a将加密参数集合g

a1

b和l

a1

b发送给参与方b;s40、参与方b将加密参数集合g

b1

a和l

b1

a发送给参与方a;s41、参与方a收到参与方b发来的加密参数集合g

b1

a和l

b1

a;s42、参与方b收到参与方a发来的加密参数集合g

a1

b和l

a1

b;s43、参与方a使用a的同态私钥对g

b1

a和l

b1

a解密,获得参数集合g

b2和l

b2,再发送给参与方b;s44、参与方b使用b的同态私钥对g

a1

b和l

a1

b解密,获得参数集合g

a2和l

a2,即,第一关键参数,再发送给参与方a;s45、参与方a收到参与方b发来的参数集合g

a2和l

a2;s46、参与方b收到参与方a发来的参数集合g

b2和l

b2;s47、参与方a遍历参数集合l

a2,减去随机数r

a2,获得参数集合l

a3;s48、参与方b遍历参数集合l

b2,减去随机数r

b2,获得参数集合l

b3;s49、参与方a对参数集合l

a3的数值进行解码获得l

a4,从而获得真实数值(正数变换为正数或负数);s50、参与方b对参数集合l

b3的数值进行解码获得l

b4,从而获得真实数值(正数变换为正数或负数);s51、参与方a对参数集合l

a4中的参数按照精度进行缩放,回到原始精度,整数转浮点数,得到参数集合l

a5;s52、参与方b对参数集合l

b4中的参数按照精度进行缩放,回到原始精度,整数转浮点数,得到参数集合l

b5;s53、参与方a通过参数集合l

a5计算得到当前子模型w

a的损失loss

current;s54、参与方b通过参数集合l

b5计算得到当前子模型w

b的损失loss

current;s55、参与方a计算当前损失和之前损失的差值,也就是:loss

current减去loss

last。判断损失差值是否足够小,以满足收敛条件:如果满足,结束模型训练。如果不满足,则继续后续步骤;s56、参与方b计算当前损失和之前损失的差值,判断损失差值是否足够小,以满足收敛条件:如果满足,结束模型训练。如果不满足,则继续后续步骤;
s57、如果满足,结束模型训练,进入如下步骤:a)模型训练结束,参与方a得到子模型w

a,参与方b得到子模型w

b;b)参与方a将子模型w

a使用可信第三方c发来的公钥进行加密,然后发送给可信第三方c;c)参与方b将子模型w

b使用可信第三方c发来的公钥进行加密,然后发送给可信第三方c;d)可信第三方c将加密后的子模型w

a和w

b传入tee,在可信执行环境隔离区,使用私钥进行解密,再将模型聚合,得到完整模型w;e)可信第三方c在tee中,使用前述步骤各个特征和标签的平均值和标准差,结合完整模型w,进行逆标准化操作,得到真实模型w

real;f)可信第三方c在tee中,将模型w

real切分为w

a

real和w

b

real;g)可信第三方c在tee中,将模型w

a

real使用前述步骤中参与方a传来的非同态公钥进行加密,传递给参与方a;h)可信第三方c在tee中,将模型w

b

real使用前述步骤中参与方b传来的非同态公钥进行加密,传递给参与方b;i) 参与方a使用本地私钥解密模型,获得w

a

real;j) 参与方b使用本地私钥解密模型,获得w

b

real;s58、如果不满足,继续模型训练,执行后续步骤:s59、参与方a遍历参数集合g

a2,减去随机数r

a1,获得参数集合g

a3;s60、参与方b遍历参数集合g

b2,减去随机数r

b1,获得参数集合g

b3;s61、参与方a对参数集合g

a3的数值进行解码获得g

a4,从而获得真实数值(正数变换为正数或负数);s62、参与方b对参数集合g

b3的数值进行解码获得g

b4,从而获得真实数值(正数变换为正数或负数);s63、参与方a对g

a4中的参数按照精度进行缩放,回到原始精度,整数转浮点数,得到参数集合g

a5;s64、参与方b对g

b4中的参数按照精度进行缩放,回到原始精度,整数转浮点数,得到参数集合g

b5;s65、参与方a通过参数集合g

a5计算得到用于更新本地模型梯度grad

a;s66、参与方b通过参数集合g

b5计算得到用于更新本地模型的梯度grad

b;s67、参与方a使用梯度grad

a更新子模型w

a;s68、参与方b使用梯度grad

b更新子模型w

b;s69、参与方a将当前子模型的损失loss

current赋值给loss

last;s70、参与方b将当前子模型的损失loss

current赋值给loss

last;s71、参与方a重复执行步骤17;s72、参与方b重复执行步骤18。
121.在本实施例中,各个参与方能够对子模型的训练过程隐私数据进行有效保护,从而提高模型训练过程的隐私性,以及训练效率。
122.当参与方的数量更多时,例如,还包括参与方d,则本实施例的方法包括:
获取第一同态加密中间参数和第二同态加密中间参数;其中,所述第一同态加密中间参数为采用每个第二参与方b和d各自的第二同态公钥对第一训练中间参数进行加密的数据,所述第一训练中间参数为第一参与方基于第一样本数据对第一子模型进行训练后产生的中间参数,所述第二同态加密中间参数有多个,分别为采用每个第二参与方各自的第二同态公钥对每个第二训练中间参数进行加密的数据,每个所述第二训练中间参数为每个第二参与方基于各自的第二样本数据对第二子模型进行训练后产生的中间参数;所述机器学习模型由至少两个参与方各自本地的子模型组成;即,参与方b训练得到一个第二训练中间参数,参与方d训练得到另一个第二训练中间参数;每个第二训练中间参数同时采用参与方b和d的同态加密公钥进行加密,形成两个第二同态加密中间参数;产生第一干扰参数,并采用每个第二参与方各自的第二同态公钥同时进行加密,形成第一加密干扰参数;基于所述第一同态加密中间参数和第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数;将所述第一加密关键参数传输给每个第二参与方,以供每个所述第二参与方分别采用第二同态私钥对所述第一加密关键参数进行解密;可以顺序传输给每个第二参与方进行解密;获取所述第二参与方解密后的第一关键参数;根据所述第一关键参数和所述第一干扰参数,对所述第一子模型进行迭代更新,直至所述第一子模型训练完成。
123.图4是根据本公开实施例提供的一种分布式机器学习模型的训练装置的示意图,本实施例可适用于多方在隐私保护需求下进行数据交互,完成对机器学习模型训练的情况,该装置配置于电子设备中,可实现本公开任意实施例所述的分布式机器学习模型的训练方法。参考图4,该分布式机器学习模型的训练装置400具体包括如下:中间参数获取模块401,用于获取第一同态加密中间参数和第二同态加密中间参数;干扰参数形成模块402,用于产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数;参数产生模块403,用于基于所述第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,以及第一子模型的同态计算函数进行计算,以产生第一加密关键参数;参数解密模块404,用于将所述第一加密关键参数传输给第二参与方,以供所述第二参与方采用第二同态私钥对所述第一加密关键参数进行解密;第一关键参数获取模块405,用于获取所述第二参与方解密后的第一关键参数;子模型训练模块406,用于根据所述第一关键参数和所述第一干扰参数,对所述第一子模型进行迭代更新,直至所述第一子模型训练完成。
124.本公开实施例通过获取第一同态加密中间参数和第二同态加密中间参数;产生第一干扰参数,并采用第二参与方的第二同态公钥进行加密,形成第一加密干扰参数;基于第一同态加密中间参数、第二同态加密中间参数和第一加密干扰参数,基于第一子模型的同态计算函数进行计算,以产生第一加密关键参数;将第一加密关键参数传输给第二参与方,
以供第二参与方采用第二同态私钥对第一加密关键参数进行解密;获取第二参与方解密后的第一关键参数;根据第一关键参数和第一干扰参数,对第一子模型进行迭代更新,直至第一子模型训练完成。上述方案实现了多方训练模型的隐私数据保护;同时,无需采用可信第三方进行协调,避免了可信第三方对数据恶意泄露的可能性,且避免了大量数据在多方和可信第三方之间进行交互,减少了模型训练过程的数据传输量,从而提高了模型训练的效率。
125.在一种可选实施方式中,所述第一同态加密中间参数为采用第二参与方的第二同态公钥对第一训练中间参数进行加密的数据,所述第一训练中间参数为第一参与方基于第一样本数据对第一子模型进行训练后产生的中间参数,所述第二同态加密中间参数为采用第二参与方的第二同态公钥对第二训练中间参数进行加密的数据,所述第二训练中间参数为第二参与方基于第二样本数据对第二子模型进行训练后产生的中间参数;所述机器学习模型由至少两个参与方各自本地的子模型组成。
126.在一种可选实施方式中,所述参数产生模块包括:参数产生单元,用于基于所述第一同态加密中间参数和第二同态加密中间参数,以及第一子模型的同态计算函数进行计算,并将所述第一加密干扰参数基于线性计算叠加至计算结果中,以产生第一加密关键参数;相应的,所述子模型训练模块包括:子模型训练单元,用于基于所述第一干扰参数对所述第一关键参数进行逆向线性计算,并根据逆向线性计算后的关键参数,对所述第一子模型进行迭代更新,直至所述第一子模型训练完成。
127.在一种可选实施方式中,所述干扰参数为随机数。
128.在一种可选实施方式中,所述第一干扰参数包括第一梯度干扰参数和第一损失干扰参数;相应的,所述参数产生模块包括:梯度参数产生模块,用于基于所述第一同态加密中间参数、第二同态加密中间参数和第一加密梯度干扰参数,以及第一子模型的同态梯度计算函数进行计算,以产生第一加密梯度参数;损失参数产生模块,用于基于所述第一同态加密中间参数、第二同态加密中间参数和第一加密损失干扰参数,以及第一子模型的同态损失计算函数进行计算,以产生第一加密损失参数。
129.在一种可选实施方式中,所述装置还包括:第一同态密钥对产生模块,用于产生第一同态密钥对,所述第一同态密钥对包括第一同态公钥和第一同态私钥;第一同态公钥发送模块,用于将所述第一同态公钥发送给第二参与方;第二同态公钥接收模块,用于接收所述第二参与方发送的所述第二参与方产生的第二同态密钥对中的第二同态公钥。
130.在一种可选实施方式中,所述装置还包括:交集标识确定模块,用于在获取第一同态加密中间参数和第二同态加密中间参数之前,确定所述第一参与方与所述第二参与方的样本数据交集标识,至少一个参与方的样
本数据对应标注有标签。
131.在一种可选实施方式中,所述装置还包括:样本数据处理模块,用于在获取第一同态加密中间参数和第二同态加密中间参数之前,对所述第一参与方的第一原始样本数据进行标准化处理,以获得样本特征维度的第一标准化值和第一样本数据;标准化处理后的第一样本数据用于对模型进行训练;第一标准化值加密模块,用于将所述第一标准化值采用第三加密密钥进行加密,形成第一加密标准化值,并将所述第一加密标准化值提供给可信第三方;相应的,该装置还包括:模型切分模块,用于所述第一子模型训练完成之后,将所述第一子模型采用第三加密密钥进行加密,形成第一加密子模型,并将所述第一加密子模型提供给所述可信第三方,以供所述可信第三方基于各参与方提供的加密子模型进行组合,并基于各参与方提供的加密标准化值进行去标准化处理,再进行切分;子模型接收模块,用于接收所述可信第三方返回的切分后的第一去标准化子模型。
132.在一种可选实施方式中,所述中间参数获取模块包括:第一训练中间参数产生单元,用于基于第一样本数据对第一子模型进行训练后产生第一训练中间参数;第一大整数确定单元,用于根据设定精度将所述第一训练中间参数中的浮点数转为第一大整数;第一正整数确定单元,用于将所述第一大整数中的整数数值进行编码,以转换为第一正整数;第一同态加密中间参数确定单元,用于采用第二参与方的第二同态公钥对第一正整数进行加密,以得到所述第一同态加密中间参数。
133.在一种可选实施方式中,所述子模型训练模块包括:去干扰操作单元,用于基于所述第一干扰参数对所述第一关键参数进行去干扰操作;浮点数转换单元,用于对去干扰后的第一关键参数进行解码,并按照所述设定精度进行缩放,以转换成为浮点数;迭代更新单元,用于采用转换后的浮点数形式的第一关键参数对所述第一子模型进行迭代更新。
134.本公开实施例的技术方案所提供的一种分布式机器学习模型的训练装置可执行本公开任意实施例所提供的分布式机器学习模型的训练方法,具备执行分布式机器学习模型的训练方法相应的功能模块和有益效果。
135.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
136.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
137.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
138.如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
139.设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
140.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如分布式机器学习模型的训练方法。例如,在一些实施例中,分布式机器学习模型的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram 503并由计算单元501执行时,可以执行上文描述的分布式机器学习模型的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式机器学习模型的训练方法。
141.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
142.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
143.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可
读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
144.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
145.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
146.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。
147.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
148.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜