掌桥专利:专业的专利平台
掌桥专利
首页

模型训练方法、装置和计算设备

文献发布时间:2023-06-19 11:32:36


模型训练方法、装置和计算设备

技术领域

本说明书实施例涉及计算机技术领域,特别涉及一种模型训练方法、装置和计算设备。

背景技术

多方安全计算是一种密码学技术,参与计算的多方可以通过执行一个多方安全计算算法,基于各自持有的输入数据来共同进行安全计算,得到出一个计算结果,而不向其它各方泄露持有的输入数据。

多方安全计算在业务实际中获得了广泛应用。例如,在联合建模的场景中,用于训练数学模型的数据分散存在于不同的数据方。利用多方安全计算技术,多个数据方可以在不泄漏自身所持有数据的前提下,对数学模型进行联合训练,从而实现隐私保护。

在执行多方安全计算的过程中,参与计算的各数据方需要使用到大量的随机数。在相关技术中,通常由可信任的随机数服务器生成大量的随机数,并向参与计算的各方分发生成的随机数。由于随机数服务器需要发送的随机数的数量较多,使得随机数服务器需要传输的数据量较大,从而占用了大量的网络带宽。

发明内容

本说明书实施例提供一种模型训练方法、装置和计算设备,以减少随机数服务器需要传输的数据量,从而减少网络带宽的占用。本说明书实施例的技术方案如下。

本说明书实施例的第一方面,提供了一种模型训练方法,所述方法包括:

第一方根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子;

随机数服务器根据特定随机种子生成第一随机数集和第二随机数集;根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;向第二方发送第三随机数集和第四随机数集;其中,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件;

第二方接收第三随机数集和第四随机数集,以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型。

本说明书实施例的第二方面,提供了一种模型训练方法,应用于第一方,包括:

根据特定随机种子生成第一随机数集和第二随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第三随机数集和第四随机数集由随机数服务器生成并发送给第二方,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

本说明书实施例的第三方面,提供了一种模型训练方法,应用于第二方,包括:

接收随机数服务器发来的第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,第一随机数集和第二随机数集由第一方根据特定随机种子生成,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

本说明书实施例的第四方面,提供了一种模型训练方法,应用于随机数服务器,包括:

根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子;

根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;其中,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件;

向第二方发送第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,位于第一方的第一随机数集和第二随机数集由第一方根据特定随机种子生成。

本说明书实施例的第五方面,提供了一种模型训练装置,设置于第一方,包括:

生成单元,用于根据特定随机种子生成第一随机数集和第二随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第三随机数集和第四随机数集由随机数服务器生成并发送给第二方,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

本说明书实施例的第六方面,提供了一种模型训练装置,设置于第二方,包括:

接收单元,用于接收随机数服务器发来的第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,第一随机数集和第二随机数集由第一方根据特定随机种子生成,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

本说明书实施例的第七方面,提供了一种模型训练装置,设置于随机数服务器,包括:

第一生成单元,用于根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子;

第二生成单元,用于根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;其中,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件;

发送单元,用于向第二方发送第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,位于第一方的第一随机数集和第二随机数集由第一方根据特定随机种子生成。

本说明书实施例的第八方面,提供了一种计算设备,包括:

至少一个处理器;

存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如第二方面、第三方面、或者第四方面所述方法的指令。

本说明书实施例提供的技术方案,在需要联合训练模型的时候,随机数服务器可以仅传输第三随机数集和第四随机数集,以使第一方和第二方之间可以联合训练模型。因此,本说明书实施例可以减少随机数服务器与第一方之间的数据传输量,减少了网络带宽的占用。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例中秘密分享过程的示意图;

图2为本说明书实施例中模型训练方法的流程示意图;

图3为本说明书实施例中采用梯度下降法联合训练模型的示意图;

图4为本说明书实施例中采用牛顿法联合训练模型的示意图;

图5为本说明书实施例中模型训练方法的流程示意图;

图6为本说明书实施例中模型训练方法的流程示意图;

图7为本说明书实施例中模型训练方法的流程示意图;

图8为本说明书实施例中模型训练装置的结构示意图;

