模型参数确定方法、装置和电子设备与流程

文档序号:19418411发布日期:2019-12-14 01:10阅读:129来源:国知局
模型参数确定方法、装置和电子设备与流程

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



背景技术:

大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间由于竞争关系和隐私保护的考虑,并不是完全的互相信任。在一些情况下,企业与企业之间需要进行合作安全建模,以便在充分保护企业数据隐私的前提下,使用各方的数据对数据处理模型进行协作训练。

在对数据处理模型进行协作训练的过程中,可以使用模型参数优化方法对数据处理模型的模型参数进行多次优化调整。由于用于对数据处理模型进行训练的数据是分散在合作建模的各方的,因此如何在保护数据隐私的条件下,协作确定数据处理模型的模型参数,是当前亟需解决的技术问题。



技术实现要素:

本说明书实施例的目的是提供一种模型参数确定方法、装置和电子设备,以在保护数据隐私的前提下,由多方协作确定数据处理模型的模型参数。

为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。

根据本说明书一个或多个实施例的第一方面,提供了一种模型参数确定方法,应用于第一数据方,包括:根据特征数据和第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;根据特征数据和激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额;根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

根据本说明书一个或多个实施例的第二方面,提供了一种模型参数确定方法,应用于第二数据方,包括:根据第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;根据标签和激励函数取值的份额与合作方秘密分享损失函数的梯度,得到损失函数梯度的份额;根据激励函数取值的份额与合作方秘密分享海森矩阵,得到海森矩阵的份额;根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

根据本说明书一个或多个实施例的第三方面,提供了一种模型参数确定装置,应用于第一数据方,包括:第一秘密分享单元,用于根据特征数据和第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;第二秘密分享单元,用于根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;第三秘密分享单元,用于根据特征数据和激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额;第四秘密分享单元,用于根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;第五秘密分享单元,用于在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;第六秘密分享单元,用于根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

根据本说明书一个或多个实施例的第四方面,提供了一种模型参数确定装置,应用于第二数据方,包括:第一秘密分享单元,用于根据第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;第二秘密分享单元,用于根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;第三秘密分享单元,用于根据激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额;第四秘密分享单元,用于根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;第五秘密分享单元,用于在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;第六秘密分享单元,用于根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

根据本说明书一个或多个实施例的第五方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。

根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第二方面所述的方法步骤。

由以上本说明书实施例提供的技术方案可见,本说明书实施例,第一数据方和第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,协作确定数据处理模型的模型参数。另外,通过条件数和预设条件,本实施例的模型参数确定方法可以避免在使用牛顿法确定模型参数的过程中由于出现病态矩阵所导致的不收敛问题。

附图说明

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

图1为本说明书实施例一种模型参数确定系统的示意图;

图2为本说明书实施例一种模型参数确定方法的流程图;

图3为本说明书实施例一种模型参数确定方法的流程图;

图4为本说明书实施例一种模型参数确定方法的流程图;

图5为本说明书实施例一种模型参数确定装置的示意图;

图6为本说明书实施例一种模型参数确定装置的示意图;

图7为本说明书实施例一种电子设备的功能结构图。

具体实施方式

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

模型参数优化方法可以包括梯度下降法、牛顿法等。所述牛顿法可以包括原始牛顿法以及基于原始牛顿法的各种变形方法(诸如阻尼牛顿法、正则化牛顿法等等;正则化牛顿法是指附带了正则化项的牛顿法;正则化可以降低模型的复杂度和不稳定程度,从而降低过拟合的危险)。所述梯度下降法可以包括原始梯度下降法以及基于原始梯度下降法的各种变形方法(诸如批量梯度下降法、正则化梯度下降法等等;正则化梯度下降法是指附带了正则化项的梯度下降法;正则化可以降低模型的复杂度和不稳定程度,从而降低过拟合的危险)。

相较于梯度下降法,牛顿法有着更快的收敛速度。为了减少模型参数优化调整的次数,提高数据处理模型的训练效率,合作建模各方优先使用牛顿法协作确定数据处理模型的模型参数。但一些情况下(例如正负样本比例不均衡),在使用牛顿法确定模型参数的过程中容易出现病态矩阵,导致模型参数不收敛。因此若在使用牛顿法确定模型参数的过程中判断海森矩阵的病态程度,则可以避免在使用牛顿法确定模型参数的过程中由于出现病态矩阵所导致的不收敛问题。另外,若在使用牛顿法确定模型参数的过程中出现了病态矩阵,则还可以使用梯度下降法代替牛顿法继续优化调整模型参数,以对数据处理模型继续进行训练,从而实现自适应地选择牛顿法或梯度下降法来优化调整模型参数。

病态矩阵是一种特殊矩阵,指条件数较大的非奇异矩阵。病态矩阵的逆和以其为系数矩阵的方程组的界对微小扰动十分敏感,对数值求解会带来很大困难。

矩阵的条件数可以用于度量该矩阵的病态程度。矩阵的条件数越大,则表示该矩阵的病态程度越大;矩阵的条件数越小,则表示该矩阵的病态程度越小。矩阵的条件数等于该矩阵的范数与该矩阵的逆的范数的乘积。例如,cond(f)=||f||×||f-1||,cond(f)表示矩阵f的条件数,||||表示取范数运算,f-1表示矩阵f的逆矩阵。

