损失函数取值的确定方法、装置和电子设备
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种损失函数取值的确定方法、装置和电子设备。
背景技术
大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间由于竞争关系和隐私保护的考虑,并不是完全的互相信任。在一些情况下,企业与企业之间需要进行合作安全建模,以便在充分保护企业数据隐私的前提下,利用各方的数据对数据处理模型进行协作训练。
在合作安全建模的场景中,需要计算数据处理模型的损失函数的值;通过损失函数的值可以衡量数据处理模型的训练效果(例如过拟合、欠拟合等),进而决定是否终止训练。由于用于对数据处理模型进行训练的数据是分散在合作建模的各方的,在相关技术中,通常是将合作建模各方的数据汇总在独立的第三方,由该独立的第三方来计算损失函数的值。由于将合作建模各方的数据进行了汇总,这样容易造成企业数据的泄漏。
发明内容
本说明书实施例的目的是提供一种损失函数取值的确定方法、装置和电子设备,以在保护数据隐私的前提下,由建模的各数据方协作计算出损失函数的值。
为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种损失函数取值的确定方法,所述损失函数包括第一项和第二项;所述方法包括:根据第一参数的份额与合作方秘密分享第一数据,得到第一数据的份额;根据第一数据的份额,确定第一项取值的份额;根据第二参数的份额和随机数与合作方秘密分享第二数据,得到第二数据的份额;根据随机数确定第二项的系数,第二项的系数和第二数据用于共同确定第二项的取值;向合作方发送第一项取值的份额、第二数据的份额和第二项的系数,以便合作方确定所述损失函数的取值。
根据本说明书一个或多个实施例的第二方面,提供了一种损失函数取值的确定装置,所述损失函数包括第一项和第二项;所述装置包括:第一秘密分享单元,用于根据第一参数的份额与合作方秘密分享第一数据,得到第一数据的份额;第一确定单元,用于根据第一数据的份额,确定第一项取值的份额;第二秘密分享单元,用于根据第二参数的份额和随机数与合作方秘密分享第二数据,得到第二数据的份额;确定单元,用于根据随机数确定第二项的系数,第二项的系数和第二数据用于共同确定第二项的取值;发送单元,用于向合作方发送第一项取值的份额、第二数据的份额和第二项的系数,以便合作方确定所述损失函数的取值。
根据本说明书一个或多个实施例的第三方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。
根据本说明书一个或多个实施例的第四方面,提供了一种损失函数取值的确定方法,所述损失函数包括第一项和第二项;所述方法包括:根据第一参数的份额和标签值与合作方秘密分享第一数据,得到第一数据的份额;根据第一数据的份额,确定第一项取值的第一份额;根据第二参数的份额与合作方秘密分享第二数据,得到第二数据的第一份额;接收合作方发来的第一项取值的第二份额、第二数据的第二份额和第二项的系数,第二项的系数和第二数据用于共同确定第二项的取值;根据第一项取值的第一份额、第一项取值的第二份额、第二数据的第一份额、第二数据的第二份额和第二项的系数,确定所述损失函数的值。
根据本说明书一个或多个实施例的第五方面,提供了一种损失函数取值的确定装置,所述损失函数包括第一项和第二项;所述装置包括:第一秘密分享单元,用于根据第一参数的份额和标签值与合作方秘密分享第一数据,得到第一数据的份额;第一确定单元,用于根据第一数据的份额,确定第一项取值的第一份额;第二秘密分享单元,用于根据第二参数的份额与合作方秘密分享第二数据,得到第二数据的第一份额;接收单元,用于接收合作方发来的第一项取值的第二份额、第二数据的第二份额和第二项的系数,第二项的系数和第二数据用于共同确定第二项的取值;确定单元,用于根据第一项取值的第一份额、第一项取值的第二份额、第二数据的第一份额、第二数据的第二份额和第二项的系数,确定所述损失函数的值。
根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第四方面所述的方法步骤。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,第一数据方和第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,协作计算出损失函数的值;从而便于根据损失函数的值,来衡量数据处理模型的训练效果,进而决定是否终止训练。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种损失函数取值的确定方法的流程图;
图2为本说明书实施例一种损失函数取值的确定方法的流程图;
图3为本说明书实施例一种损失函数取值的确定方法的流程图;
图4为本说明书实施例一种损失函数取值的确定装置的功能结构图;
图5为本说明书实施例一种损失函数取值的确定装置的功能结构图;
图6为本说明书实施例一种电子设备的功能结构图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
秘密分享(SS,Secret Sharing)是一种保护数据隐私安全的算法。多个数据方可以在不泄漏自身数据的前提下,使用秘密分享算法进行协作计算,得到秘密信息。每个数据方可以获得该秘密信息的一份份额。单个数据方无法恢复该秘密信息。只有多个数据方一同协作才能恢复该秘密信息。例如数据方P1拥有数据x1,数据方P2拥有数据x2。采用秘密分享算法,数据方P1和数据方P2可以进行协作计算,得到秘密信息y=y1+y2=x1x2。数据方P1在计算后可以获得秘密信息y的份额y1,数据方P2在计算后可以获得秘密信息y的份额y2。
损失函数(Loss Function)可以用于衡量数据处理模型的预测值与真实值之间不一致的程度。损失函数的值越小,表示数据处理模型的鲁棒性越好。在对数据处理模型进行训练的过程中,可以通过计算损失函数的值,来衡量数据处理模型的训练效果(例如过拟合、欠拟合等),进而决定是否终止训练。所述数据处理模型包括但不限于逻辑回归模型、线性回归模型、神经网络模型等。不同的数据处理模型可以采用不同的损失函数来衡量。例如,逻辑回归模型可以采用对数损失函数(Logarithmic Loss Function)来衡量,线性回归模型可以采用平方损失函数(Square Loss)来衡量。
在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在不泄漏自身所拥有的数据的前提下,基于自身拥有的数据,对数据处理模型进行协作训练。在一些场景示例中,进行合作安全建模的数据方的数量为两个。其中一个数据方可以拥有完整的样本数据,另一个数据方可以拥有样本数据的标签值;或者,其中一个数据方可以拥有样本数据中的一部分数据项,另一个数据方可以拥有样本数据的另一部分数据项和样本数据的标签值。具体地,例如,样本数据包括用户的储蓄金额和借贷金额。其中一个数据方可以拥有用户的储蓄金额,另一个数据方可以拥有用户的借贷金额和样本数据的标签值。
所述多个数据方需要协作计算损失函数的值,以决定是否终止训练。考虑到用于对数据处理模型进行训练的数据分散在合作建模的各数据方,若采用秘密分享算法,则合作建模的各数据方可以在不泄漏自身所拥有的数据的前提下,基于自身拥有的数据,协作计算出损失函数的值。
本说明书提供一种损失函数取值的确定方法的实施例。
请参阅图1,该实施例可以包括以下步骤。
步骤S101:第一数据方根据第一参数的第一份额,第二数据方根据第一参数的第二份额和标签值,秘密分享第一数据。第一数据方获得第一数据的第一份额,第二数据方获得第一数据的第二份额。
步骤S103:第一数据方根据第一数据的第一份额,确定第一项取值的第一份额。
步骤S105:第二数据方根据第一数据的第二份额,确定第一项取值的第二份额。
步骤S107:第一数据方根据第二参数的第一份额和随机数,第二数据方根据第二参数的第二份额,秘密分享第二数据。第一数据方获得第二数据的第一份额,第二数据方获得第二数据的第二份额。
步骤S109:第一数据方根据随机数确定第二项的系数。
步骤S111:第一数据方向第二数据方发送第一项取值的第一份额、第二数据的第一份额和第二项的系数。
步骤S113:第二数据方接收第一项取值的第一份额、第二数据的第一份额和第二项的系数。
步骤S115:第二数据方根据第一项取值的第一份额、第一项取值的第二份额、第二数据的第一份额、第二数据的第二份额和第二项的系数,确定所述损失函数的值。
下面介绍在实施例中涉及的一些术语。
(一)、第一项和第二项。所述第一项和所述第二项分别为所述损失函数中的函数项。
在一些场景示例中,所述损失函数可以为对数损失函数m表示样本数据的数量;xi表示第i个样本数据;yi表示样本数据xi的标签值;θ表示数据处理模型的模型参数;hθ(xi)表示数据处理模型的激励函数的取值,
ri表示第i个随机数。
那么,所述第一项可以为所述第二项可以为
(二)、第一数据方和第二数据方。所述第一数据方和所述第二数据方分别为合作安全建模的双方。所述第一数据方可以为不拥有标签值的数据方,所述第二数据方可以为拥有标签值的数据方。例如,所述第一数据方可以拥有完整的样本数据,所述第二数据方可以拥有样本数据的标签值。或者,所述第一数据方可以拥有样本数据的一部分数据项,所述第二数据方可以拥有样本数据的另一部分数据项和标签值。所述标签值可以用于区分不同类型的样本数据,具体数值例如可以取自0和1。其中,所述数据方可以为电子设备。所述电子设备可以包括个人计算机、服务器、手持设备、便携式设备、平板型设备、多处理器装置;或者,还可以包括由以上任何多个装置或设备所构成的集群等。
(三)、第一参数和第二参数。所述第一参数和所述第二参数分别为所述第一数据方和所述第二数据方在合作安全建模过程中获得的中间结果。所述第一参数和所述第二参数不同。例如,所述第一参数可以为样本数据与数据处理模型的模型参数之间的乘积,所述第二参数可以为数据处理模型的激励函数的值。
在合作安全建模的过程中,所述第一数据方和所述第二数据方分别获得所述第一参数的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第一参数的第一份额,可以将所述第二数据方获得的份额作为第一参数的第二份额。第一参数的第一份额和第一参数的第二份额的和即为第一参数。此外,所述第一参数的数量可以为多个。如此所述第一数据方可以拥有多个第一参数的第一份额,所述第二数据方可以拥有多个第一参数的第二份额。
延续前面的场景示例,第一参数可以表示为θxi,第一参数的第一份额可以表示为<θxi>0,第一参数的第二份额可以表示为<θxi>1。其中<θxi>0+<θxi>1=θxi。
在合作安全建模的过程中,所述第一数据方和所述第二数据方分别获得所述第二参数的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第二参数的第一份额,可以将所述第二数据方获得的份额作为第二参数的第二份额。第二参数的第一份额和第二参数的第二份额的和即为第二参数。此外,所述第二参数的数量可以为多个。如此所述第一数据方可以拥有多个第二参数的第一份额,所述第二数据方可以拥有多个第二参数的第二份额。
延续前面的场景示例,第二参数可以表示为第二参数的第一份额可以表示为<hθ(xi)>0,第二参数的第二份额可以表示为<hθ(xi)>1。其中<hθ(xi)>0+<hθ(xi)>1=hθ(xi)。
(四)、第一数据和第二数据。所述第一数据和所述第二数据分别由所述第一数据方和所述第二数据方通过秘密分享算法计算得到。所述第一数据用于确定第一项的取值。所述第二数据与所述第二项的系数相结合能够确定出第二项的取值。
延续前面的场景示例,第一数据可以表示为(1-yi)θxi,第二数据可以表示为rihθ(xi),第二项的系数可以表示为
(五)、第三数据和第四数据。所述第三数据和所述第四数据分别由所述第一数据方和所述第二数据方通过秘密分享算法计算得到。根据第三数据的份额能够确定出第一数据的份额。根据第四数据的份额能够确定出第二数据的份额。
延续前面的场景示例,第三数据可以表示为(1-yi)<θxi>0,第四数据可以表示为ri<hθ(xi)>1。
在一些实施例中,在步骤S101中,所述第一数据方可以根据第一参数的第一份额,所述第二数据方可以根据第一参数的第二份额和标签值,秘密分享第一数据。所述第一数据方和所述第二数据方可以分别获得第一数据的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第一数据的第一份额,可以将所述第二数据方获得的份额作为第一数据的第二份额。第一数据的第一份额和第一数据的第二份额的和即为第一数据。
如前面所述,所述第一数据方可以拥有多个第一参数的第一份额,所述第二数据方可以拥有多个第一参数的第二份额。如此所述第一数据方可以根据每个第一参数的第一份额,所述第二数据方可以根据该第一参数的第二份额和与该第一参数相对应的标签值,秘密分享一个第一数据。所述第一数据方可以获得该第一数据的第一份额,所述第二数据方可以获得该第一数据的第二份额。值得说明的是,第一参数与标签值相对应可以理解为:标签值所对应的样本数据与用于计算第一参数的样本数据为同一样本数据。
进一步地,所述第一数据方可以根据每个第一参数的第一份额,所述第二数据方可以根据与该第一参数相对应的标签值,秘密分享一个第三数据。所述第一数据方和所述第二数据方可以分别获得该第三数据的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为该第三数据的第一份额,可以将所述第二数据方获得的份额作为该第三数据的第二份额。该第三数据的第一份额和该第三数据的第二份额的和即为该第三数据。如此所述第一数据方可以直接将该第三数据的第一份额作为第一数据的第一份额。所述第二数据方可以将该第一参数的第二份额与与该第一参数相对应的标签值按照预设运算规则进行运算;可以将运算结果与该第三数据的第二份额相加,可以将相加结果作为第一数据的第二份额。
延续前面的场景示例,所述第一数据方可以根据<θxi>0,所述第二数据方可以根据1-yi,秘密分享第三数据(1-yi)<θxi>0。所述第一数据方可以获得第三数据的第一份额<[(1-yi)<θxi>0]>0。所述第二数据方可以获得第三数据的第二份额<[(1-yi)<θxi>0]>1。其中,<[(1-yi)<θxi>0]>0+<[(1-yi)<θxi>0]>1=(1-yi)<θxi>0。
所述第一数据方可以直接将第三数据的第一份额<[(1-yi)<θxi>0]>0作为第一数据(1-yi)θxi的第一份额<(1-yi)θxi>0。所述第二数据方可以根据<θxi>1和yi计算得到(1-yi)<θxi>1;可以将计算结果(1-yi)<θxi>1与第三数据的第二份额<[(1-yi)<θxi>0]>1相加;可以将相加结果作为第一数据(1-yi)θxi的第二份额<(1-yi)θxi>1。其中,
<(1-yi)θxi>0+<(1-yi)θxi>1
=<[(1-yi)<θxi>0]>0+<[(1-yi)<θxi>0]>1+(1-yi)<θxi>1。
=(1-yi)θxi
在一些实施例中,经过步骤S101,所述第一数据方可以获得多个第一数据的第一份额。如此在步骤S103中,所述第一数据方可以对多个第一数据的第一份额进行累加;可以根据累加结果确定第一项取值的第一份额。具体地,所述第一数据方可以将累加结果与第一数据的数量(也即第一参数的数量)相除,得到第一项取值的第一份额。
延续前面的场景示例,所述第一数据方可以计算作为第一项取值的第一份额。
在一些实施例中,经过步骤S101,所述第二数据方可以获得多个第一数据的第二份额。如此在步骤S105中,所述第二数据方可以对多个第一数据的第二份额进行累加;可以根据累加结果确定第一项取值的第二份额。具体地,所述第一数据方可以将累加结果与第一数据的数量(也即第一参数的数量)相除,得到第一项取值的第二份额。第一项取值的第一份额和第一项取值的第二份额的和即为第一项的取值。
延续前面的场景示例,所述第二数据方可以计算作为第一项取值的第二份额。其中,
在一些实施例中,在步骤S107中,所述第一数据方可以根据第二参数的第一份额和随机数,所述第二数据方可以根据第二参数的第二份额,秘密分享第二数据。所述第一数据方和所述第二数据方可以分别获得第二数据的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为第二数据的第一份额,可以将所述第二数据方获得的份额作为第二数据的第二份额。第二数据的第一份额和第二数据的第二份额的和即为第二数据。
如前面所述,第二参数的数量可以为多个。所述第一数据方可以生成多个随机数,每个随机数可以对应一个第二参数(或第二参数的第一份额)。随机数可以用于掩盖第二参数,以进行隐私保护,从而防止第二数据方获得具体的第二参数。这样在后续的步骤S115中,即使第二数据方获得了来自第一数据方的第二数据的第一份额,进而将第二数据的第一份额与自身拥有的第二数据的第二份额相加,获得的也是第二参数与随机数的乘积,而无法获得具体的第二参数。相关场景示例可以参见后续的步骤S115。如此所述第一数据方可以根据每个第二参数的第一份额和与该第二参数相对应的随机数,所述第二数据方可以根据该第二参数的第二份额,秘密分享一个第二数据。所述第一数据方可以获得该第二数据的第一份额,所述第二数据方可以获得该第二数据的第二份额。
进一步地,所述第一数据方可以根据每个随机数,所述第二数据方可以根据与该随机数相对应的第二参数的第二份额,秘密分享一个第四数据。所述第一数据方和所述第二数据方可以分别获得该第四数据的一份份额。为了便于描述,可以将所述第一数据方获得的份额作为该第四数据的第一份额,可以将所述第二数据方获得的份额作为该第四数据的第二份额。该第四数据的第一份额和该第四数据的第二份额的和即为该第四数据。如此所述第一数据方可以将该第二参数的第一份额与该随机数相乘;可以将乘积结果与该第四数据的第一份额相加;可以将相加结果作为第二数据的第一份额。所述第二数据方可以直接将该第四数据的第二份额作为第二数据的第二份额。
延续前面的场景示例,所述第一数据方可以根据ri,所述第二数据方可以根据<hθ(xi)>1,秘密分享第四数据ri<hθ(xi)>1。所述第一数据方可以获得第四数据的第一份额<[ri<hθ(xi)>1]>0,所述第二数据方可以获得第四数据的第二份额<[ri<hθ(xi)>1]>1。其中,<[ri<hθ(xi)>1]>0+<[ri<hθ(xi)>1]>1=ri<hθ(xi)>1。
所述第一数据方可以将<hθ(xi)>0与ri相乘;可以将乘积结果ri<hθ(xi)>0与第四数据的第一份额<[ri<hθ(xi)>1]>0相加;可以将相加结果作为第一数据rihθ(xi)的第一份额<rihθ(xi)>0。所述第二数据方可以直接将第四数据的第二份额<[ri<hθ(xi)>1]>1作为第一数据rihθ(xi)的第二份额<rihθ(xi)>1。其中,
<rihθ(xi)>0+<rihθ(xi)>1
=ri<hθ(xi)>0+<[ri<hθ(xi)>1]>0+<[ri<hθ(xi)>1]>1。
=rihθ(xi)
在一些实施例中,在步骤S109中,所述第一数据方可以将多个随机数进行累乘,得到第二项的系数。延续前面的场景示例,所述第一数据方可以计算作为第二项的系数。
在一些实施例中,在步骤S111中,所述第一数据方可以向所述第二数据方发送第一项取值的第一份额、多个第二数据的第一份额和第二项的系数。在步骤S113中,所述第二数据方可以接收第一项取值的第一份额、多个第二数据的第一份额和第二项的系数。
在一些实施例中,在步骤S115中,所述第二数据方可以将第一项取值的第一份额和第一项取值的第二份额相加,得到第一项的取值;可以将第二数据的第一份额和第二数据的第二份额相加,得到第二数据;可以根据第二数据和第二项的系数,确定第二项的取值。所述第二数据方可以将第一项的取值和第二项的取值相加,得到所述损失函数的值。其中,所述第二数据方可以将每个第二数据的第一份额和该第二数据的第二份额相加,得到第二数据;可以将多个第二数据进行累乘;可以根据累乘结果与第二项的系数,确定第二项的取值。
延续前面的场景示例,所述第二数据方可以将第一项取值的第一份额和第一项取值的第二份额相加,得到第一项的取值
所述第二数据方可以将第二数据的第一份额<rihθ(xi)>0和第二数据的第二份额相加,得到第二数据rihθ(xi);可以计算得到第二项的取值。值得说明的是,由于使用了随机数,所述第二数据方即使将第二数据的第一份额和第二数据的第二份额相加,获得的也是第二参数hθ(xi)与随机数ri的乘积rihθ(xi),而无法获得具体的第二参数hθ(xi),从而实现了对第二参数hθ(xi)的掩盖。
所述第二数据方可以将第一项的取值和第二项的取值相加,得到对数损失函数的取值。
在本实施例中,第一数据方和第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,协作计算出损失函数的值;从而便于根据损失函数的值,来衡量数据处理模型的训练效果,进而决定是否终止训练。例如,第二数据方可以将损失函数的值发送给可信任的第三方(TTP,Trusted Third Party),由可信任的第三方来决定是否终止训练。
基于同样的发明构思,本说明书还提供另一种损失函数取值的确定方法的实施例。所述损失函数可以包括第一项和第二项。所述第一项和所述第二项分别为所述损失函数中不同的函数项。该实施例以第一数据方为执行主体。所述第一数据方可以为不拥有标签值的数据方。具体地,例如,所述第一数据方可以拥有完整的样本数据;或者,可以拥有样本数据的一部分数据项。请参阅图2,该实施例可以包括以下步骤。
步骤S21:根据第一参数的份额与合作方秘密分享第一数据,得到第一数据份额。
所述合作方可以理解为与所述第一数据方进行合作安全建模的数据方,具体可以为前面的第二数据方。所述第一数据方可以根据第一参数的份额与合作方秘密分享第一数据,得到相应的份额。具体过程可以参见前面步骤S101中的相关描述,在此不再赘述。
步骤S23:根据第一数据的份额,确定第一项取值的份额。
所述第一数据方可以对第一数据的份额进行累加;可以根据累加结果确定第一项取值的份额。具体过程可以参见前面步骤S103中的相关描述,在此不再赘述。
步骤S25:根据第二参数的份额和随机数与合作方秘密分享第二数据,得到第二数据的份额。
第二数据与后续第二项的系数相结合能够确定出第二项的取值。所述第一数据方可以生成与第二参数的份额相对应的随机数;可以将第二参数的份额与随机数相乘;可以根据随机数与合作方秘密分享第三数据,得到相应的份额;可以将乘积结果与第三数据的份额相加,得到第二数据的份额。具体过程可以参见前面步骤S107中的相关描述,在此不再赘述。
步骤S27:根据随机数确定第二项的系数。
所述第一数据方可以对随机数进行累乘,得到第二项的系数。具体过程可以参见前面步骤S109中的相关描述,在此不再赘述。
步骤S29:向合作方发送第一项取值的份额、第二数据的份额和第二项的系数,以便合作方确定所述损失函数的取值。
在本实施例中,第一数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,与合作方协作计算出第一项取值的份额、第二数据的份额和第二项的系数;可以向合作方发送第一项取值的份额、第二数据的份额和第二项的系数,以便由合作方确定出所述损失函数的取值。
基于同样的发明构思,本说明书还提供另一种损失函数取值的确定方法的实施例。所述损失函数可以包括第一项和第二项。所述第一项和所述第二项分别为所述损失函数中不同的函数项。该实施例以第二数据方为执行主体。所述第二数据方可以为拥有标签值的数据方。具体地,例如,所述第二数据方可以仅拥有标签值;或者,还可以拥有样本数据的一部分数据项。请参阅图3,该实施例可以包括以下步骤。
步骤S31:根据第一参数的份额和标签值与合作方秘密分享第一数据,得到第一数据的份额。
所述合作方可以理解为与所述第二数据方进行合作安全建模的数据方,具体可以为前面的第一数据方。所述第二数据方可以将第一参数的份额与标签值按照预设运算规则进行运算;可以根据标签值与合作方秘密分享第三数据,得到相应的份额;可以将运算结果与第三数据的份额相加,得到第一数据的份额。具体过程可以参见前面步骤S101中的相关描述,在此不再赘述。
步骤S33:根据第一数据的份额,确定第一项取值的第一份额。
所述第二数据方可以对第一数据的份额进行累加;可以根据累加结果确定第一项取值的第一份额。具体过程可以参见前面步骤S105中的相关描述,在此不再赘述。
步骤S35:根据第二参数的份额与合作方秘密分享第二数据,得到第二数据的第一份额。
第一数据与后续第二项的系数相结合能够确定出第二项的取值。具体过程可以参见前面步骤S107中的相关描述,在此不再赘述。
步骤S37:接收合作方发来的第一项取值的第二份额、第二数据的第二份额和第二项的系数。
步骤S39:根据第一项取值的第一份额、第一项取值的第二份额、第二数据的第一份额、第二数据的第二份额和第二项的系数,确定所述损失函数的值。
所述第二数据方可以将第一项取值的第一份额和第一项取值的第二份额相加,得到第一项的取值;可以将第二数据的第一份额和第二数据的第二份额相加,得到第二数据;可以根据第二数据和第二项的系数,确定第二项的取值;可以将第一项的取值和第二项的取值相加,得到所述损失函数的值。具体过程可以参见前面步骤S115中的相关描述,在此不再赘述。
在本实施例中,第二数据方可以利用秘密分享算法,在不泄漏自身所拥有的数据的前提下,与合作方协作计算出第一项取值的第一份额、第二数据的第一份额。这样所述第二数据方结合来自合作方的第一项取值的第二份额、第二数据的第二份额和第二项的系数,便可以确定出损失函数的取值。
基于同样的发明构思,本说明书还提供一种损失函数取值的确定装置的实施例。所述损失函数可以包括第一项和第二项。所述第一项和所述第二项分别为所述损失函数中不同的函数项。该实施例可以应用于第一数据方。所述第一数据方可以为不拥有标签值的数据方。具体地,例如,所述第一数据方可以拥有完整的样本数据;或者,可以拥有样本数据的一部分数据项。请参阅图4,该实施例可以包括以下单元。
第一秘密分享单元41,用于根据第一参数的份额与合作方秘密分享第一数据,得到第一数据的份额;
第一确定单元43,用于根据第一数据的份额,确定第一项取值的份额;
第二秘密分享单元45,用于根据第二参数的份额和随机数与合作方秘密分享第二数据,得到第二数据的份额;
第二确定单元47,用于根据随机数确定第二项的系数,第二项的系数和第一数据用于共同确定第二项的取值;
发送单元49,用于向合作方发送第一项取值的份额、第二数据的份额和第二项的系数,以便合作方确定所述损失函数的取值。
基于同样的发明构思,本说明书还提供另一种损失函数取值的确定装置的实施例。所述损失函数可以包括第一项和第二项。所述第一项和所述第二项分别为所述损失函数中不同的函数项。该实施例可以应用于第二数据方。所述第二数据方可以为拥有标签值的数据方。具体地,例如,所述第二数据方可以仅拥有标签值;或者,还可以拥有样本数据的一部分数据项。请参阅图5,该实施例可以包括以下单元。
第一秘密分享单元51,用于根据第一参数的份额和标签值与合作方秘密分享第一数据,得到第一数据的第一份额;
第一确定单元53,用于根据第一数据的份额,确定第一项取值的第一份额;
第二秘密分享单元55,用于根据第二参数的份额与合作方秘密分享第二数据,得到第二数据的第一份额;
接收单元57,用于接收合作方发来的第一项取值的第二份额、第二数据的第二份额和第二项的系数,第二项的系数和第二数据用于共同确定第二项的取值;
第二确定单元59,用于根据第一项取值的第一份额、第一项取值的第二份额、第二数据的第一份额、第二数据的第二份额和第二项的系数,确定所述损失函数的值。
下面介绍本说明书电子设备的一个实施例。图6是该实施例中一种电子设备的硬件结构示意图。如图6所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图6所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图6所示更多或者更少的组件单元;或者,具有与图6所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图2所对应实施例的程序指令或模块;和/或,本说明书图3所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(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)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。