图9为本说明书实施例中模型训练装置的结构示意图;

图10为本说明书实施例中模型训练装置的结构示意图;

图11为本说明书实施例中电子设备的结构示意图。

具体实施方式

下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

多方安全计算(Secure Muti-Party Computation,MPC)是一种保护数据隐私安全的算法。多方安全计算能让多个数据方在不泄漏自身数据的前提下进行协作计算。

秘密分享(Secret Sharing,SS)是一种保护数据隐私安全的算法。多个数据方可以在不泄漏自身数据的前提下,使用秘密分享算法进行协作计算,共享秘密信息。各个数据方可以分别获得秘密信息的一个分片。请参阅图1。例如,假设存在数据方P

激励函数(Activation Function),又称为激活函数,可以用于构建数学模型。激励函数定义了在给定输入下的输出。激励函数为非线性函数。通过激励函数可以在数学模型中加入非线性因素,提高数学模型的表达能力。所述激励函数可以包括Sigmoid函数、Tanh函数和ReLU函数等。损失函数(Loss Function)可以用于衡量数学模型的预测值与真实值之间不一致的程度。损失函数的值越小,表示数学模型的鲁棒性越好。所述损失函数包括但不限于对数损失函数(Logarithmic Loss Function)、平方损失函数(Square Loss)等。其中,所述数学模型可以包括逻辑回归模型和神经网络模型等。

随机种子可以为一种用于生成随机数的随机数。在实际应用中,基于所述随机种子,利用随机数生成算法可以生成一个或多个随机数。所述随机数生成算法可以包括平方取中法(Midsquare Method)、线性同余法(Linear Congruential Method)等等。

在相关技术中,训练样本分散位于第一方和第二方。具体地,所述第一方可以持有训练样本的标签数据,所述第二方可以持有训练样本的特征数据。所述第一方可以根据标签数据,所述第二方可以根据特征数据,联合训练数学模型。在联合训练数学模型的过程中,需要使用到随机数。通常地,可以由随机数服务器生成第一随机数集、第二随机数集、第三随机数集和第四随机数集。所述随机数服务器可以向所述第一方发送第一随机数集和第二随机数集;可以向所述第二方发送第三随机数集和第四随机数集。所述第一方可以接收第一随机数集和第二随机数集。所述第二方可以接收第三随机数集和第四随机数集。这样所述第一方可以根据标签数据、第一随机数集、第二随机数集,所述第二方可以根据特征数据、第三随机数集、第四随机数集,联合训练数学模型。但是,由于随机数服务器需要向所述第一方发送第一随机数集和第二随机数集、以及需要向所述第二方发送第三随机数集和第四随机数集,使得随机数服务器需要传输的数据量较大,占用了大量的网络带宽。尤其地,在第一方和/或第二方的的网络质量较差的情况下,有可能会影响到模型训练的效率。

为此,本说明书实施例提供一种系统。利用所述系统可以训练数学模型。

所述系统可以包括第一方、第二方和随机数服务器。所述第一方、所述第二方、所述随机数服务器可以为单个服务器、由多个服务器构成的服务器集群、或者部署在云端的服务器。

所述第一方和所述第二方可以为联合建模的双方。训练样本可以分散位于所述第一方和所述第二方。所述第一方可以持有训练样本的标签数据,所述第二方可以持有训练样本的特征数据。例如,所述第一方可以为征信机构,所述征信机构可以持有训练样本的标签数据,所述标签数据可以为“信用良好”、“信用一般”、或者“信用差”等。所述第二方可以为大数据公司,所述大数据公司可以持有训练样本的特征数据,所述特征数据可以包括借贷金额、缴纳社保的基数、是否已婚等。在实际应用中,训练样本的数量可以为多个。所述第一方可以持有训练样本的标签数据和训练样本的标识,所述第二方可以持有训练样本的特征数据和训练样本的标识。通过训练样本的标识,所述第一方可以选取一个或多个训练样本的特征数据,所述第二方可以选取同样训练样本的标签数据,联合训练数学模型。训练样本的标识用于标识训练数据。例如,训练样本的标识可以为手机号或者身份证号等。当然,根据需要,所述第一方也可持有训练样本的特征数据,所述第二方也可持有训练样本的标签数据。