秘密分享(ss,secretsharing)是一种保护数据隐私安全的算法。多个数据方可以在不泄漏自身数据的前提下,使用秘密分享算法进行协作计算,得到秘密信息。每个数据方可以获得该秘密信息的一份份额。单个数据方无法恢复该秘密信息。只有多个数据方一同协作才能恢复该秘密信息。例如数据方p1拥有数据x1,数据方p2拥有数据x2。采用秘密分享算法,数据方p1和数据方p2可以进行协作计算,得到秘密信息y=y1+y2=x1x2。数据方p1在计算后可以获得秘密信息y的份额y1,数据方p2在计算后可以获得秘密信息y的份额y2。

在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在不泄漏自身所拥有的数据的前提下,基于自身拥有的数据,对数据处理模型进行协作训练。所述数据处理模型包括但不限于逻辑回归模型、神经网络模型等。在对数据处理模型进行训练的过程中,可以利用模型参数优化方法对数据处理模型的模型参数进行优化调整。考虑到在合作安全建模的场景中,用于对数据处理模型进行训练的数据分散在合作建模的各数据方。因此在合作安全建模的场景中,所述模型参数优化方法可以采用秘密分享算法来实现。

损失函数(lossfunction)可以用于衡量数据处理模型的预测值与真实值之间不一致的程度。损失函数的值越小,表示数据处理模型的鲁棒性越好。所述损失函数包括但不限于对数损失函数(logarithmiclossfunction)、平方损失函数(squareloss)等。

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

激励函数(activationfunction),又称为激活函数,可以用于构建数据处理模型。激励函数定义了在给定输入下的输出。通过激励函数可以在数据处理模型中加入非线性因素,提高数据处理模型的表达能力。所述激励函数例如可以包括sigmoid函数、tanh函数和relu函数等等。

本说明书提供一种模型参数确定系统的实施例。

请参阅图1。在该实施例中,所述模型参数确定系统可以包括第一数据方、第二数据方和可信任的第三方(ttp,trustedthirdparty)。

所述第三方可以为一个服务器;或者,还可以为包括多个服务器的服务器集群。所述第三方可以用于向所述第一数据方和所述第二数据方提供随机数。具体地,所述第三方可以生成随机正交矩阵,可以将所述随机正交矩阵中的各个随机数拆分为两个份额,可以将其中一个份额作为第一份额,将其中另一个份额作为第二份额。所述第三方可以将所述随机正交矩阵中各个随机数的第一份额形成的矩阵作为所述随机正交矩阵的第一份额,将所述随机正交矩阵中各个随机数的第二份额形成的矩阵作为所述随机正交矩阵的第二份额;可以向所述第一数据方发送所述随机正交矩阵的第一份额,可以向所述第二数据方发送所述随机正交矩阵的第二份额。其中,所述随机正交矩阵的第一份额和所述随机正交矩阵的第二份额的和等于所述随机正交矩阵。另外,一方面所述随机正交矩阵可以为由随机数构成的随机数矩阵;另一方面所述随机正交矩阵还可以为正交矩阵。一个方阵与一个正交矩阵相乘后可以得到一个新的矩阵,该新的矩阵与该方阵具有相同的条件数。这样便于第一数据方和第二数据方在不泄漏自身持有的海森矩阵的份额的条件下,协作计算得到海森矩阵的条件数;进而便于根据条件数来度量海森矩阵的病态程度。具体过程详见后面的实施例。

所述第一数据方和所述第二数据方分别为合作安全建模的双方。所述第一数据方可以为不持有标签的数据方,所述第二数据方可以为持有标签的数据方。例如,所述第一数据方可以持有完整的特征数据,所述第二数据方可以持有特征数据的标签。或者,所述第一数据方可以持有特征数据的一部分数据项,所述第二数据方可以持有特征数据的另一部分数据项和标签。具体地,例如,特征数据可以包括用户的储蓄金额和借贷金额。所述第一数据方可以持有用户的储蓄金额,所述第二数据方可以持有用户的借贷金额和特征数据的标签。所述标签可以用于区分不同类型的特征数据,具体数值例如可以取自0和1。这里的数据方可以为电子设备。所述电子设备可以包括个人计算机、服务器、手持设备、便携式设备、平板型设备、多处理器装置;或者,还可以包括由以上任何多个装置或设备所构成的集群等。另外,特征数据及其对应的标签共同构成了样本数据,样本数据可以用于对数据处理模型进行训练。

在合作安全建模的场景中,所述第一数据方和所述第二数据方可以分别获得第一模型参数的一份份额。这里可以将所述第一数据方获得份额作为第一模型参数的第一份额,可以将所述第二数据方获得份额作为第一模型参数的第二份额。第一模型参数的第一份额和第一模型参数的第二份额的和等于第一模型参数。

所述第一数据方可以接收随机正交矩阵的第一份额。所述第二数据方可以接收随机正交矩阵的第二份额。如此所述第一数据方可以基于第一模型参数的第一份额、特征数据和随机正交矩阵的第一份额,所述第二数据方可以基于第一模型参数的第二份额、标签和随机正交矩阵的第二份额,采用秘密分享的方式,协作确定新的第一模型参数。所述第一数据方和所述第二数据方可以分别获得新的第一模型参数的一份份额。具体过程可以参见后面的模型参数确定方法实施例。

本说明书还提供一种模型参数确定方法的实施例。

请参阅图2。该实施例可以包括以下步骤。

步骤s101:第一数据方根据特征数据和第一模型参数的第一份额,第二数据方根据第一模型参数的第二份额,秘密分享第一乘积。第一数据方获得第一乘积的第一份额,第二数据方获得第一乘积的第二份额。所述第一乘积为特征数据和第一模型参数的乘积。

