基于安全多方计算的模型训练方法、装置、设备以及介质与流程

1.本技术涉及深度学习技术领域,特别是涉及一种基于安全多方计算的模型训练方法、装置、设备以及介质。
背景技术:
2.近年来,深度学习在各个领域中都有广泛的应用,但深度学习需要大量的数据来训练模型。
3.然而,这些数据通常由不同的实体拥有,由于这些数据可能涉及到隐私和商业机密问题,各个实体考虑到数据安全通常不愿意共享,导致神经网络模型的训练效果也将大打折扣。
4.因此,如何在确保数据安全的条件下提升模型训练过程的训练效率成为了一项重要的挑战。
技术实现要素:
5.本技术至少提供一种基于安全多方计算的模型训练方法、装置、设备以及计算机可读存储介质。
6.本技术第一方面提供了一种基于安全多方计算的模型训练方法,包括:获取当前节点对应的初始模型,所述安全多方计算系统中的各节点对应的初始模型相同;将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型;基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括所述当前节点和所述其它节点;根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新。
7.在一实施例中,所述基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括当前节点和其它节点的步骤,包括:对所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数;根据所述当前节点对应的密钥从所述聚合参数中解密出所述当前节点对应的模型更新参数。
8.在一实施例中,所述对所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数的步骤,包括:基于所述当前节点对应的密钥对所述训练后的模型中的模型参数进行加密处理,得到加密后的模型参数;合并所述各节点对应的加密后的模型参数,得到聚合参数。
9.在一实施例中,所述将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤,包括:根据所述当前节点匹配的样本数据,获取模型训练过程中的梯度更新参数;计算所述各节点的梯度更新参数之
间的参数平均值,将所述参数平均值作为平均梯度更新参数;以所述平均梯度更新参数对所述当前节点对应的初始模型的模型参数进行更新,得到所述训练后的模型以及所述训练后的模型的模型参数。
10.在一实施例中,在将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤之前,所述方法还包括:从预设的样本数据集中选取与所述当前节点对应的样本数据子集;若所述当前节点对应的样本数据子集与所述其它节点对应的样本数据子集之间存在相同样本数据,则对所述当前节点对应的样本数据子集或所述其它节点对应的样本数据子集中的数据进行去重处理;将去重后的样本数据子集中的数据作为与所述当前节点匹配的样本数据或与所述其它节点匹配的样本数据。
11.在一实施例中,所述获取当前节点对应的初始模型的步骤,包括:基于预设的模型构建数据进行模型构建,得到基础模型;根据所述模型构建数据对所述基础模型进行模型初始化,得到初始化后的基础模型;将所述当前节点对应的初始化后的基础模型与所述其它节点对应的初始化后的基础模型进行模型同步,得到所述当前节点对应的初始模型。
12.在一实施例中,所述根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新的步骤之后,所述方法还包括:对所述当前节点对应的更新后的模型进行模型评估;若所述更新后的模型满足预设的评估条件,则暂停模型训练;若所述更新后的模型不满足预设的评估条件,则继续模型训练。
13.本技术第二方面提供了一种基于安全多方计算的模型训练装置,包括:获取模块,用于获取当前节点对应的初始模型,所述安全多方计算系统中的各节点对应的初始模型相同;模型训练模块,用于将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型;计算模块,用于基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括所述当前节点和所述其它节点;更新模块,用于根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新。
14.本技术第三方面提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述基于安全多方计算的模型训练方法。
15.本技术第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述基于安全多方计算的模型训练方法。
16.上述方案,将与当前节点匹配的样本数据输入当前节点对应的初始模型进行模型训练,得到当前节点对应的训练后的模型,由于各节点对应的初始模型相同,因此能够根据当前节点对应的训练后的模型的模型参数和其它节点对应的训练后的模型参数确定用于更新当前节点对应的初始模型的模型更新参数,根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新,由此能够避免将各节点的样本数据和神经网络模型进行公开,实现在确保数据安全的条件下提升模型训练过程的训练效率。
17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本技术。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本技术的实施例,并与说明书一起用于说明本技术的技术方案。
19.图1是本技术的基于安全多方计算的模型训练方法的一示例性实施例的流程示意图;
20.图2是本技术的基于安全多方计算的模型训练方法中如何确定所述当前节点对应的模型更新参数的流程示意图;
21.图3是本技术的基于安全多方计算的模型训练方法中如何将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型的流程示意图;
22.图4是本技术的一示例性实施例示出的基于安全多方计算的模型训练装置的框图;
23.图5是本技术电子设备一实施例的结构示意图;
24.图6是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
25.下面结合说明书附图,对本技术实施例的方案进行详细说明。
26.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
27.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
28.请参阅图1,图1是本技术的基于安全多方计算的模型训练方法的一示例性实施例的流程示意图,该方法可应用于安全多方计算系统中的节点。具体而言,可以包括如下步骤:
29.步骤s110,获取当前节点对应的初始模型,安全多方计算系统中的各节点对应的初始模型相同。
30.安全多方计算系统包括两个或两个以上的节点,其中,安全多方计算系统中的全部或部分节点会作为参与方进行安全多方计算和模型训练,为便于理解和说明,下文所提及的节点通常为作为参与方的节点,作为参与方的节点后续也可称为参与方或参与节点。需要说明的是,本技术提供的基于安全多方计算的模型训练方法可以同步或异步地应用于安全多方计算系统中的任一参与方。
31.初始模型指的可以是刚初始化的模型也可以是经过一定程度训练的预训练模型,在此不做限定,对于每个参与方都有各自对应的初始模型,且各个参与方的初始模型相同以确保每个参与方在模型训练过程中的数据是可以相互参照的,使得训练的模型更为准确,还能加速模型训练的过程。
32.步骤s120,将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型。
33.样本数据指的是用于模型训练的数据,每个参与方都有对应匹配的样本数据,不同参与方拥有的样本数据可能存在相同部分也可能完全不同,但每个参与方在分别进行模型训练时所采用的样本数据是与各自节点对应匹配的,以确保每个节点利用各自的样本数据进行模型训练,而不必将自己的数据共享给其它参与方。
34.训练后的模型可以是完成训练的收敛后的模型,也可以是迭代到一定训练次数的未收敛的模型,在此不做限定。
35.具体地,各参与方会分别获取与各参与方对应匹配的样本数据,即对于当前参与方的节点而言,若当前节点获取到与当前节点匹配的样本数据,当前节点将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型。
36.步骤s130,基于当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定当前节点对应的模型更新参数,安全多方计算系统包括当前节点和其它节点。
37.模型更新参数用于对神经网络模型进行更新,需要说明的是,各节点对应的模型更新参数可能相同也可能不同。
38.安全多方计算系统中的当前节点为当前参与方,其它节点即为其它参与方。
39.具体地,为了进一步优化训练后的模型,提高模型精度,通过利用相同或不同的样本数据在个参与方的节点中分别基于相同初始模型进行训练,并根据各个节点对应的训练后的模型的模型参数确定用于更新各个节点对应的训练后的模型的模型更新参数。
40.步骤s140,根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新。
41.示例性地,利用当前节点对应的模型更新参数对当前节点对应的初始模型的模型参数进行更新以提高模型精度,由此实现在通过多方计算使各节点对同一种初始模型分别进行训练的过程中,不仅提升模型训练效率并且无需将用于训练的样本数据进行公开。
42.可以看出,本技术将与当前节点匹配的样本数据输入当前节点对应的初始模型进行模型训练,得到当前节点对应的训练后的模型,由于各节点对应的初始模型相同,因此能够根据当前节点对应的训练后的模型的模型参数和其它节点对应的训练后的模型参数确定用于更新当前节点对应的初始模型的模型更新参数,根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新,由此能够避免将各节点的样本数据和神经网络模型进行公开,实现在确保数据安全的条件下提升模型训练过程的训练效率。
43.在上述实施例的基础上,本技术实施例采用图2所示的流程图详细阐述如何基于当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定当前节点对应的模型更新参数。具体而言,本实施例方法包括以下步骤:
44.步骤s210,对当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数。
45.聚合处理指的是基于预设的计算协议将当前节点对应的训练后的模型中的模型参数和其它节点对应的训练后的模型中的模型参数进行聚合,即基于各节点对应的训练后
的模型的模型参数共同进行聚合计算,得到聚合参数,其中,聚合处理还可以包括加密聚合处理,即在进行聚合计算之前,各节点将各自对应的训练后的模型的模型参数进行加密,分别得到各节点对应的加密后的模型参数,再根据各节点对应的加密后的模型参数进行聚合计算,得到聚合参数。
46.示例性地,预设的计算协议可以是安全多方计算(secure multi-party computation,mpc)协议,安全多方计算是隐私计算技术中的一种,它可以让一组参与方以他们的隐私数据为输入,共同计算一个函数(相当于本技术中的模型训练过程),并且所有参与方只能得到这个函数的输出,即聚合参数,无法得到其他的任何信息。
47.进一步地,基于安全多方计算协议而言,对数据进行加密的方法包括但不限于使用基于秘密共享技术的安全多方计算算法,具体地,该算法使用秘密共享技术将数据分别加密并分发给各参与方,通过多方计算得到最终结果。
48.可选地,对数据进行加密的方法还可以是基于同态加密的安全多方计算算法,具体地,该算法使用同态加密技术对数据进行加密,实现在密文空间中进行计算,最终输出结果的密文,参与者通过解密获得结果。
49.可选地,对数据进行加密的方法还可以是基于差分隐私的安全多方计算算法,具体地,该算法使用差分隐私技术对数据进行加密,并在计算中添加噪音以保护隐私。
50.步骤s220,根据当前节点对应的密钥从聚合参数中解密出当前节点对应的模型更新参数。
51.密钥是每个节点分别随机生成的,密钥可以是一对公私钥,用于加密和解密安全多方计算过程中的数据内容,例如各节点对应的密钥能用于加密和解密各节点对应的初始模型的模型参数和/或训练后的模型的模型参数,各节点对应的密钥还能用于加密各节点获取到的相匹配的样本数据,需要说明的是,本技术不对各节点生成的密钥数量做限定,各节点持有各自对应的密钥避免了数据泄漏,提升了模型训练过程的安全性与隐私性。
52.可选地,各节点对应的密钥可以在各节点获取到对应的初始模型之前生成。
53.可以看出,本技术通过安全多方计算协议和数据加密的方式使各节点在模型训练过程中的如样本数据和/或模型参数等相关数据加密,并基于加密后的数据进行计算和聚合,得到聚合参数,避免了在模型训练的过程中因数据共享而造成数据泄露的安全问题,确保了模型训练过程的安全性,进而提升了模型的训练效果。
54.在上述实施例的基础上,本实施例基于对当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数的步骤进行解释说明。具体地,包括:
55.基于当前节点对应的密钥对训练后的模型中的模型参数进行加密处理,得到加密后的模型参数;合并各节点对应的加密后的模型参数,得到聚合参数。
56.聚合参数指的是在安全多方计算协议下基于各节点对应的加密后的模型参数共同计算得到的一个新的全局模型的模型参数,可以理解的是,根据加密后的模型参数得到的聚合参数也是加密的。
57.具体地,加密处理的过程可参考上述实施例中所提供的一种或多种加密计算方法,加密过程与聚合处理过程基于安全多方计算协议进行计算;将各节点对应的加密后的模型参数进行聚合,得到聚合参数。
58.可选地,在得到加密后的模型参数的步骤之后,还可以是将各节点对应的加密后的模型参数发送至聚合节点,以使聚合节点将各节点对应的加密后的进行聚合,得到一个全局模型的模型参数,并将该全局模型的模型参数返回至各节点,以使各节点根据全局模型的模型参数分别更新各节点对应的初始模型。其中,聚合节点可以是安全多方计算系统中作为参与方的参与节点,也可以是安全多方计算系统中未作为参与方的节点,在此不做限定,可以根据各节点的实际算力对聚合节点进行确定。
59.由此可见,通过对各节点对应的训练后的模型中的模型参数进行加密,得到各节点对应的加密后的模型参数,再对各节点对应的加密后的模型参数进行聚合,得到由各节点共同训练的聚合参数,避免了模型训练过程中的数据泄露,提高了模型训练的安全性。
60.在上述实施例的基础上,本技术实施例采用图3所示的流程图详细阐述如何将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤。具体而言,本实施例方法包括以下步骤:
61.步骤s310,根据当前节点匹配的样本数据,获取模型训练过程中的梯度更新参数。
62.梯度更新包括梯度下降,可以认为是一种更新模型参数从而寻找损失函数最小值的优化算法,通过不断训练模型而获取到的梯度更新参数对模型参数进行更新,能够使神经网络模型输出的结果更为准确,也是模型训练的目标和意义。
63.具体地,将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中后,则会根据该样本数据对当前节点对应的初始模型进行模型训练,并在模型训练过程中获得一个或多个梯度更新参数。
64.示例性地,在模型训练过程中可以采用反向误差传播,即bp算法,利用预测值与标签值的残差,从输出层到输入层反向地求解出损失函数对各层网络参数的梯度,并计算得出梯度更新参数。
65.步骤s320,计算各节点的梯度更新参数之间的参数平均值,将参数平均值作为平均梯度更新参数。
66.具体地,在各节点分别进行模型训练的过程中,基于安全多方计算协议和各节点对应的梯度更新参数计算其平均值,得到平均梯度更新参数。
67.步骤s330,以平均梯度更新参数对当前节点对应的初始模型的模型参数进行更新,得到训练后的模型以及训练后的模型的模型参数。
68.具体地,各节点根据平均梯度更新参数分别对各节点对应的初始模型的模型参数进行更新,并使用安全多方计算协议共同执行计算,以确保各参与方节点的模型参数相同,其中包括当前节点以平均梯度更新参数对当前节点对应的初始模型的模型参数进行更新,得到训练后的模型以及训练后的模型的模型参数。
69.在上述实施例的基础上,本技术实施例对将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤之前的过程进行说明。具体而言,本实施例方法包括以下步骤:
70.从预设的样本数据集中选取与当前节点对应的样本数据子集;若当前节点对应的样本数据子集与其它节点对应的样本数据子集之间存在相同样本数据,则对当前节点对应的样本数据子集或其它节点对应的样本数据子集中的数据进行去重处理;将去重后的样本数据子集中的数据作为与当前节点匹配的样本数据或与其它节点匹配的样本数据。
71.样本数据集指的是用于模型训练的样本数据的集合,样本数据集中包括一个或多个样本数据子集。
72.样本数据子集指的是从样本数据集中选取数据而得到的子集合,其中,不同参与方在样本数据集中选取的数据可能存在相同的部分,以至于不同的样本数据子集间可能存在相同的样本数据,相当于不同参与方对应的样本数据子集存在数学定义上的交集。
73.需要说明的是,若不同的参与方用于模型训练的数据存在重叠部分,即当前节点对应的样本数据子集与其它节点对应的样本数据子集之间存在相同样本数据的情况,在基于安全多方计算的模型训练过程中,可能导致参与方的数据泄露。例如:若参与方a和参与方b存在相同的样本数据,则参与方a所持有的模型参数和样本数据等信息可能被参与方b所破解,反之亦然。因此,则需要对不同节点间重复的样本数据进行去重处理。
74.进一步说明,去重处理可以是将当前节点对应的样本数据子集中的数据去重也可以是将其它节点对应的样本数据子集中的数据去重,仅需达到各节点对应的样本数据子集中的数据不重复即可。
75.还需说明的是,在从预设的样本数据集中选取与当前节点对应的样本数据子集的过程中,还可以考虑到不同的参与方得到的样本数据子集的大小和分布应该尽量均衡,以避免导致数据处理不均和模型偏差问题;在数据选取过程中,还可以采取一些数据加密、匿名化等措施来确保数据的安全性,例如,可以使用同态加密、差分隐私等技术来加密数据,并使用匿名化技术来隐藏敏感信息;此外,在实际场景中,由于样本数据集通常是动态更新的,因此需要定期对样本数据子集进行更新。
76.可选地,在各节点从预设的样本数据集中选取与当前节点对应的样本数据子集的过程中,可视作各节点在样本数据集中进行数据分割,以获取所需的样本数据子集,其中,数据分割过程包括:随机分割,将样本数据集随机分成多个部分,然后将每个部分分配给不同的参与方,可以确保每个参与方得到的数据集的分布和特征较为相近,从而降低模型的偏差;基于数据特征分割,根据样本数据集中样本数据的特征将其分成多个部分,例如根据数据来源、数据类型、数据标签等进行分割,然后不同的参与方选择对应的部分,即样本数据子集,确保每个参与方得到的样本数据子集具有一定的代表性和特征,从而提高模型的泛化能力;基于参与方的特征进行分割,根据参与方的能力、安全性需求、数据来源等因素将数据分割并由参与方选取对应的部分,例如,具有强大计算资源的参与方从样本数据集中选取需要大规模的样本数据子集,具有安全保障能力的参与方从样本数据集中选取包含敏感数据的样本数据子集等,实现最大程度地利用参与方的优势和特点,提高数据的处理效率和安全性。
77.在上述实施例的基础上,本技术实施例对获取当前节点对应的初始模型的步骤进行说明。具体而言,本实施例方法包括以下步骤:
78.基于预设的模型构建数据进行模型构建,得到基础模型;根据模型构建数据对基础模型进行模型初始化,得到初始化后的基础模型;将当前节点对应的初始化后的基础模型与其它节点对应的初始化后的基础模型进行模型同步,得到当前节点对应的初始模型。
79.模型构建数据包括神经网络结、神经网络层数和宽度、激活函数、构损失函数、以及优化器等。
80.模型初始化包括但不限于随机初始化、固定初始化、预训练初始化、以及自定义初
始化等,需要说明的是,神经网络要优化一个非常复杂的非线性模型,且基本没有全局最优解,则模型初始化在其中起到非常重要的作用,其中,初始点的选取,有时能够决定算法是否收敛,当收敛时,初始点可以决定学习收敛的多快,是否能够收敛到一个代价高或低的点,过大的初始化导致梯度爆炸,过小的初始化导致梯度消失。因此,根据不同的模型构建数据如神经网络结构和激活函数,选取和模型构建数据匹配的初始化方法,避免模型产生梯度消失或爆炸的问题,从而提高模型训练效果。
81.可选地,在得到初始化后的基础模型后,还可以利用模型蒸馏等技术来压缩初始化后的基础模型,减少模型大小和计算量,从而提高计算性能。
82.进一步地,在得到初始化后的基础模型后或得到压缩后的基础模型后,需要将各节点的模型进行模型同步,即相当于上述内容中将当前节点对应的初始化后的基础模型与其它节点对应的初始化后的基础模型进行模型同步,得到当前节点对应的初始模型,以保证各节点持有的初始模型的模型参数相同,进而能够实现各节点共同对该初始模型进行训练,并且相对于各节点持有不同的初始模型的模型参数的情况而言,避免了需要合并各节点的模型参数以生成最终的模型参数,减少了额外的通信和计算,提高了模型训练效率。
83.还需说明的是,模型同步的方法包括但不限于完全同步,在完全同步的情况下,所有参与方都需要等待其他参与方完成计算,然后才能进行下一步计算,可以保证计算的正确性,但会增加同步开销和降低计算效率;异步同步,在异步同步的情况下,每个参与方可以独立进行计算,当有结果时再进行同步,可以减少同步开销和提高计算效率,但可能会出现同步不一致的问题,需要通过一定的协调机制来解决;参数服务器同步,将初始模型的模型参数存储在参数服务器上,各个节点通过网络访问参数服务器,更新和读取初始模型的模型参数,参数服务器方式的优点是同步开销较小,可以加速训练过程。
84.可选地,基于安全多方计算而言,由于涉及到多个参与方的数据传输,因此还可以利用如lz77、lzw、huffman等压缩算法来减少数据传输量,提高计算效率。其中,实现压缩的方式还包括矩阵压缩,在安全多方计算中,矩阵是常见的数据结构,通过使用矩阵压缩技术,可以将矩阵数据压缩成更小的数据包,并在传输时进行解压缩。矩阵压缩技术包括行压缩、列压缩、对角线压缩等多种方法;压缩格式,常见的图像、视频等多媒体数据格式,如jpeg、mpeg等,都采用了特定的压缩格式,可以将原始数据压缩成更小的数据包,并在传输时进行解压缩;数据采样,在某些情况下,通过对数据进行采样,可以减少数据量,例如,在图像处理中,可以对图像进行降采样,减少像素点数量,从而减少数据传输量;数据聚合,在安全多方计算中,可以通过对数据进行聚合,将多个数据合并成一个数据包进行传输,从而减少数据传输量,例如,在数据聚合过程中,可以将多个参与方的数据聚合成一个数据包进行传输。
85.在上述实施例的基础上,本技术实施例对根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新的步骤之后的过程进行说明。具体而言,本实施例方法包括以下步骤:
86.对当前节点对应的更新后的模型进行模型评估;若更新后的模型满足预设的评估条件,则暂停模型训练;若更新后的模型不满足预设的评估条件,则继续模型训练。
87.模型评估方法包括但不限于使用评估指标,选择适当的评估指标对模型进行评估,例如,在分类任务中,可以使用准确率、精确率、召回率和f1值等指标,在回归任务中,可
以使用均方误差(mse)和平均绝对误差(mae)等指标;交叉验证,使用交叉验证来评估模型的性能,通过将数据集分成几个折叠,可以使用每个折叠来训练模型,并使用其余折叠进行验证,这可以帮助减少过拟合,并提高模型的泛化能力;针对误差进行分析,对模型的误差进行分析可以帮助发现模型存在的问题,并为进一步的优化提供指导,可以使用各种可视化工具来分析模型的误差,例如散点图、残差图、混淆矩阵等;使用集成方法,使用集成方法可以帮助提高模型的性能和准确性,例如,可以使用bagging、boosting和随机森林等技术来集成多个模型,从而降低过拟合的风险并提高模型的准确性;对超参数进行优化,超参数是在训练模型之前设置的参数,例如学习率、正则化参数等,通过对超参数进行优化,可以帮助提高模型的性能,可以使用网格搜索、随机搜索和贝叶斯优化等技术来找到最佳的超参数组合。
88.可选地,本技术实施例提供的基于安全多方计算的模型训练方法中,可以是对当前节点对应的更新后的模型进行模型评估,还可以是对安全多方计算系统中各参与方节点聚合后的模型进行模型评估,同理,并根据评估结果和预设的评估条件进行上述的相应操作。
89.在上述实施例的基础上,本技术实施例对基于安全多方计算的模型训练方法进行补充说明。具体而言,本实施例方法还可以包括以下步骤:
90.基于secure boosting方法,可以在各参与方中设置弱分类器,将每个参与方选取的样本数据,即样本数据子集进行加密处理,然后将与参与方对应的加密后的数据输入与参与方对应的弱分类器中以训练弱分类器,通过各参与方对应的弱分类器输出的结果进行汇总并加权,生成最终的预测结果。
91.具体地,对基础模型进行初始化,设初始模型$h_i^{(0)}(x)=0$,权重分布$w_i^{(0)}=1/m$,迭代次数$t=1$;对于各个参与方而言,根据权重分布$w_i^{(t-1)}$从样本数据集中进行有放回的抽样,各参与方会分别得到与各参与方对应的样本数据子集,用于训练各参与方对应的初始模型$h_i^{(t)}$;计算各参与方对应的初始模型$h_i^{(t)}$在样本数据子集上的误差率$\epsilon_i^{(t)}$以及各参与方对应的初始模型的权重系数$\alpha_i^{(t)}$;根据各参与方对应的初始模型的误差率和权重系数对应更新各参与方对应的初始模型的权重分布$w_i^{(t)}$;各参与方$i$将训练后的初始模型$h_i^{(t)}$用加密技术加密后发送给聚合节点,聚合节点对加密的模型进行聚合,得到新的全局模型$h^{(t)}$;聚合节点将全局模型$h^{(t)}$发送给每个参与方,再由各参与方对这个新的全局模型进行解密与评估,计算出误差率$\epsilon^{(t)}$;判断误差率是否满足预设的评估条件,若是则暂停模型训练,返回全局模型$h^{(t)}$;若否则继续进行模型训练,进入下一轮迭代,即$t=t+1$。需要说明的是,可以将迭代次数也作为评估条件的考量,即迭代次数大于或等于预设迭代次数后,也暂停模型训练,返回全局模型$h^{(t)}$。
92.进一步需要说明的是,基于安全多方计算的模型训练方法的执行主体可以是基于安全多方计算的模型训练装置,例如,基于安全多方计算的模型训练方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(user equipment,ue)、电脑、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该基于安全多方计算的模型训练方法可以通过处理器调用存储器中存储的计算机可读
指令的方式来实现。
93.图4是本技术的一示例性实施例示出的基于安全多方计算的模型训练装置的框图。如图4所示,该示例性的基于安全多方计算的模型训练装置400包括:获取模块410、模型训练模块420、计算模块430和更新模块440。具体地:
94.获取模块410,用于获取当前节点对应的初始模型,安全多方计算系统中的各节点对应的初始模型相同;
95.模型训练模块420,用于将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型;
96.计算模块430,用于基于当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定当前节点对应的模型更新参数,安全多方计算系统包括当前节点和其它节点;
97.更新模块440,用于根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新。
98.在该示例性的基于安全多方计算的模型训练装置中,将与当前节点匹配的样本数据输入当前节点对应的初始模型进行模型训练,得到当前节点对应的训练后的模型,由于各节点对应的初始模型相同,因此能够根据当前节点对应的训练后的模型的模型参数和其它节点对应的训练后的模型参数确定用于更新当前节点对应的初始模型的模型更新参数,根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新,由此能够避免将各节点的样本数据和神经网络模型进行公开,实现在确保数据安全的条件下提升模型训练过程的训练效率。
99.其中,各个模块的功能可参见基于安全多方计算的模型训练方法实施例,此处不再赘述。
100.请参阅图5,图5是本技术电子设备一实施例的结构示意图。电子设备500包括存储器510和处理器520,处理器520用于执行存储器510中存储的程序指令,以实现上述任一基于安全多方计算的模型训练方法实施例中的步骤。在一个具体的实施场景中,电子设备500可以包括但不限于:微型计算机、服务器,此外,电子设备500还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
101.具体而言,处理器520用于控制其自身以及存储器510以实现上述任一基于安全多方计算的模型训练方法实施例中的步骤。处理器520还可以称为cpu(central processing unit,中央处理单元)。处理器520可能是一种集成电路芯片,具有信号的处理能力。处理器520还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器520可以由集成电路芯片共同实现。
102.上述方案,将与当前节点匹配的样本数据输入当前节点对应的初始模型进行模型训练,得到当前节点对应的训练后的模型,由于各节点对应的初始模型相同,因此能够根据当前节点对应的训练后的模型的模型参数和其它节点对应的训练后的模型参数确定用于更新当前节点对应的初始模型的模型更新参数,根据当前节点对应的模型更新参数对当前
节点对应的初始模型进行更新,由此能够避免将各节点的样本数据和神经网络模型进行公开,实现在确保数据安全的条件下提升模型训练过程的训练效率。
103.请参阅图6,图6是本技术计算机可读存储介质一实施例的结构示意图。计算机可读存储介质610存储有能够被处理器运行的程序指令611,程序指令611用于实现上述任一基于安全多方计算的模型训练方法实施例中的步骤。
104.上述方案,将与当前节点匹配的样本数据输入当前节点对应的初始模型进行模型训练,得到当前节点对应的训练后的模型,由于各节点对应的初始模型相同,因此能够根据当前节点对应的训练后的模型的模型参数和其它节点对应的训练后的模型参数确定用于更新当前节点对应的初始模型的模型更新参数,根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新,由此能够避免将各节点的样本数据和神经网络模型进行公开,实现在确保数据安全的条件下提升模型训练过程的训练效率。
105.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
106.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
107.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
108.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:
1.一种基于安全多方计算的模型训练方法,其特征在于,所述方法应用于安全多方计算系统中的节点,所述方法包括:获取当前节点对应的初始模型,所述安全多方计算系统中的各节点对应的初始模型相同;将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型;基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括所述当前节点和所述其它节点;根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新。2.根据权利要求1所述的方法,其特征在于,所述基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括当前节点和其它节点的步骤,包括:对所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数;根据所述当前节点对应的密钥从所述聚合参数中解密出所述当前节点对应的模型更新参数。3.根据权利要求2所述的方法,其特征在于,所述对所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数进行聚合处理,得到聚合参数的步骤,包括:基于所述当前节点对应的密钥对所述训练后的模型中的模型参数进行加密处理,得到加密后的模型参数;合并所述各节点对应的加密后的模型参数,得到聚合参数。4.根据权利要求1所述的方法,其特征在于,所述将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤,包括:根据所述当前节点匹配的样本数据,获取模型训练过程中的梯度更新参数;计算所述各节点的梯度更新参数之间的参数平均值,将所述参数平均值作为平均梯度更新参数;以所述平均梯度更新参数对所述当前节点对应的初始模型的模型参数进行更新,得到所述训练后的模型以及所述训练后的模型的模型参数。5.根据权利要求1所述的方法,其特征在于,在将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型的步骤之前,所述方法还包括:从预设的样本数据集中选取与所述当前节点对应的样本数据子集;若所述当前节点对应的样本数据子集与所述其它节点对应的样本数据子集之间存在相同样本数据,则对所述当前节点对应的样本数据子集或所述其它节点对应的样本数据子集中的数据进行去重处理;将去重后的样本数据子集中的数据作为与所述当前节点匹配的样本数据或与所述其
它节点匹配的样本数据。6.根据权利要求1所述的方法,其特征在于,所述获取当前节点对应的初始模型的步骤,包括:基于预设的模型构建数据进行模型构建,得到基础模型;根据所述模型构建数据对所述基础模型进行模型初始化,得到初始化后的基础模型;将所述当前节点对应的初始化后的基础模型与所述其它节点对应的初始化后的基础模型进行模型同步,得到所述当前节点对应的初始模型。7.根据权利要求1所述的方法,其特征在于,所述根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新的步骤之后,所述方法还包括:对所述当前节点对应的更新后的模型进行模型评估;若所述更新后的模型满足预设的评估条件,则暂停模型训练;若所述更新后的模型不满足预设的评估条件,则继续模型训练。8.一种基于安全多方计算的模型训练装置,其特征在于,包括:获取模块,用于获取当前节点对应的初始模型,所述安全多方计算系统中的各节点对应的初始模型相同;模型训练模块,用于将获取到的与所述当前节点匹配的样本数据输入所述当前节点对应的初始模型中进行模型训练,得到训练后的模型;计算模块,用于基于所述当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定所述当前节点对应的模型更新参数,所述安全多方计算系统包括所述当前节点和所述其它节点;更新模块,用于根据所述当前节点对应的模型更新参数对所述当前节点对应的初始模型进行更新。9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至7任一项所述的方法。10.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至7任一项所述的方法。
技术总结
本申请公开了一种基于安全多方计算的模型训练方法、装置、设备以及介质,该基于安全多方计算的模型训练方法包括:获取当前节点对应的初始模型,安全多方计算系统中的各节点对应的初始模型相同;将获取到的与当前节点匹配的样本数据输入当前节点对应的初始模型中进行模型训练,得到训练后的模型;基于当前节点对应的训练后的模型中的模型参数与其它节点对应的训练后的模型中的模型参数,确定当前节点对应的模型更新参数,安全多方计算系统包括当前节点和其它节点;根据当前节点对应的模型更新参数对当前节点对应的初始模型进行更新。上述方案,能够提升模型训练过程的训练效率。能够提升模型训练过程的训练效率。能够提升模型训练过程的训练效率。
技术研发人员:吕少卿 俞鸣园 王克彦 曹亚曦 孙俊伟
受保护的技术使用者:浙江华创视讯科技有限公司
技术研发日:2023.05.31
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/