所述随机数服务器用于向第一方和/或第二方提供联合建模过程中所需的随机数。

请参阅图2,基于所述系统的模型训练方法可以包括以下步骤。

步骤S11:第一方根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子。

步骤S13:随机数服务器根据特定随机种子生成第一随机数集和第二随机数集;根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集。

步骤S15:随机数服务器向第二方发送第三随机数集和第四随机数集。

步骤S17:第二方接收第三随机数集和第四随机数集,以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型。

在一些实施例中,所述第一方和所述随机数服务器可以预先获得所述特定随机种子。所述特定随机种子为第一方与随机数服务器之间协商的随机种子。

所述特定随机种子可以由所述第一方生成。具体地,所述第一方可以生成随机种子作为特定随机数种子;可以向所述随机数服务器发送随机种子。所述随机数服务器可以接收随机种子作为特定随机种子。或者,所述特定随机种子也可以由所述随机数服务器生成。具体地,所述随机数服务器可以生成随机种子作为特定随机数种子;可以向所述第一方发送随机种子。所述第一方可以接收随机种子作为特定随机种子。

在一些实施例中,所述第一随机数集和所述第二随机数集可以分别包括一个或多个随机数。所述第一方可以利用随机数生成算法,根据特定随机种子生成一个或多个随机数作为所述第一随机数集中的随机数、以及生成一个或多个随机数作为所述第二随机数集中的随机数。例如,所述第一方可以利用随机数生成算法,根据特定随机种子先生成N个随机数作为所述第一随机数集中的随机数,再生成N个随机数作为所述第二随机数集中的随机数。

在一些实施例中,基于相同的随机种子,由不同的实施主体执行相同的随机数生成算法,可以获得相同的随机数。因此所述随机数服务器根据特定随机种子也可以生成第一随机数集和第二随机数集。所述随机数服务器根据特定随机种子生成第一随机数集和第二随机数集的过程,与第一方根据特定随机种子生成第一随机数集和第二随机数集的过程,可以参照解释。

在一些实施例中,所述第三随机数集和所述第四随机数集可以分别包括一个或多个随机数。所述第一随机数集、所述第二随机数集、所述第三随机数集和所述第四随机数集中的随机数可以满足预设条件。例如,所述预设条件可以包括:Z

在一些实施例中,所述随机数服务器可以生成第三随机数集;可以基于所述第一随机数集、所述第二随机数集、所述第三随机数集和所述预设条件,计算所述第四随机数集中的随机数。例如,所述随机数服务器可以根据第一随机数集中的随机数V

通过步骤S11-步骤S17,所述第一方可以获得第一随机数集和第二随机数集,所述第二方可以获得第三随机数集和第四随机数集。这样所述第一方可以根据第一随机数集和第二随机数集,所述第二方可以根据第三随机数集和第四随机数集,联合训练模型。

在一些使用场景中,第一方和随机数服务器可以预先获得特定随机种子。在需要联合训练模型的时候,第一方可以根据特定随机种子生成第一随机数集和第二随机数集。随机数服务器可以根据特定随机种子生成第一随机数集和第二随机数集;可以根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;可以向第二方发送第三随机数集和第四随机数集。第二方可以接收第三随机数集和第四随机数集。这样所述第一方可以根据第一随机数集和第二随机数集,所述第二方可以根据第三随机数集和第四随机数集,联合训练模型。使得在需要联合训练模型的时候,随机数服务器与第一方之间可以不必传输数据,减少了随机数服务器与第一方之间的数据传输量,提高了模型训练效率。

请参阅图3。以下介绍本说明书实施例中第一方和第二方联合训练模型的一个场景示例。

在本场景示例中,所述第一方可以持有训练样本的标签数据和模型参数的第一分片,所述第二方可以持有训练样本的特征数据和模型参数的第二分片。所述第一方可以根据标签数据、模型参数的第一分片、第一随机数集和第二随机数集,所述第二方可以根据特征数据、模型参数的第二分片、第三随机数集和第四随机数集,基于秘密分享算法,采用梯度下降法(Gradient Descent)联合训练模型。所述模型可以包括逻辑回归模型和神经网络模型等。