步骤s103:第一数据方根据第一乘积的第一份额,第二数据方根据第一乘积的第二份额,秘密分享激励函数的取值。第一数据方获得激励函数取值的第一份额,第二数据方获得激励函数取值的第二份额。

步骤s105:第一数据方根据特征数据和激励函数取值的第一份额,第二数据方根据标签和激励函数取值的第二份额,秘密分享损失函数的梯度。第一数据方获得损失函数梯度的第一份额,第二数据方获得损失函数梯度的第二份额。

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

步骤s109:第一数据方根据随机正交矩阵的第一份额和海森矩阵的第一份额,第二数据方根据随机正交矩阵的第二份额和海森矩阵的第二份额,秘密分享第二乘积。第一数据方获得第二乘积的第一份额,第二数据方获得第二乘积的第二份额。所述第二乘积为随机正交矩阵和海森矩阵之间的乘积。

步骤s111:在第二乘积的条件数满足预设条件时,第一数据方根据海森矩阵的第一份额,第二数据方根据海森矩阵的第二份额,秘密分享第一逆矩阵。第一数据方获得第一逆矩阵的第一份额,第二数据方获得第一逆矩阵的第二份额。第一逆矩阵为海森矩阵的逆矩阵。

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

下面介绍在实施例中涉及的一些术语。

(一)、第一乘积、第二乘积、第三乘积、第四乘积和第五乘积。所述第一乘积可以为第一模型参数和特征数据之间的乘积。所述第二乘积可以为随机正交矩阵和海森矩阵之间的乘积。所述第三乘积可以为海森矩阵的逆矩阵和损失函数梯度之间的乘积。所述第四乘积可以为损失函数梯度的第一份额与预设步长的乘积。所述第五乘积可以为损失函数梯度的第二份额与预设步长的乘积。

在一些场景示例中,所述第一乘积可以表示为xw;其中,w表示第一模型参数,具体为第一模型参数构成的向量;x表示特征数据,具体为特征数据构成的矩阵。

所述第二乘积可以表示为hr,其中,h表示海森矩阵,r表示随机正交矩阵。

所述第三乘积可以表示为h-1dw,其中,h-1表示海森矩阵的逆矩阵,dw表示损失函数的梯度,dw为向量。

所述第四乘积可以表示为g<dw>0,所述第五乘积可以表示为g<dw>1。其中,g表示预设步长,<dw>0表示损失函数梯度的第一份额,<dw>1表示损失函数梯度的第二份额,<dw>0+<dw>1=dw。

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

延续前面的场景示例,所述第一逆矩阵可以表示为h-1,所述第二逆矩阵可以表示为(hr)-1

在一些实施例中,在步骤s101中,所述第一数据方可以根据特征数据和第一模型参数的第一份额,所述第二数据方可以根据第一模型参数的第二份额,秘密分享第一乘积。所述第一数据方和所述第二数据方可以分别获得所述第一乘积的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第一乘积的第一份额,可以将所述第二数据方获得的份额作为第一乘积的第二份额。第一乘积的第一份额和第一乘积的第二份额的和等于第一乘积。

延续前面的场景示例,第一模型参数的第一份额可以表示为<w>0,第一模型参数的第二份额可以表示为<w>1,<w>0+<w>1=w。所述第一数据方可以根据x和<w>0,所述第二数据方可以根据<w>1,秘密分享第一乘积xw。所述第一数据方可以获得第一乘积的第一份额<xw>0,所述第二数据方可以获得第一乘积的第二份额<xw>1。<xw>0+<xw>1=xw。

在一些实施例中,在步骤s103中,所述第一数据方可以根据第一乘积的第一份额,所述第二数据方可以根据第一乘积的第二份额,秘密分享多项式的取值。所述第一数据方和所述第二数据方可以分别获得所述多项式取值的一份份额。所述多项式可以用于拟合所述数据处理模型的激励函数。如此可以将所述第一数据方获得的份额作为激励函数取值的第一份额,可以将所述第二数据方获得的份额作为激励函数取值的第二份额。激励函数取值的第一份额和激励函数取值的第二份额的和等于激励函数的取值。

延续前面的场景示例,所述激励函数可以为sigmoid函数。所述激励函数的取值可以表示为a=sigmoid(xw)。所述激励函数取值的第一份额可以表示为<a>0,所述激励函数取值的第二份额可以表示为<a>1。其中,<a>0+<a>1=a。<a>0、<a>1和a分别为向量。

在一些实施例中,在步骤s105中,所述第一数据方可以根据特征数据和激励函数取值的第一份额,所述第二数据方可以根据标签和激励函数取值的第二份额,秘密分享损失函数的梯度。所述第一数据方和所述第二数据方可以分别获得所述损失函数梯度的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为损失函数梯度的第一份额,可以将所述第二数据方获得的份额作为损失函数梯度的第二份额。损失函数梯度的第一份额和损失函数梯度的第二份额的和等于损失函数的梯度。

延续前面的场景示例,所述第一数据方可以根据x和<a>0,所述第二数据方可以根据标签y和<a>1,秘密分享损失函数的梯度dw(具体为向量)。所述第一数据方可以获得损失函数梯度的第一份额<dw>0,所述第二数据方可以获得损失函数梯度的第二份额<dw>1。

下面介绍所述第一数据方和所述第二数据方秘密分享损失函数dw的详细过程。

所述第一数据方可以根据x,所述第二数据方可以根据<a>1,秘密分享xt<a>1。所述第一数据方可以获得<[xt<a>1]>0,所述第二数据方可以获得<[xt<a>1]>1。<[xt<a>1]>0+<[xt<a>1]>1=xt<a>1。

所述第一数据方还可以根据x,所述第二数据方还可以根据标签y(具体为标签构成的向量),秘密分享xty。所述第一数据方可以获得<xty>0,所述第二数据方可以获得<xty>1。<xty>0+<xty>1=xty。

所述第一数据方可以计算xt<a>0;可以计算xt<a>0+<[xt<a>1]>0-<xty>0作为损失函数梯度dw的第一份额<dw>0。所述第二数据方可以计算<[xt<a>1]>1-<xty>1作为损失函数梯度dw的第二份额<dw>1。

在一些实施例中,在步骤s107中,所述第一数据方可以根据特征数据和激励函数取值的第一份额,所述第二数据方可以根据激励函数取值的第二份额,秘密分享海森矩阵。所述第一数据方和所述第二数据方可以分别获得所述海森矩阵的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为所述海森矩阵的第一份额,可以将所述第二数据方获得的份额作为所述海森矩阵的第二份额。海森矩阵的第一份额和海森矩阵的第二份额的和等于海森矩阵。

具体地,所述第一数据方可以根据激励函数取值的第一份额,所述第二数据方可以根据激励函数取值的第二份额,秘密分享对角矩阵。所述第一数据方和所述第二数据方可以分别获得所述对角矩阵的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为所述对角矩阵的第一份额,可以将所述第二数据方获得的份额作为所述对角矩阵的第二份额。对角矩阵的第一份额和对角矩阵的第二份额的和等于对角矩阵。如此所述第一数据方可以根据特征数据和所述对角矩阵的第一份额,所述第二数据方可以根据所述对角矩阵的第二份额,秘密分享海森矩阵。所述第一数据方可以获得所述海森矩阵的第一份额,所述第二数据方可以获得所述海森矩阵的第二份额。

延续前面的场景示例,所述第一数据方可以根据<a>0,所述第二数据方可以根据<a>1,秘密分享对角矩阵rnn。所述第一数据方可以获得对角矩阵的第一份额rnn0,所述第二数据方可以获得对角矩阵的第二份额rnn1。

下面介绍所述第一数据方和所述第二数据方秘密分享对角矩阵rnn的详细过程。

所述第一数据方可以根据<a>0,所述第二数据方可以根据<a>1,秘密分享<a>0·<a>1。所述第一数据方可以获得<[<a>0·<a>1]>0,所述第二数据方可以获得<[<a>0·<a>1]>1。<[<a>0·<a>1]>0+<[<a>0·<a>1]>1=<a>0·<a>1。其中,·表示按位相乘运算。例如,向量m=(m1,m2,m3),向量n=(n1,n2,n3)。那么,m·n=(m1n1,m2n2,m3n3)。

所述第一数据方可以计算<r>0=<a>0-<[<a>0·<a>1]>0-<a>0·<a>0,所述第二数据方可以计算<r>1=<a>1-<[<a>0·<a>1]>0-<a>1·<a>1。

<r>0、<r>1和r分别为向量。因而所述第一数据方可以根据<r>0生成对角矩阵rnn=diag(r)的第一份额rnn0=diag(<r>0),所述第二数据方可以根据<r>1生成对角矩阵rnn=diag(r)的第二份额rnn1=diag(<r>1)。rnn0+rnn1=rnn。其中,对角矩阵rnn的第一份额rnn0和第二份额rnn1均可以为一个对角矩阵。在实际处理过程中,所述第一数据方可以将<r>0中的数据元素作为rnn0主对角线上的数据元素,这样便实现了根据<r>0生成rnn0;可以将<r>1中的数据元素作为rnn1主对角线上的数据元素,这样便实现了根据<r>1生成rnn1。

所述第一数据方可以根据x和rnn0,所述第二数据方可以根据rnn1,秘密分享海森矩阵h。所述第一数据方可以获得海森矩阵的第一份额<h>0,所述第二数据方可以获得海森矩阵的第二份额<h>1。

下面介绍所述第一数据方和所述第二数据方秘密分享海森矩阵h的详细过程。

所述第一数据方可以根据x,所述第二数据方可以根据rnn1,秘密分享xtrnn1。所述第一数据方可以获得<xtrnn1>0,所述第二数据方可以获得<xtrnn1>1。<xtrnn1>0+<xtrnn1>1=xtrnn1。

所述第一数据方还可以根据x,所述第二数据方还可以根据<xtrnn1>1,秘密分享<xtrnn1>1x。所述第一数据方可以获得<[<xtrnn1>1x]>0,所述第二数据方可以获得<[<xtrnn1>1x]>1。<[<xtrnn1>1x]>0+<[<xtrnn1>1x]>1=<xtrnn1>1x。

所述第一数据方可以计算xtrnn0x+<xtrnn1>0x+<[<xtrnn1>1x]>0作为海森矩阵h的第一份额<h>0。所述第二数据方可以将<[<xtrnn1>1x]>1作为海森矩阵h的第二份额<h>0。