值得说明的是,尽管在本场景示例中,以所述第一方持有训练样本的标签数据、以及所述第二方持有训练样本的特征数据为例,描述了所述第一方和所述第二方联合训练模型的过程。但在实际应用中并不限于此。例如,在实际应用中,所述第一方还可以持有训练样本的特征数据,所述第二方还可以持有训练样本的标签数据。

具体地,所述联合训练模型可以包括多轮迭代过程,每一轮迭代过程可以包括以下步骤。

步骤S21:第一方根据第一随机数集、第二随机数集和模型参数的第一分片,第二方根据第三随机数集、第四随机数集、特征数据和模型参数的第二分片,秘密分享乘积。第一方获得所述乘积的第一分片,第二方获得所述乘积的第二分片。

模型参数的第一分片和模型参数的第二分片的和等于模型参数。例如,所述模型参数可以表示为W。所述第一方可以持有

若本轮迭代过程为首轮迭代过程,则所述模型参数可以为数学模型的初始模型参数。所述初始模型参数可以为经验值或随机值等。在实际应用中,所述随机数服务器或者其它可信任的计算设备可以对数学模型的初始模型参数进行拆分,得到初始模型参数的第一分片和第二分片;可以向所述第一方发送初始模型参数的第一分片;可以向所述第二方发送初始模型参数的第二分片。所述第一方可以接收初始模型参数的第一分片。所述第二方可以接收初始模型参数的第二分片。若本轮迭代过程为非首轮迭代过程,则通过上一轮的迭代过程,所述第一方可以获得模型参数的第一分片,所述第二方可以获得模型参数的第二分片。

所述乘积可以包括特征数据和模型参数之间的乘积。例如,所述特征数据可以表示为X,所述模型参数可以表示为W,所述乘积可以表示为WX=X·W。所述乘积的第一分片和所述乘积的第二分片的和等于所述乘积。例如,所述乘积的第一分片可以表示为

所述第一方和所述第二方秘密分享所述乘积的过程可以如下。

一方面,所述第一方可以根据第一随机数集、模型参数的第一分片,确定在分享乘积时的第一中间结果;可以向所述第二方发送第一中间结果。所述第二方可以接收第一中间结果;可以根据第一中间结果、第三随机数集、第四随机数集,确定所述乘积的第二分片。另一方面,所述第二方可以根据第三随机数集、特征数据,确定在分享乘积时的第二中间结果;可以向所述第一方发送第二中间结果。所述第一方可以接收第二中间结果;可以根据第二中间结果、第二随机数集、模型参数的第一分片,确定所述乘积的第一分片。例如,一方面,所述第一方可以根据第一随机数集中的随机数V

步骤S23:第一方根据第一随机数集、第二随机数集和所述乘积的第一分片,第二方根据第三随机数集、第四随机数集和所述乘积的第二分片,秘密分享激励函数的取值。第一方获得激励函数取值的第一分片,第二方获得激励函数取值的第二分片。

激励函数取值的第一分片和激励函数取值的第二分片的和等于激励函数的取值。

考虑到在求取激励函数的取值时,通常会涉及到非线性运算(例如对数运算、指数运算、三角函数运算等),使得直接采用秘密分享的方式确定激励函数的取值是比较困难的。为此,可以利用多项式拟合激励函数,通过采用秘密分享的方式确定多项式的取值,作为激励函数的取值。具体地,第一方可以根据第一随机数集、第二随机数集和所述乘积的第一分片,第二方可以根据第三随机数集、第四随机数集和所述乘积的第二分片,秘密分享多项式的取值。第一方可以获得多项式取值的第一分片,作为激励函数取值的第一分片。第二方可以获得多项式取值的第二分片,作为激励函数取值的第二分片。

所述第一方和所述第二方秘密分享激励函数取值的过程如下。

一方面,所述第一方可以根据第一随机数集、所述乘积的第一分片,确定在分享多项式取值时的第三中间结果;可以向所述第二方发送第三中间结果。所述第二方可以接收第三中间结果;可以根据第三中间结果、第三随机数集、第四随机数集,确定多项式取值的第二分片作为激励函数取值的第二分片。另一方面,所述第二方可以根据第三随机数集、所述乘积的第二分片,确定在分享多项式取值时的第四中间结果;可以向所述第一方发送第四中间结果。所述第一方可以接收第四中间结果;可以根据第四中间结果、第二随机数集、所述乘积的第一分片,确定多项式取值的第一分片作为激励函数取值的第一分片。

例如,所述激励函数可以为Sigmoid函数,所述多项式可以表示为

a=a

=a

那么,一方面,所述第一方可以根据第一随机数集中的随机数V

<[3a

<[3a

a

步骤S25:第一方根据第一随机数集、第二随机数集、标签数据和激励函数取值的第一分片,第二方根据第三随机数集、第四随机数集、特征数据和激励函数取值的第二分片,秘密分享损失函数的梯度。第一方获得损失函数梯度的第一分片,第二方获得损失函数梯度的第二分片。

损失函数梯度的第一分片和损失函数梯度的第二分片的和等于损失函数的梯度。

所述第一方和所述第二方秘密分享损失函数梯度的过程如下。

一方面,所述第一方可以根据第一随机数集、激励函数取值的第一分片、标签数据,确定在分享损失函数梯度时的第五中间结果;可以向所述第二方发送第五中间结果。所述第二方可以接收第五中间结果;可以根据第五中间结果、第三随机数集、第四随机数集,确定损失函数梯度的第二分片。另一方面,所述第二方可以根据第三随机数集、激励函数取值的第二分片、特征数据,确定在分享损失函数梯度时的第六中间结果;可以向所述第一方发送第六中间结果。所述第一方可以接收第六中间结果;可以根据第六中间结果、第二随机数集、激励函数取值的第一分片、标签数据,确定损失函数梯度的第一分片。

例如,一方面,所述第一方可以根据第一随机数集中的随机数V

<[X

<[X

步骤S27:第一方根据模型参数的第一分片、损失函数梯度的第一分片和预设步长,确定新的模型参数的第一分片。

步骤S29:第二方根据模型参数的第二分片、损失函数梯度的第二分片和预设步长,确定新的模型参数的第二分片。

所述预设步长可以用于控制梯度下降法的迭代速度。所述预设步长可以为任意适当正实数。例如,当预设步长过大时,迭代速度会过快,导致有可能无法获得最优模型参数。当预设步长过小时,导致迭代速度会过慢,导致花费的时间较长。所述预设步长具体可以为经验值;或者,也可以采用机器学习的方式得到。当然,所述预设步长还可以采用其它方式得到。所述第一方和所述第二方均可以持有所述预设步长。

所述第一方可以将损失函数梯度的第一分片和预设步长相乘;可以将模型参数的第一分片与损失函数梯度的第一分片和预设步长之间的乘积相减,得到新的模型参数的第一分片。所述第二方可以将损失函数梯度的第二分片和预设步长相乘;可以将模型参数的第二分片与损失函数梯度的第二分片和预设步长之间的乘积相减,得到新的模型参数的第二分片。新的模型参数的第一分片和新的模型参数的第二分片的和等于新的模型参数。

例如,所述第一方可以计算

请参阅图4,以下介绍本说明书实施例第一方和第二方联合训练模型的另一个场景示例。

在本场景示例中,所述第一方可以持有训练样本的标签数据和模型参数的第一分片,所述第二方可以持有训练样本的特征数据和模型参数的第二分片。所述第一方可以根据标签数据、模型参数的第一分片、第一随机数集和第二随机数集,所述第二方可以根据特征数据、模型参数的第二分片、第三随机数集和第四随机数集,基于秘密分享算法,采用牛顿法联合训练模型。所述模型可以包括逻辑回归模型和神经网络模型等。

值得说明的是,尽管在本场景示例中,以所述第一方持有训练样本的标签数据、以及所述第二方持有训练样本的特征数据为例,描述了所述第一方和所述第二方联合训练模型的过程。但在实际应用中并不限于此。例如,在实际应用中,所述第一方还可以持有训练样本的特征数据,所述第二方还可以持有训练样本的标签数据。

具体地,所述联合训练模型可以包括多轮迭代过程,每一轮迭代过程可以包括以下步骤。

步骤S301:第一方根据第一随机数集、第二随机数集和模型参数的第一分片,第二方根据第三随机数集、第四随机数集和模型参数的第二分片,秘密分享第一乘积,第一方获得所述第一乘积的第一分片,第二方获得所述第一乘积的第二分片。

所述第一乘积可以包括特征数据和模型参数之间的乘积。

步骤S303:第一方根据第一随机数集、第二随机数集和所述第一乘积的第一分片,第二方根据第三随机数集、第四随机数集和所述第一乘积的第二分片,秘密分享激励函数的取值,第一方获得激励函数取值的第一分片,第二方获得激励函数取值的第二分片。

步骤S305:第一方根据第一随机数集、第二随机数集、标签数据和激励函数取值的第一分片,第二方根据第三随机数集、第四随机数集、特征数据和激励函数取值的第二分片,秘密分享损失函数的梯度。第一方获得损失函数梯度的第一分片,第二方获得损失函数梯度的第二分片。

步骤S301可以与步骤S21对照解释。步骤S303可以与步骤S23对照解释。步骤S305可以与步骤S25对照解释。

步骤S307:第一方根据激励函数取值的第一分片,第二方根据特征数据和激励函数取值的第二分片,秘密分享海森矩阵。第一方获得海森矩阵的第一分片,第二方获得海森矩阵的第二分片。

海森矩阵(Hessian Matrix),又称为黑塞矩阵、海瑟矩阵或海塞矩阵等,是损失函数的二阶偏导数构成的方阵,用于表示损失函数的局部曲率。

海森矩阵的第一分片和海森矩阵的第二分片的和等于海森矩阵。

在实际应用中,所述第一方可以根据激励函数取值的第一分片,所述第二方可以根据激励函数取值的第二分片,秘密分享对角矩阵。所述第一方可以获得所述对角矩阵的第一分片,所述第二方可以获得所述对角矩阵的第二分片。对角矩阵的第一分片和对角矩阵的第二分片的和等于对角矩阵。所述第一方可以根据对角矩阵的第一分片,所述第二方可以根据特征数据和对角矩阵的第二分片,秘密分享海森矩阵。所述第一方可以获得所述海森矩阵的第一分片,所述第二方可以获得所述海森矩阵的第二分片。

例如,所述第一方可以根据激励函数取值的第一分片<a>

所述第一方可以根据<a>

<[<a>

进而,所述第一方可以计算<r>

<r>

进而,所述第一方可以根据<r>

所述第一方可以根据RNN

所述第一方可以根据RNN

<X

进而,所述第一方可以根据<X

进而,所述第一方可以将<[<X

步骤S309:第一方根据海森矩阵的第一分片,第二方根据海森矩阵的第二分片,秘密分享第一逆矩阵。第一方获得第一逆矩阵的第一分片,第二方获得第一逆矩阵的第二分片。第一逆矩阵为海森矩阵的逆矩阵。

鉴于海森矩阵为方阵,因而可以对海森矩阵进行求逆处理,可以将海森矩阵的逆矩阵作为所述第一逆矩阵。

所述随机数服务器可以生成随机数矩阵。另外,所述第一方和所述随机数服务器均持有特定随机种子,使得,所述第一方可以根据特定随机种子生成随机数矩阵的第一分片,所述随机数服务器可以根据特定随机种子生成随机数矩阵的第一分片。所述随机数服务器可以使用随机数矩阵中的随机数减去随机数矩阵的第一分片中的随机数,得到随机数矩阵的第二分片;可以向所述第二方发送随机数矩阵的第二分片。所述第二方可以接收随机数矩阵的第二分片。例如,所述随机数矩阵可以表示为R,所述随机数矩阵中的随机数可以表示为R

所述第一方可以根据随机数矩阵的第一分片和海森矩阵的第一分片,所述第二方可以根据随机数矩阵的第二分片和海森矩阵的第二分片,秘密分享第二乘积。所述第一方可以获得第二乘积的第一分片。所述第二方可以获得第二乘积的第二分片。第二乘积的第一分片和第二乘积的第二分片的和等于第二乘积。所述第二乘积可以包括海森矩阵和随机数矩阵的乘积。例如,所述第二乘积可以表示为HR,其中,H表示海森矩阵,R表示随机数矩阵。

在本场景示例的一些实施方式中,可以由第二方对所述第二乘积进行求逆处理。具体地,所述第一方可以向所述第二方发送第二乘积的第一分片。所述第二方可以接收第二乘积的第一分片;可以将第二乘积的第一分片与自身持有的第二乘积的第二分片相加,得到第二乘积。鉴于所述第二乘积为方阵,因而所述第二方可以对所述第二乘积进行求逆处理,得到所述第二乘积的逆矩阵作为第二逆矩阵;可以向所述第一方发送所述第二逆矩阵。所述第一方可以接收所述第二逆矩阵。或者,在本场景示例的另一些实施方式中,还可以由所述第一方对所述第二乘积进行求逆处理。具体地,所述第二方可以向所述第一方发送第二乘积的第二分片。所述第一方可以接收第二乘积的第二分片;可以将第二乘积的第二分片与自身持有的第二乘积的第一分片相加,得到第二乘积。鉴于所述第二乘积为方阵,因而所述第一方可以对所述第二乘积进行求逆处理,得到所述第二乘积的逆矩阵作为第二逆矩阵;可以向所述第二方发送所述第二逆矩阵。所述第二方可以接收所述第二逆矩阵。

所述第一方可以将随机数矩阵的第一分片与所述第二逆矩阵相乘,得到第一逆矩阵的第一分片。所述第二方可以将随机数矩阵的第二分片与所述第二逆矩阵相乘,得到第一逆矩阵的第二分片。第一逆矩阵的第一分片和第一逆矩阵的第二分片的和等于第一逆矩阵。

例如,随机数矩阵的第一分片可以表示为<R>

所述第一方可以根据<H>

<[<H>

另外,所述第一方还可以根据<R>

进而,所述第一方可以计算<H>

这里由所述第二方对第二乘积HR进行求逆处理。具体地,所述第一方可以向所述第二方发送第二乘积的第一分片<HR>

所述第一方可以将第二逆矩阵(HR)

H

步骤S311:第一方根据原始模型参数的第一分片、第一逆矩阵的第一分片和损失函数梯度的第一分片,第二方根据原始模型参数的第二分片、第一逆矩阵的第二分片和损失函数梯度的第二分片,秘密分享新的模型参数。第一方获得新的模型参数的第一分片,第二方获得新的模型参数的第二分片。

所述第一方可以根据第一逆矩阵的第一分片和损失函数梯度的第一分片,所述第二方可以根据第一逆矩阵的第二分片和损失函数梯度的第二分片,秘密分享第三乘积。所述第一方可以获得第三乘积的第一分片。所述第二方可以获得第三乘积的第二分片。第三乘积的第一分片和第三乘积的第二分片的和等于第三乘积。所述第三乘积可以包括第一逆矩阵和损失函数梯度之间的乘积。例如,所述第三乘积可以表示为H

例如,所述第一方可以根据<H

下面介绍所述第一方和所述第二方秘密分享第三乘积H

所述第一方可以根据<H

另外,所述第一方还可以根据<dW>

进而,所述第一方可以计算<H

H

=<H

<H

=<H

=(<H

所述第一方可以计算<W'>

W'=<W'>

本说明书实施例的模型训练方法,在需要联合训练模型的时候,随机数服务器可以仅传输第三随机数集和第四随机数集,以使第一方和第二方之间可以联合训练模型。因此,本说明书实施例可以减少随机数服务器与第一方之间的数据传输量,减少了网络带宽的占用。

基于同样的发明构思,本说明书还提供模型训练方法的另一个实施例。请参阅图5。所述模型训练方法可以应用于第一方,具体可以包括以下步骤。

步骤S41:根据特定随机种子生成第一随机数集和第二随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第三随机数集和第四随机数集由随机数服务器生成并发送给第二方,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

本说明书实施例的模型训练方法,在需要联合训练模型的时候,随机数服务器可以仅传输第三随机数集和第四随机数集,以使第一方和第二方之间可以联合训练模型。因此,本说明书实施例可以减少随机数服务器与第一方之间的数据传输量,减少了网络带宽的占用。

基于同样的发明构思,本说明书还提供模型训练方法的另一个实施例。请参阅图6。所述模型训练方法可以应用于第二方,具体可以包括以下步骤。

步骤S51:接收随机数服务器发来的第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,第一随机数集和第二随机数集由第一方根据特定随机种子生成,所述特定随机种子为第一方与随机数服务器之间协商的随机种子。

本说明书实施例的模型训练方法,在需要联合训练模型的时候,随机数服务器可以仅传输第三随机数集和第四随机数集,以使第一方和第二方之间可以联合训练模型。因此,本说明书实施例可以减少随机数服务器与第一方之间的数据传输量,减少了网络带宽的占用。

基于同样的发明构思,本说明书还提供模型训练方法的另一个实施例。请参阅图7。所述模型训练方法可以应用于随机数服务器,具体可以包括以下步骤。

步骤S61:根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子。

步骤S63:根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;其中,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

步骤S65:向第二方发送第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,位于第一方的第一随机数集和第二随机数集由第一方根据特定随机种子生成。

本说明书实施例的模型训练方法,在需要联合训练模型的时候,随机数服务器可以仅传输第三随机数集和第四随机数集,以使第一方和第二方之间可以联合训练模型。因此,本说明书实施例可以减少随机数服务器与第一方之间的数据传输量,减少了网络带宽的占用。

请参阅图8。本说明书还提供模型训练装置的一个实施例。所述模型训练装置可以应用于第一方,具体可以包括以下单元。

生成单元71,用于根据特定随机种子生成第一随机数集和第二随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,所述特定随机种子为第一方与随机数服务器之间协商的随机种子,第三随机数集和第四随机数集由随机数服务器生成并发送给第二方,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件。

请参阅图9。本说明书还提供模型训练装置的一个实施例。所述模型训练装置可以应用于第二方,具体可以包括以下单元。

接收单元81,用于接收随机数服务器发来的第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,第一随机数集和第二随机数集由第一方根据特定随机种子生成,所述特定随机种子为第一方与随机数服务器之间协商的随机种子。

请参阅图10。本说明书还提供模型训练装置的一个实施例。所述模型训练装置可以应用于随机数服务器,具体可以包括以下单元。

第一生成单元91,用于根据特定随机种子生成第一随机数集和第二随机数集,所述特定随机种子为第一方与随机数服务器之间协商的随机种子;

第二生成单元93,用于根据第一随机数集和第二随机数集生成第三随机数集和第四随机数集;其中,第一随机数集、第二随机数集、第三随机数集和第四随机数集中的随机数满足预设条件;

发送单元95,用于向第二方发送第三随机数集和第四随机数集;以使第一方根据第一随机数集和第二随机数集,第二方根据第三随机数集和第四随机数集,联合训练模型;其中,位于第一方的第一随机数集和第二随机数集由第一方根据特定随机种子生成。

请参阅图11。本说明书实施例还提供一种计算设备。

所述计算设备可以包括存储器和处理器。

在本实施例中,所述存储器包括但不限于动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)和静态随机存取存储器(Static Random Access Memory,SRAM)等。所述存储器可以用于存储计算机指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图5、图6、或者图7所对应的实施例。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于单侧实施的方法实施例、装置实施例、和计算设备实施例而言,由于其基本相似于模型训练方法实施例,所以描述的比较简单,相关之处参见模型训练方法实施例的部分说明即可。

另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

相关技术
  • 预测模型的训练方法、装置、介质和计算设备
  • 模型训练方法、点击率确定方法、介质、装置和计算设备
技术分类

06120112964991