在一些实施例中,第三方可以向第一数据方下发随机正交矩阵的第一份额;可以向第二数据方下发随机正交矩阵的第二份额。随机正交矩阵的第一份额和随机正交矩阵的第二份额的和等于随机正交矩阵。所述第一数据方可以接收随机正交矩阵的第一份额,所述第二数据方可以接收随机正交矩阵的第二份额。如此在步骤s109中,所述第一数据方可以根据随机正交矩阵的第一份额和海森矩阵的第一份额,所述第二数据方可以根据随机正交矩阵的第二份额和海森矩阵的第二份额,秘密分享第二乘积。所述第一数据方和所述第二数据方可以分别获得所述第二乘积的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第二乘积的第一份额,可以将所述第二数据方获得的份额作为第二乘积的第二份额。第二乘积的第一份额和第二乘积的第二份额的和等于第二乘积。

延续前面的场景示例,随机正交矩阵的第一份额可以表示为<r>0,随机正交矩阵的第二份额可以表示为<r>1,<r>0+<r>1=r。所述第一数据方可以根据<r>0和<h>0,所述第二数据方可以根据<r>1和<h>1,秘密分享第二乘积hr。所述第一数据方可以获得第二乘积的第一份额<hr>0,所述第二数据方可以获得第二乘积第二份额<hr>1。

下面介绍所述第一数据方和所述第二数据方秘密分享第二乘积hr的详细过程。

所述第一数据方可以根据<h>0,所述第二数据方可以根据<r>1,秘密分享<h>0<r>1。所述第一数据方可以获得<[<h>0<r>1]>0,所述第二数据方可以获得<[<h>0<r>1]>1。<[<h>0<r>1]>0+<[<h>0<r>1]>1=<h>0<r>1。

所述第一数据方还可以根据<r>0,所述第二数据方还可以根据<h>1,秘密分享<h>1<r>0。所述第一数据方可以获得<[<h>1<r>0]>0,所述第二数据方可以获得<[<h>1<r>0]>1。<[<h>1<r>0]>0+<[<h>1<r>0]>1=<h>1<r>0。

所述第一数据方可以计算<h>0<r>0+<[<h>0<r>1]>0+<[<h>1<r>0]>0作为第二乘积的第一份额<hr>0。所述第二数据方可以计算<h>1<r>1+<[<h>0<r>1]>1+<[<h>1<r>0]>1作为第二乘积的第二份额<hr>1。

在一些实施例中,所述预设条件可以包括:条件数小于或等于预设阈值。所述预设阈值可以为经验值,或者,还可以采用其它方式(例如机器学习的方式)获得。

所述第一数据方和所述第二数据方均可以持有所述预设条件。进而,所述第一数据方和所述第二数据方可以分别判断第二乘积的条件数是否满足所述预设条件。在一些实施方式中,可以由第一数据方计算第二乘积的条件数。具体地,所述第二数据方可以向所述第一数据方发送第二乘积的第二份额。所述第一数据方可以接收第二乘积的第二份额;可以将第二乘积的第二份额与自身持有的第二乘积的第一份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第二数据方发送第二乘积的条件数。所述第二数据方可以接收第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件。在另一些实施方式中,还可以由第二数据方计算第二乘积的条件数。具体地,所述第一数据方可以向所述第二数据方发送第二乘积的第一份额。所述第二数据方可以接收第二乘积的第一份额;可以将第二乘积的第一份额与自身持有的第二乘积的第二份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第一数据方发送第二乘积的条件数。所述第一数据方可以接收第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件。

或者,可以仅由第一数据方持有所述预设条件,进而仅由第一数据方判断第二乘积的条件数是否满足所述预设条件。具体地,所述第二数据方可以向所述第一数据方发送第二乘积的第二份额。所述第一数据方可以接收第二乘积的第二份额;可以将第二乘积的第二份额与自身持有的第二乘积的第一份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第二数据方发送判断结果信息。所述第二数据方可以接收判断结果信息。

又或者,可以仅由第二数据方持有所述预设条件,进而仅由第二数据方判断第二乘积的条件数是否满足所述预设条件。具体地,所述第一数据方可以向所述第二数据方发送第二乘积的第一份额。所述第二数据方可以接收第二乘积的第一份额;可以将第二乘积的第一份额与自身持有的第二乘积的第二份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第一数据方发送判断结果信息。所述第一数据方可以接收判断结果信息。

如前面所述,一个方阵与一个正交矩阵相乘后可以得到一个新的矩阵,该新的矩阵与该方阵具有相同的条件数。鉴于海森矩阵为方阵,因而第二乘积的条件数等于海森矩阵的条件数。这样便实现了第一数据方和第二数据方在不泄漏自身持有的海森矩阵的份额的条件下,协作计算得到海森矩阵的条件数。

在一些实施例中,第二乘积的条件数满足所述预设条件,表明第二乘积的病态程度较小,即表明海森矩阵的病态程度较小,因而可以使用牛顿法确定模型参数。如此在步骤s111中,所述第一数据方可以根据海森矩阵的第一份额,所述第二数据方可以根据海森矩阵的第二份额,秘密分享第一逆矩阵。所述第一数据方可以获得第一逆矩阵的第一份额,所述第二数据方可以获得第一逆矩阵的第二份额。

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

所述第一数据方可以将随机正交矩阵的第一份额与第二逆矩阵相乘,得到第一逆矩阵的第一份额。所述第二数据方可以将随机正交矩阵的第二份额与第二逆矩阵相乘,得到第一逆矩阵的第二份额。第一逆矩阵的第一份额和第一逆矩阵的第二份额的和等于第一逆矩阵。

延续前面的场景示例,这里由第二数据方对第二乘积hr进行求逆。具体地,所述第一数据方可以向所述第二数据方发送第二乘积的第一份额<hr>0。所述第二数据方可以接收第二乘积的第一份额<hr>0;可以将第二乘积的第一份额<hr>0与自身的第二乘积的第二份额<hr>1相加,得到第二乘积hr;可以对第二乘积hr进行求逆处理,得到第二逆矩阵(hr)-1;可以向所述第一数据方发送第二逆矩阵(hr)-1。所述第一数据方可以接收第二逆矩阵(hr)-1

所述第一数据方可以将第二逆矩阵(hr)-1与随机正交矩阵的第一份额<r>0相乘,得到第一逆矩阵h-1的第一份额<h-1>0。所述第二数据方可以将第二逆矩阵(hr)-1与随机正交矩阵的第二份额<r>1相乘,得到第一逆矩阵h-1的第一份额<h-1>1。h-1=<h-1>0+<h-1>1=<r>0(hr)-1+<r>1(hr)-1=r×(hr)-1

在一些实施例中,在步骤s113中,所述第一数据方可以根据第一逆矩阵的第一份额和损失函数梯度的第一份额,所述第二数据方可以根据第一逆矩阵的第二份额和损失函数梯度的第二份额,秘密分享第三乘积。所述第一数据方和所述第二数据方可以分别获得所述第三乘积的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第三乘积的第一份额,可以将所述第二数据方获得的份额作为第三乘积的第二份额。第三乘积的第一份额和第三乘积的第二份额的和等于第三乘积。

所述第一数据方可以将第一模型参数的第一份额与第三乘积的第一份额相减,得到新的第一模型参数的第一份额。所述第二数据方可以将第一模型参数的第二份额与第三乘积的第二份额相减,得到新的第一模型参数的第二份额。

延续前面的场景示例,所述第一数据方可以根据<h-1>0和<dw>0,所述第二数据方可以根据<h-1>1和<dw>1,秘密分享第三乘积h-1×dw。所述第一数据方可以获得第三乘积的第一份额<h-1×dw>0,所述第二数据方可以获得第三乘积的第二份额<h-1×dw>1。

下面介绍所述第一数据方和所述第二数据方秘密分享第三乘积h-1×dw的详细过程。

所述第一数据方可以根据<h-1>0,所述第二数据方可以根据<dw>1,秘密分享<h-1>0<dw>1。所述第一数据方可以获得<[<h-1>0<dw>1]>0,所述第二数据方可以获得<[<h-1>0<dw>1]>1。<[<h-1>0<dw>1]>0+<[<h-1>0<dw>1]>1=<h-1>0<dw>1。

所述第一数据方还可以根据<dw>0,所述第二数据方还可以根据<h-1>1,秘密分享<h-1>1<dw>0。所述第一数据方可以获得<[<h-1>1<dw>0]>0,所述第二数据方可以获得<[<h-1>1<dw>0]>1。<[<h-1>1<dw>0]>0+<[<h-1>1<dw>0]>1=<h-1>1<dw>0。

所述第一数据方可以计算<h-1>0<dw>0+<[<h-1>0<dw>1]>0+<[<h-1>1<dw>0]>0作为第三乘积的第一份额<h-1×dw>0。所述第二数据方可以计算<h-1>1<dw>1+<[<h-1>0<dw>1]>1+<[<h-1>1<dw>0]>1作为第三乘积的第二份额<h-1×dw>1。

h-1×dw=<h-1×dw>0+<h-1×dw>1

=<h-1>0<dw>0+<[<h-1>0<dw>1]>0+<[<h-1>1<dw>0]>0+

<h-1>1<dw>1+<[<h-1>0<dw>1]>1+<[<h-1>1<dw>0]>1

=<h-1>0<dw>0+<h-1>0<dw>1+<h-1>1<dw>0+<h-1>1<dw>1

=(<h-1>0+<h-1>1)(<dw>0+<dw>1)

所述第一数据方可以计算<w'>0=<w>0-<h-1×dw>0,所述第二数据方可以计算<w'>1=<w>1-<h-1×dw>1,<w'>0表示新的第一模型参数的第一份额,<w'>1表示新的第一模型参数的第二份额,w'表示新的第一模型参数。

w'=<w'>0+<w'>1=<w>0-<h-1×dw>0+<w>1-<h-1×dw>1=w-h-1×dw。

在一些实施例中,第二乘积的条件数不满足所述预设条件,表明第二乘积的病态程度较大,即表明海森矩阵的病态程度较大,无法使用牛顿法确定模型参数,因而可以使用梯度下降法代替牛顿法确定模型参数。具体地,所述第一数据方可以根据第一模型参数的第一份额、损失函数梯度的第一份额和预设步长,计算新的第一模型参数的第一份额。所述第二数据方可以根据第一模型参数的第二份额、损失函数梯度的第二份额和预设步长,计算新的第一模型参数的第二份额。

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

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

延续前面的场景示例,所述第一数据方可以将损失函数梯度的第一份额<dw>0(具体为向量)与预设步长g相乘(具体为向量的数乘),得到第四乘积g<dw>0;可以将第一模型参数的第一份额<w>0与第四乘积g<dw>0相减,得到新的第一模型参数的第一份额<w'>0=<w>0-g<dw>0。

所述第二数据方可以将损失函数梯度的第二份额<dw>1(具体为向量)与预设步长g相乘(具体为向量的数乘),得到第五乘积g<dw>1;可以将第一模型参数的第二份额<w>1与第五乘积g<dw>1相减,得到新的第一模型参数的第二份额<w'>1=<w>1-g<dw>1。其中,<w'>0+<w'>1=w',w'表示新的第一模型参数。

在一些实施例中,还可以包括对数据处理模型的模型参数进行迭代优化调整的过程。

可以重复执行步骤s101,所述第一数据方可以获得新的第一乘积的第一份额,所述第二数据方可以获得新的第一乘积的第二份额。新的第一乘积为特征数据和新的第一模型参数的乘积。可以重复执行步骤s103,所述第一数据方可以获得新的激励函数取值的第一份额,所述第二数据方可以获得新的激励函数取值的第二份额。可以重复执行步骤s105,所述第一数据方可以获得新的损失函数梯度的第一份额,所述第二数据方可以获得新的损失函数梯度的第二份额。可以重复执行步骤s107,所述第一数据方可以获得新的海森矩阵的第一份额,所述第二数据方可以获得新的海森矩阵的第二份额。可以重复执行步骤s109,所述第一数据方可以获得新的第二乘积的第一份额,所述第二数据方可以获得新的第二乘积的第二份额。新的第二乘积为随机正交矩阵和新的海森矩阵之间的乘积。

在新的第二乘积的条件数满足预设条件时,表明在该轮迭代过程中可以继续使用牛顿法确定模型参数。可以重复执行步骤s111。所述第一数据方可以获得新的第一逆矩阵的第一份额,所述第二数据方可以获得新的第一逆矩阵的第二份额。新的第一逆矩阵为新的海森矩阵的逆矩阵。所述第一数据方可以根据新的第一模型参数的第一份额、新的第一逆矩阵的第一份额和新的损失函数梯度的第一份额,所述第二数据方根据新的第一模型参数的第二份额、新的第一逆矩阵的第二份额和新的损失函数梯度的第二份额,秘密分享第二模型参数。所述第一数据方可以获得第二模型参数的第一份额,所述第二数据方可以获得第二模型参数的第二份额。第二模型参数的第一份额和第二模型参数的第二份额的和等于第二模型参数。

在新的第二乘积的条件数不满足预设条件时,表明在该轮迭代过程中无法继续使用牛顿法确定模型参数,因而可以使用梯度下降法代替牛顿法确定模型参数。所述第一数据方可以根据新的第一模型参数的第一份额、新的损失函数梯度的第一份额和预设步长,计算第二模型参数的第一份额。所述第二数据方可以根据新的第一模型参数的第二份额、新的损失函数梯度的第二份额和预设步长,计算第二模型参数的第二份额。第二模型参数的第一份额和第二模型参数的第二份额的和等于第二模型参数。

本实施例中,第一数据方和第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,协作确定数据处理模型的模型参数。另外,通过条件数和预设条件,本实施例的模型参数确定方法可以避免在使用牛顿法确定模型参数的过程中由于出现病态矩阵所导致的不收敛问题。

基于同样的发明构思,本说明书还提供另一种模型参数确定方法的实施例。该实施例以第一数据方为执行主体,所述第一数据方可以持有特征数据和第一模型参数的份额。请参阅图3。该实施例可以包括以下步骤。

步骤s201:根据特征数据和第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积。

在一些实施例中,所述合作方可以理解为与所述第一数据方进行合作安全建模的数据方,具体可以为前面的第二数据方。

步骤s203:根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额。

在一些实施例中,所述第一数据方可以根据第一乘积的份额与合作方秘密分享多项式的取值,得到多项式取值的份额作为激励函数取值的份额,所述多项式用于拟合所述激励函数。

步骤s205:根据特征数据和激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额。

步骤s207:根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积。

步骤s209:在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵。

在一些实施例中,所述预设条件可以包括:条件数小于或等于预设阈值。第二乘积的条件数可以由第一数据方和/或合作方来计算。第二乘积的条件数等于海森矩阵的条件数。

在一些实施例中,第二乘积的条件数满足所述预设条件,表明第二乘积的病态程度较小,可以使用牛顿法确定模型参数。如此所述第一数据方可以根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额。

步骤s211:根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

在一些实施例中,所述第一数据方可以根据第一逆矩阵的份额和损失函数梯度的份额与合作方秘密分享第三乘积,得到第三乘积的份额。所述第三乘积可以为第一逆矩阵和损失函数梯度之间的乘积。所述第一数据方可以将第一模型参数的份额与第三乘积的份额相减,得到新的第一模型参数的份额。

在一些实施例中,第二乘积的条件数不满足所述预设条件,表明第二乘积的病态程度较大,无法使用牛顿法确定模型参数,因而可以使用梯度下降法代替牛顿法确定模型参数。所述第一数据方可以根据第一模型参数的份额、损失函数梯度的份额和预设步长,计算新的第一模型参数的份额。所述第一数据方具体可以将损失函数梯度的份额与预设步长相乘,得到第四乘积;可以将第一模型参数的份额与第四乘积相减,得到新的第一模型参数的份额。

在一些实施例中,还可以包括对数据处理模型的模型参数进行迭代优化调整的过程。

所述第一数据方可以重复执行步骤s201、步骤s203、步骤s205、步骤s207。

在新的第二乘积的条件数满足预设条件时,表明可以继续使用牛顿法确定模型参数。所述第一数据方可以重复执行步骤s209。所述第一数据方进而可以根据新的第一逆矩阵的份额、新的损失函数梯度的份额和新的第一模型参数的份额与合作方秘密分享第二模型参数,得到第二模型参数的份额。

在新的第二乘积的条件数不满足预设条件时,表明需要使用梯度下降法代替牛顿法确定模型参数。所述第一数据方可以根据新的第一模型参数的份额、新的损失函数梯度的份额和预设步长,计算第二模型参数的份额。

在本实施例中,第一数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,与合作方协作确定数据处理模型的模型参数,得到新的第一模型参数的份额。

基于同样的发明构思,本说明书还提供另一种模型参数确定方法的实施例。该实施例以第二数据方为执行主体,所述第二数据方可以持有标签和第一模型参数的份额。请参阅图4。该实施例可以包括以下步骤。

步骤s301:根据第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积。

在一些实施例中,所述合作方可以理解为与所述第二数据方进行合作安全建模的数据方,具体可以为前面的第一数据方。

步骤s303:根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额。

在一些实施例中,所述第二数据方可以根据第一乘积的份额与合作方秘密分享多项式的取值,得到多项式取值的份额作为激励函数取值的份额,所述多项式用于拟合所述激励函数。

步骤s305:根据标签和激励函数取值的份额与合作方秘密分享损失函数的梯度,得到损失函数梯度的份额;根据激励函数取值的份额与合作方秘密分享海森矩阵,得到海森矩阵的份额。

步骤s307:根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积。

步骤s309:在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵。

在一些实施例中,所述预设条件可以包括:条件数小于或等于预设阈值。第二乘积的条件数可以由第二数据方和/或合作方来计算。第二乘积的条件数等于海森矩阵的条件数。

在一些实施例中,第二乘积的条件数满足所述预设条件,表明第二乘积的病态程度较小,可以使用牛顿法确定模型参数。如此所述第二数据方可以根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额。

步骤s311:根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

在一些实施例中,所述第二数据方可以根据第一逆矩阵的份额和损失函数梯度的份额与合作方秘密分享第三乘积,得到第三乘积的份额。所述第三乘积可以为第一逆矩阵和损失函数梯度之间的乘积。所述第二数据方可以将第一模型参数的份额与第三乘积的份额相减,得到新的第一模型参数的份额。

在一些实施例中,第二乘积的条件数不满足所述预设条件,表明第二乘积的病态程度较大,无法使用牛顿法确定模型参数,因而可以使用梯度下降法代替牛顿法确定模型参数。所述第二数据方可以根据第一模型参数的份额、损失函数梯度的份额和预设步长,计算新的第一模型参数的份额。所述第二数据方具体可以将损失函数梯度的份额与预设步长相乘,得到第四乘积;可以将第一模型参数的份额与第四乘积相减,得到新的第一模型参数的份额。

在一些实施例中,还可以包括对数据处理模型的模型参数进行迭代优化调整的过程。

所述第二数据方可以重复执行步骤s301、步骤s303、步骤s305、步骤s307。

在新的第二乘积的条件数满足预设条件时,表明可以继续使用牛顿法确定模型参数。所述第二数据方可以重复执行步骤s309。所述第二数据方进而可以根据新的第一逆矩阵的份额、新的损失函数梯度的份额和新的第一模型参数的份额与合作方秘密分享第二模型参数,得到第二模型参数的份额。

在新的第二乘积的条件数不满足预设条件时,表明需要使用梯度下降法代替牛顿法确定模型参数。所述第二数据方可以根据新的第一模型参数的份额、新的损失函数梯度的份额和预设步长,计算第二模型参数的份额。

在本实施例中,第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,与合作方协作确定数据处理模型的模型参数,得到新的第一模型参数的份额。

基于同样的发明构思,本说明书还提供一种模型参数确定装置的实施例。请参阅图5。该实施例可以应用于第一数据方,可以包括以下单元。

第一秘密分享单元401,用于根据特征数据和第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;

第二秘密分享单元403,用于根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;

第三秘密分享单元405,用于根据特征数据和激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额;

第四秘密分享单元407,用于根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;

第五秘密分享单元409,用于在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;

第六秘密分享单元411,用于根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

基于同样的发明构思,本说明书还提供一种模型参数确定装置的实施例。请参阅图6。该实施例可以应用于第二数据方,可以包括以下单元。

第一秘密分享单元501,用于根据第一模型参数的份额与合作方秘密分享第一乘积,得到第一乘积的份额,所述第一乘积为特征数据和第一模型参数的乘积;

第二秘密分享单元503,用于根据第一乘积的份额与合作方秘密分享激励函数的取值,得到激励函数取值的份额;

第三秘密分享单元505,用于根据激励函数取值的份额与合作方秘密分享损失函数的梯度和海森矩阵,分别得到损失函数梯度的份额和海森矩阵的份额;

第四秘密分享单元507,用于根据随机正交矩阵的份额和海森矩阵的份额与合作方秘密分享第二乘积,得到第二乘积的份额,所述第二乘积为随机正交矩阵和海森矩阵之间的乘积;

第五秘密分享单元509,用于在第二乘积的条件数满足预设条件时,根据海森矩阵的份额与合作方秘密分享第一逆矩阵,得到第一逆矩阵的份额,所述第一逆矩阵为海森矩阵的逆矩阵;

第六秘密分享单元511,用于根据第一逆矩阵的份额、损失函数梯度的份额和第一模型参数的份额与合作方秘密分享新的第一模型参数,得到新的第一模型参数的份额。

下面介绍本说明书电子设备的一个实施例。图7是该实施例中一种电子设备的硬件结构示意图。如图7所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图7所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图7所示更多或者更少的组件单元;或者,具有与图7所示不同的配置。

所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图3所对应实施例的程序指令或模块;和/或,本说明书图4所对应实施例的程序指令或模块。

所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。

所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

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

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

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1