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

一种归一化指数函数安全计算方法及系统与流程

2022-03-23 00:28:03 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,特别涉及一种归一化指数函数安全计算方法及系统。


背景技术:

2.在人工智能技术领域中,主要使用以深度学习为代表的机器学习算法,归一化指数函数在分类问题中被广泛使用,是深度学习算法中被经常使用且非常重要的函数。由于深度学习算法的数据量非常大,经常会将数据的计算分发给不同的计算终端进行计算,但是这种分布式计算的方法会存在数据泄露的风险。
3.因此,现有技术还有待改进和提高。


技术实现要素:

4.针对现有技术的上述缺陷,本发明提供一种归一化指数函数安全计算方法及系统,旨在解决现有技术中深度学习归一化指数函数采用分布式计算时存在数据泄露的风险问题。
5.为了解决上述技术问题,本发明所采用的技术方案如下:
6.本发明的第一方面,提供一种归一化指数函数安全计算方法,所述方法包括:
7.第一计算终端获取第一输入序列,第二计算终端获取第二输入序列,其中,所述第一输入序列和所述第二输入序列是根据归一化指数函数的待计算输入序列生成的,所述第一输入序列、所述第二输入序列和所述待计算输入序列满足关系:[xi]1 [xi]2=xi,其中,[xi]1为所述第一输入序列中的第i个数值,[xi]2为所述第二输入序列中的第i个数值,xi为所述待计算输入序列中的第i个数值;
[0008]
所述第一计算终端根据所述第一输入序列进行指数运算,并根据所述第一输入序列的指数运算结果和第一随机序列组得到第一中间结果序列,所述第二计算终端根据所述第二输入序列进行指数运算,并根据所述第二输入序列的指数运算结果和第二随机序列组得到第二中间结果序列;
[0009]
所述第一计算终端获取所述第二中间结果序列,根据所述第二中间结果序列、第三随机序列组和所述第一随机序列组得到第三中间结果序列,对所述第三中间结果序列进行求和,得到第四中间结果,所述第二计算终端获取所述第一中间结果序列,根据所述第一中间结果序列、所述第二中间结果序列、第四随机序列组和所述第一随机序列组得到第五中间结果序列,对所述第五中间结果序列进行求和,得到第六中间结果;
[0010]
所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组得到第七中间结果序列,根据所述第四中间结果和所述第一随机序列组得到第八中间结果序列;
[0011]
所述第二计算终端选取第五随机序列和第六随机序列,并根据所述第七中间结果序列、所述第八中间结果序列、所述第五随机序列和所述第六随机序列得到第九中间结果序列和中间参数序列,所述第一计算终端根据所述中间参数序列得到第十中间结果序列;
[0012]
所述第一计算终端根据所述第九中间结果序列和所述第一随机序列组、所述第三随机序列组计算得到第一目标结果,所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组和所述第四随机序列组运算得到第二目标结果,所述第一目标结果和所述第二目标结果的和为所述待计算输入序列对应的归一化指数函数计算结果。
[0013]
所述的归一化指数函数安全计算方法,其中,所述第一随机序列组、所述第二随机序列组、所述第三随机序列组和所述第四随机序列组满足关系:
[0014][0015]
其中,a
j,i
表示第一随机序列组的第j个序列中的第i个数值,b
j,i
表示第二随机序列组的第j个序列中的第i个数值,表示第三随机序列组的第j个序列中的第i个数值,表示第四随机序列组的第j个序列中的第i个数值,i和j均为正整数。
[0016]
所述的归一化指数函数安全计算方法,其中,所述第一计算终端根据所述第一输入序列进行指数运算,并根据所述第一输入序列的指数运算结果和第一随机序列组得到第一中间结果序列,包括:
[0017]
所述第一计算终端根据所述第一输入序列进行指数运算后,根据所述第一输入序列的指数运算结果和所述第一随机序列中的第一个序列进行运算得到所述第一中间结果序列;
[0018]
所述第二计算终端根据所述第二输入序列进行指数运算,并根据所述第二输入序列的指数运算结果和第二随机序列组得到第二中间结果序列,包括:
[0019]
所述第二计算终端根据所述第二输入序列进行指数运算后,根据所述第二输入序列的指数运算结果和所述第二随机序列组中的第一个序列进行运算得到所述第二中间结果序列。
[0020]
所述的归一化指数函数安全计算方法,其中,所述第一中间结果序列的计算公式为:
[0021][0022]
所述第二中间结果序列的计算公式为:
[0023][0024]
其中,d
1,i
为所述第一中间结果序列中的第i个数值,d
2,i
为所述第二中间结果序列中的第i个数值,a
1,i
为所述第一随机序列组的第一个序列中的第i个数值,b
1,i
为所述第二随机序列组的第一个序列中的第i个数值。
[0025]
所述的归一化指数函数安全计算方法,其中,所述第一计算终端根据所述第二中间结果序列、第三随机序列组和所述第一随机序列组得到第三中间结果序列,包括:
[0026]
所述第一计算终端根据所述第二中间结果序列、所述第三随机序列组中的第一个序列以及所述第一随机序列组中的第一个序列得到所述第三中间结果序列;
[0027]
所述第二计算终端根据所述根据所述第一中间结果序列、所述第二中间结果序列、第四随机序列组和所述第一随机序列组得到第五中间结果序列,包括:
[0028]
所述第二计算终端根据所述第一中间结果序列、所述第二中间结果序列、所述第四随机序列组中的第一个序列、所述第一随机序列组中的第一个序列得到所述第五中间结果序列。
[0029]
所述的归一化指数函数安全计算方法,其中,所述第三中间结果序列的计算公式为:
[0030][0031]
其中,[fi]1为所述第三中间结果序列中的第i个数值,d
2,i
为所述第二中间结果序列中的第i个数值,为所述第三随机序列组的第一个序列中的第i个数值,a
1,i
为所述第一随机序列组的第一个序列中的第i个数值;
[0032]
所述第四中间结果的计算公式为:
[0033][0034]
其中,[g]1为所述第四中间结果,n为所述待计算输入序列中数值的数量;
[0035]
所述第五中间结果序列的计算公式为:
[0036][0037]
其中,[fi]2为所述第五中间结果序列中的第i个数值,d
1,i
为所述第一中间结果序列中的第i个数值,为所述第四随机序列组的第一个序列中的第i个数值;
[0038]
所述第六中间结果的计算公式为:
[0039][0040]
其中,[g]2为所述第六中间结果。
[0041]
所述的归一化指数函数安全计算方法,其中,所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组得到第七中间结果序列,根据所述第四中间结果和所述第一随机序列组得到第八中间结果序列,包括:
[0042]
所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组中的第二个序列得到所述第七中间结果序列;
[0043]
所述第一计算终端根据所述第四中间结果和所述第一随机序列组中的第三个序列得到所述第八中间结果序列。
[0044]
所述的归一化指数函数安全计算方法,其中,所述第七中间结果序列的计算公式为:
[0045]mi,1
=[fi]
1-a
2,i

[0046]
其中,m
i,1
为所述第七中间结果序列中的第i个数值,[fi]1为所述第三中间结果序列中的第i个数值,a
2,i
为所述第一随机序列组的第二个序列中的第i个数值;
[0047]
所述第八中间结果序列的计算公式为:
[0048]ni,1
=[g]
1-a
3,i

[0049]
其中,n
i,1
为所述第八中间结果序列中的第i个数值,[g]1为所述第四中间结果,a
3,i
为所述第一随机序列组的第三个序列中的第i个数值。
[0050]
所述的归一化指数函数安全计算方法,其中,所述第二计算终端根据所述第七中间结果序列、所述第八中间结果序列、所述第五随机序列和所述第六随机序列得到第九中间结果序列和中间参数序列,包括:
[0051]
所述第二计算终端根据所述第五随机序列、所述第六随机序列和所述第二随机序列组中的第四个序列得到所述第九中间结果序列;
[0052]
所述第二计算终端根据所述第七中间结果序列、所述第五中间结果序列、所述第五随机序列和所述第四随机序列组中的第二个序列得到第一中间参数序列;
[0053]
所述第二计算终端根据所述第五随机序列和所述第二随机序列组中的第二个序列得到第二中间参数序列;
[0054]
所述第二计算终端根据所述第八中间结果序列、所述第六中间结果、所述第六随机序列和所述第四随机序列组中的第三个序列得到第三中间参数序列;
[0055]
所述第二计算终端根据所述第六随机序列和所述第二随机序列组中的第三个序列得到第四中间参数序列。
[0056]
所述的归一化指数函数安全计算方法,其中,所述第九中间结果序列的计算公式为:
[0057][0058]
其中,w
i,2
为所述第九中间结果序列中的第i个数值,《ui》2为所述第五随机序列中的第i个数值,《vi》2为所述第六随机序列中的第i个数值,b
4,i
为所述第二随机序列组中的第四个序列中的第i个数值;
[0059]
所述第一中间参数序列的计算公式为:
[0060][0061]
其中,m
i,2
为所述第一中间参数序列中的第i个数值,m
i,1
为所述第七中间结果序列中的第i个数值,[fi]2为所述第五中间结果序列中的第i个数值,为所述第四随机序列组的第二个序列中的第i个数值;
[0062]
所述第二中间参数序列的计算公式为:
[0063][0064]
其中,mi′
,2
为所述第二中间参数序列中的第i个数值,b
2,i
为所述第二随机序列组的第二个序列中的第i个数值;
[0065]
所述第三中间参数序列的计算公式为:
[0066][0067]
其中,n
i,2
为所述第三中间参数序列中的第i个数值,n
i,1
为所述第八中间结果序列中的第i个数值,为所述第四随机序列组的第三个序列中的第i个数值;
[0068]
所述第四中间参数序列的计算公式为:
[0069][0070]
其中,ni′
,2
为所述第四中间参数序列中的第i个数值,b
3,i
为所述第二随机序列组的第三个序列中的第i个数值。
[0071]
所述的归一化指数函数安全计算方法,其中,所述第一计算终端根据所述中间参数序列得到第十中间结果序列,包括:
[0072]
所述第一计算终端根据所述第一中间参数序列、所述第二中间参数序列、所述第一随机序列组中的第二个序列和所述第三随机序列组中的第二个序列得到第五中间参数序列;
[0073]
所述第一计算终端根据所述第三中间参数序列、所述第四中间参数序列、所述第一随机序列组中的第三个序列和所述第三随机序列组中的第三个序列得到第六中间参数序列;
[0074]
所述第一计算终端根据所述第五中间参数序列、所述第六中间参数序列和所述第一随机序列组中的第四个序列得到所述第十中间结果序列。
[0075]
所述的归一化指数函数安全计算方法,其中,所述第五中间参数序列的计算公式为:
[0076][0077]
其中,《ui》1为所述第五中间参数序列中的第i个数值,a
2,i
为所述第一随机序列组的第二个序列中的第i个数值,为所述第三随机序列组的第二个序列中的第i个数值;
[0078]
所述第六中间参数序列的计算公式为:
[0079][0080]
其中,《vi》1为所述第六中间参数序列中的第i个数值,a
3,i
为所述第一随机序列组的第三个序列中的第i个数值,为所述第三随机序列组的第三个序列中的第i个数值;
[0081]
所述第十中间结果序列的计算公式为:
[0082][0083]
其中,a
4,i
为所述第一随机序列组的第四个序列中的第i个数值。
[0084]
所述的归一化指数函数安全计算方法,其中,所述第一计算终端根据所述第九中间结果序列和所述第一随机序列组、所述第三随机序列组计算得到第一目标结果,包括:
[0085]
所述第一计算终端根据所述第九中间结果序列、所述第一随机序列组中的第四个序列、所述第三随机序列组中的第三个序列计算得到所述第一目标结果;
[0086]
所述第一目标结果的计算公式为:
[0087][0088]
其中,[yi]1为所述第一目标结果中的第i个数值,a
4,i
为所述第一随机序列组的第
四个序列中的第i个数值,w
i,2
为所述第九中间结果序列中的第i个数值,为所述第三随机序列组中第四个序列中的第i个数值;
[0089]
所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组和所述第四随机序列组运算得到第二目标结果,包括:
[0090]
所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组中的第四个序列以及所述第四随机序列组中的第四个序列计算得到所述第二目标结果;
[0091]
所述第二目标结果的计算公式为:
[0092][0093]
其中,[yi]2为所述第一目标结果中的第i个数值,b
4,i
为所述第二随机序列组的第四个序列中的第i个数值,w
i,1
为所述第十中间结果序列中的第i个数值,w
i,2
为所述第九中间结果序列中的第i个数值,为所述第四随机序列组中第四个序列中的第i个数值。
[0094]
本发明的第二方面,提供一种归一化指数函数安全计算系统,所述系统包括第一计算终端和第二计算终端,所述第一计算终端和所述第二计算终端用于执行如本发明第一方面提供的归一化指数函数安全计算方法中的相关步骤。
[0095]
与现有技术相比,本发明提供了一种归一化指数函数安全计算方法及系统,所述的归一化指数函数安全计算方法,根据归一化指数函数的待计算输入序列生成第一输入序列和第二输入序列,并且根据待计算输入序列生成第一输入序列和第二输入序列的公式中可以有多组解,将第一输入序列和第二输入序列分别分给第一计算终端和第二计算终端进行计算,在计算过程中,第一计算终端和第二计算终端之间传输的信息,都是根据随机数运算得到的,从而使得每个计算终端在计算过程中接收到的信息都是随机均匀分布的,计算终端无法根据接收到的信息来倒推得到真实的数据,从而避免了原始数据泄露,保证了数据的安全性。
附图说明
[0096]
图1为本发明提供的归一化指数函数安全计算方法的实施例的流程图;
[0097]
图2为本发明提供的归一化指数函数安全计算系统的实施例的结构原理图。
具体实施方式
[0098]
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0099]
本发明提供的归一化指数函数安全计算方法,可以应用于一种归一化指数函数安全计算系统中,所述系统中包括第一计算终端和第二计算终端,所述第一计算终端和所述第二计算终端之间可以进行通信,所述第一计算终端和所述第二计算终端进行本地计算以及互相交互以实现本发明提供的归一化指数函数安全计算方法。
[0100]
实施例一
[0101]
如图1所示,所述归一化指数函数安全计算方法的一个实施例中,包括步骤:
[0102]
s100、第一计算终端获取第一输入序列,第二计算终端获取第二输入序列,其中,所述第一输入序列和所述第二输入序列是根据归一化指数函数的待计算输入序列生成的,所述第一输入序列、所述第二输入序列和所述待计算输入序列满足关系:[xi]1 [xi]2=xi,其中,[xi]1为所述第一输入序列中的第i个数值,[xi]2为所述第二输入序列中的第i个数值,xi为所述待计算输入序列中的第i个数值。
[0103]
归一化指数函数(softmax)的输入为n维向量,可以看做是包括n个数值的序列,输出为概率分布向量,也是一个包括n个数值的序列,归一化指数函数的计算过程可以表示为:
[0104][0105]
从归一化指数函数的计算公式不难看出,归一化指数函数本身结构相对复杂,包括指数运算和除法运算等,导致难以使用密码学技术实现安全的归一化指数函数,可以使用密码学友好的函数进行安全计算,例如采用函数:
[0106][0107]
其中relu为线性整流函数。
[0108]
但是将深度学习算法中的归一化指数函数替换为密码学友好的函数进行安全计算存在下列问题:
[0109]
首先在性能上,一方面需要改变原有深度学习算法的结构,会导致训练得到的模型性能相较于原有模型变差,经过实验,利用asm替换原有的分类深度学习算法中的归一化指数函数后,训练得到模型分类的准确率从原有的94.5%下降到93.4%。另一方面目前主流深度学习算法的参数和数据均为浮点数类型,而密码学友好的函数是在整数环z
l
(l=2
32
或l=2
64
)上设计实现的,这样就需要将深度学习算法的参数和数据转换为整数进行计算,这样就需要将深度学习算法中的参数和数据保留小数点后ld位转化为环上的整数进行计算,而为了保证算法计算结果能够保持在合理的误差范围内,ld一般取3,这样的做法同样会造成一定的模型性能损失,在一些对模型性能要求较高的场景并不适用。
[0110]
其次在通信效率上,替换为密码学友好的函数进行计算需要花费高昂的通信代价,例如在securenn中通过asm对归一化指数函数进行安全近似计算需要花费10ld 10轮通信,通信复杂度为(82l 4)ld (72l 4)n,n为归一化指数函数待计算输入数列中的数值个数,l为计算数据的长度。
[0111]
最后,由于密码学友好的归一化指数函数替换函数是在整数环进行计算,因此需要深度学习算法在整个训练和预测过程中均为整数类型,而现有的gpu设备仅支持浮点类型的计算,因此无法直接使用gpu进行加速计算,效率较低。
[0112]
为了解决上述问题中的至少一个,在本实施例中,采用公式[xi]1 [xi]2=xi将归一化指数函数的待计算输入序列拆分为第一输入序列[xi]1和第二输入序列[xi]2,具体地,可以是采用独立于第一计算终端和第二计算终端的辅助计算终端来根据所述待计算输入序列生成所述第一输入序列和所述第二输入序列,然后将所述第一输入序列发送给所述第一
计算终端,将所述第二输入序列发送给所述第二计算终端。所述辅助计算终端、所述第一计算终端和所述第二计算终端两两不共谋,也就是说,三者之间的信息都是通过安全信道进行传输,不会在传输的过程中被篡改,其中一个终端除了本地的数据,只能获取到其他终端发送给其的数据。
[0113]
从所述第一输入序列和所述第二输入序列的生成公式中可以看出,根据所述待计算输入序列生成所述第一输入序列和所述第二输入序列的解可以有多对,所述第一计算终端(所述第二计算终端)接收到所述第一输入序列(所述第二输入序列),并不能根据所述第一输入序列(所述第二输入序列)反推得到所述待计算输入序列。
[0114]
s200、所述第一计算终端根据所述第一输入序列进行指数运算,并根据所述第一输入序列的指数运算结果和第一随机序列组得到第一中间结果序列,所述第二计算终端根据所述第二输入序列进行指数运算,并根据所述第二输入序列的指数运算结果和第二随机序列组得到第二中间结果序列。
[0115]
在本实施例中,设置有四组随机序列组:第一随机序列组、第二随机序列组、第三随机序列组和第四随机序列组,每个随机序列组中包括4个随机序列,所述第一随机序列组、所述第二随机序列组、所述第三随机序列组和所述第四随机序列组满足关系:
[0116][0117]
其中,a
j,i
表示第一随机序列组的第j个序列中的第i个数值,b
j,i
表示第二随机序列组的第j个序列中的第i个数值,表示第三随机序列组的第j个序列中的第i个数值,表示第四随机序列组的第j个序列中的第i个数值,i和j均为正整数。
[0118]
所述辅助计算终端生成随机序列组后,将所述第一随机序列组和第三随机序列组发送给所述第一计算终端,将所述第二随机序列组和所述第四随机序列组发送给所述第二计算终端,也就是说,所述第一计算终端能够获取到所述第一随机序列组和所述第三随机序列组,所述第二计算终端能够获取到所述第二随机序列组和所述第四随机序列组。所述第一随机序列组、所述第二随机序列组、所述第三随机序列组和所述第四随机序列组中的数值属于实数域。从随机序列组之间的关系可以看出,即使所述第一计算终端(所述第二计算终端)获取到了所述第一随机序列组和所述第三随机序列组(所述第二随机序列组和所述第四随机序列组),也不能得到另外的随机序列组,那么其中的一个计算终端根据本地的随机序列组对原始数据计算得到的数据即使发送给另一个计算终端,另一个计算终端也无法根据自己已有的数据计算得到原始数据,从而保证了数据交互的安全性。
[0119]
具体地,所述第一计算终端根据所述第一输入序列进行指数运算,并根据所述第一输入序列的指数运算结果和第一随机序列组得到第一中间结果序列,包括:
[0120]
所述第一计算终端根据所述第一输入序列进行指数运算后,根据所述第一输入序列的指数运算结果和所述第一随机序列中的第一个序列进行运算得到所述第一中间结果序列。
[0121]
所述第一中间结果序列的计算公式可以表示为:
[0122][0123]
其中,d
1,i
为所述第一中间结果序列中的第i个数值,a
1,i
为所述第一随机序列组的
第一个序列中的第i个数值。
[0124]
所述第二计算终端根据所述第二输入序列进行指数运算,并根据所述第二输入序列的指数运算结果和第二随机序列组得到第二中间结果序列,包括:
[0125]
所述第二计算终端根据所述第二输入序列进行指数运算后,根据所述第二输入序列的指数运算结果和所述第二随机序列组中的第一个序列进行运算得到所述第二中间结果序列。
[0126]
所述第二中间结果序列的计算公式可以表示为:
[0127][0128]
其中,d
2,i
为所述第二中间结果序列中的第i个数值,b
1,i
为所述第二随机序列组的第一个序列中的第i个数值。
[0129]
s300、所述第一计算终端获取所述第二中间结果序列,根据所述第二中间结果序列、第三随机序列组和所述第一随机序列组得到第三中间结果序列,对所述第三中间结果序列进行求和,得到第四中间结果,所述第二计算终端获取所述第一中间结果序列,根据所述第一中间结果序列、所述第二中间结果序列、第四随机序列组和所述第一随机序列组得到第五中间结果序列,对所述第五中间结果序列进行求和,得到第六中间结果。
[0130]
所述第一计算终端计算得到所述第一中间结果序列后发送给所述第二计算终端,所述第二计算终端计算得到所述第二中间结果序列后发送给所述第一计算终端,所述第一计算终端根据所述第二中间结果序列、第三随机序列组和所述第一随机序列组得到第三中间结果序列,包括:
[0131]
所述第一计算终端根据所述第二中间结果序列、所述第三随机序列组中的第一个序列以及所述第一随机序列组中的第一个序列得到所述第三中间结果序列。
[0132]
所述第三中间结果序列的计算公式可以表示为:
[0133][0134]
其中,[fi]1为所述第三中间结果序列中的第i个数值,d
2,i
为所述第二中间结果序列中的第i个数值,为所述第三随机序列组的第一个序列中的第i个数值,a
1,i
为所述第一随机序列组的第一个序列中的第i个数值。
[0135]
所述第四中间结果的计算公式可以表示为:
[0136][0137]
其中,[g]1为所述第四中间结果,n为所述待计算输入序列中数值的数量。
[0138]
所述第二计算终端根据所述根据所述第一中间结果序列、所述第二中间结果序列、第四随机序列组和所述第一随机序列组得到第五中间结果序列,包括:
[0139]
所述第二计算终端根据所述第一中间结果序列、所述第二中间结果序列、所述第四随机序列组中的第一个序列、所述第一随机序列组中的第一个序列得到所述第五中间结果序列。
[0140]
所述第五中间结果序列的计算公式可以表示为:
[0141]
[0142]
其中,[fi]2为所述第五中间结果序列中的第i个数值,d
1,i
为所述第一中间结果序列中的第i个数值,为所述第四随机序列组的第一个序列中的第i个数值。
[0143]
所述第六中间结果的计算公式可以表示为:
[0144][0145]
其中,[g]2为所述第六中间结果。
[0146]
请再次参阅图1,本实施例提供的归一化指数函数安全计算方法,还包括步骤:
[0147]
s400、所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组得到第七中间结果序列,根据所述第四中间结果和所述第一随机序列组得到第八中间结果序列。
[0148]
所述第一计算终端根据在步骤s300中计算得到的所述第三中间结果序列和所述第四中间结果以及之前获取的所述第一随机序列组计算得到所述第七中间结果序列和所述第八中间结果序列,并将所述第七中间结果序列和所述第八中间结果序列发送给所述第二计算终端。
[0149]
具体地,所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组得到第七中间结果序列,根据所述第四中间结果和所述第一随机序列组得到第八中间结果序列,包括:
[0150]
所述第一计算终端根据所述第三中间结果序列和所述第一随机序列组中的第二个序列得到所述第七中间结果序列;
[0151]
所述第一计算终端根据所述第四中间结果和所述第一随机序列组中的第三个序列得到所述第八中间结果序列。
[0152]
所述第七中间结果序列的计算公式为:
[0153]mi,1
=[fi]
1-a
2,i

[0154]
其中,m
i,1
为所述第七中间结果序列中的第i个数值,[fi]1为所述第三中间结果序列中的第i个数值,a
2,i
为所述第一随机序列组的第二个序列中的第i个数值。
[0155]
所述第八中间结果序列的计算公式为:
[0156]ni,1
=[g]
1-a
3,i

[0157]
其中,n
i,1
为所述第八中间结果序列中的第i个数值,[g]1为所述第四中间结果,a
3,i
为所述第一随机序列组的第三个序列中的第i个数值。
[0158]
s500、所述第二计算终端选取第五随机序列和第六随机序列,并根据所述第七中间结果序列、所述第八中间结果序列、所述第五随机序列和所述第六随机序列得到第九中间结果序列和中间参数序列,所述第一计算终端根据所述中间参数序列得到第十中间结果序列。
[0159]
所述第二计算终端在不包含0的实数域中随机选取数值得到所述第五随机序列和所述第六随机序列。
[0160]
所述第二计算终端根据所述第七中间结果序列、所述第八中间结果序列、所述第五随机序列和所述第六随机序列得到第九中间结果序列和中间参数序列,包括:
[0161]
所述第二计算终端根据所述第五随机序列、所述第六随机序列和所述第二随机序
列组中的第四个序列得到所述第九中间结果序列;
[0162]
所述第二计算终端根据所述第七中间结果序列、所述第五中间结果序列、所述第五随机序列和所述第四随机序列组中的第二个序列得到第一中间参数序列;
[0163]
所述第二计算终端根据所述第五随机序列和所述第二随机序列组中的第二个序列得到第二中间参数序列;
[0164]
所述第二计算终端根据所述第八中间结果序列、所述第六中间结果、所述第六随机序列和所述第四随机序列组中的第三个序列得到第三中间参数序列;
[0165]
所述第二计算终端根据所述第六随机序列和所述第二随机序列组中的第三个序列得到第四中间参数序列。
[0166]
具体地,所述第九中间结果序列的计算公式为:
[0167][0168]
其中,w
i,2
为所述第九中间结果序列中的第i个数值,《ui》2为所述第五随机序列中的第i个数值,《vi》2为所述第六随机序列中的第i个数值,b
4,i
为所述第二随机序列组中的第四个序列中的第i个数值;
[0169]
所述第一中间参数序列的计算公式为:
[0170][0171]
其中,m
i,2
为所述第一中间参数序列中的第i个数值,m
i,1
为所述第七中间结果序列中的第i个数值,[fi]2为所述第五中间结果序列中的第i个数值,为所述第四随机序列组的第二个序列中的第i个数值;
[0172]
所述第二中间参数序列的计算公式为:
[0173][0174]
其中,mi′
,2
为所述第二中间参数序列中的第i个数值,b
2,i
为所述第二随机序列组的第二个序列中的第i个数值;
[0175]
所述第三中间参数序列的计算公式为:
[0176][0177]
其中,n
i,2
为所述第三中间参数序列中的第i个数值,n
i,1
为所述第八中间结果序列中的第i个数值,为所述第四随机序列组的第三个序列中的第i个数值;
[0178]
所述第四中间参数序列的计算公式为:
[0179][0180]
其中,ni′
,2
为所述第四中间参数序列中的第i个数值,b
3,i
为所述第二随机序列组
的第三个序列中的第i个数值。
[0181]
所述第二计算终端计算得到所述第九中间结果序列和所述中间参数序列后,将所述第九中间结果序列和所述中间参数序列发送给所述第一计算终端。所述第一计算终端根据所述中间参数序列计算得到第十中间结果序列。
[0182]
所述第一计算终端根据所述中间参数序列得到第十中间结果序列,包括:
[0183]
所述第一计算终端根据所述第一中间参数序列、所述第二中间参数序列、所述第一随机序列组中的第二个序列和所述第三随机序列组中的第二个序列得到第五中间参数序列;
[0184]
所述第一计算终端根据所述第三中间参数序列、所述第四中间参数序列、所述第一随机序列组中的第三个序列和所述第三随机序列组中的第三个序列得到第六中间参数序列;
[0185]
所述第一计算终端根据所述第五中间参数序列、所述第六中间参数序列和所述第一随机序列组中的第四个序列得到所述第十中间结果序列。
[0186]
所述第五中间参数序列的计算公式为:
[0187][0188]
其中,《ui》1为所述第五中间参数序列中的第i个数值,a
2,i
为所述第一随机序列组的第二个序列中的第i个数值,为所述第三随机序列组的第二个序列中的第i个数值;
[0189]
所述第六中间参数序列的计算公式为:
[0190][0191]
其中,《vi》1为所述第六中间参数序列中的第i个数值,a
3,i
为所述第一随机序列组的第三个序列中的第i个数值,为所述第三随机序列组的第三个序列中的第i个数值;
[0192]
所述第十中间结果序列的计算公式为:
[0193][0194]
其中,a
4,i
为所述第一随机序列组的第四个序列中的第i个数值。
[0195]
s600、所述第一计算终端根据所述第九中间结果序列和所述第一随机序列组、所述第三随机序列组计算得到第一目标结果,所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组和所述第四随机序列组运算得到第二目标结果,所述第一目标结果和所述第二目标结果的和为所述待计算输入序列对应的归一化指数函数计算结果。
[0196]
所述第一计算终端计算得到所述第十中间结果序列后,将所述第十中间结果序列发送给所述第二计算终端,这样,所述第一计算终端本地存储有所述第一随机序列组、所述第三随机序列组、所述第九中间结果序列,所述第二计算终端本地存储有所述第二随机序列组、所述第四随机序列组、所述第九中间结果序列和所述第十中间结果序列。
[0197]
所述第一计算终端根据所述第九中间结果序列和所述第一随机序列组、所述第三随机序列组计算得到第一目标结果,包括:
[0198]
所述第一计算终端根据所述第九中间结果序列、所述第一随机序列组中的第四个序列、所述第三随机序列组中的第三个序列计算得到所述第一目标结果;
[0199]
所述第一目标结果的计算公式为:
[0200][0201]
其中,[yi]1为所述第一目标结果中的第i个数值,a
4,i
为所述第一随机序列组的第四个序列中的第i个数值,w
i,2
为所述第九中间结果序列中的第i个数值,为所述第三随机序列组中第四个序列中的第i个数值。
[0202]
所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组和所述第四随机序列组运算得到第二目标结果,包括:
[0203]
所述第二计算终端根据所述第九中间结果序列、所述第十中间结果序列、所述第二随机序列组中的第四个序列以及所述第四随机序列组中的第四个序列计算得到所述第二目标结果;
[0204]
所述第二目标结果的计算公式为:
[0205][0206]
其中,[yi]2为所述第一目标结果中的第i个数值,b
4,i
为所述第二随机序列组的第四个序列中的第i个数值,w
i,1
为所述第十中间结果序列中的第i个数值,w
i,2
为所述第九中间结果序列中的第i个数值,为所述第四随机序列组中第四个序列中的第i个数值。
[0207]
将所述第一计算终端输出的所述第一目标结果和所述第二计算终端输出的所述第二目标的和作为所述待计算输入序列对应的归一化指数函数计算结果,具体地,是指所述第一目标结果的第i个数值和所述第二目标结果的第i个数值的和为所述待计算输入序列中的第i个数值对应的归一化指数函数计算结果,可以表示为:
[0208]
[yi]1 [yi]2=pi=softmax(xi)
[0209]
具体地,根据所述第一目标结果和所述第二目标结果的计算公式带入到[yi]1 [yi]2中后,上述计算过程中使用的随机数会被消除,可以实现以下等式:
[0210][0211]
可见,本实施例提供的归一化指数函数安全计算方法可以实现得到准确的归一化指数函数计算结果。
[0212]
下面对本实施例提供的归一化指数函数安全计算方法的安全性进行证明:
[0213]
本实施例提供的归一化指数函数安全计算方法中,有三台两两之间互不共谋的终端上,包括第一计算终端、第二计算终端和辅助计算终端,所述第一计算终端和所述第二计算终端有数据的输入和输出,而所述辅助计算终端只是产生和发送一些满足条件的随机数。各个终端之间的信息均是通过安全信道进行传输,在计算归一化指数函数的过程中,假设其中一台计算终端被半诚实敌手a所控制,敌手可以获取该计算终端在计算过程中的内
部状态,敌手a在计算的过程中不会违反计算的规则,但是会基于所获得的内部状态试图获取更多信息,若在执行某个计算方法时,存在概率多项式时间的模拟器s,可以仅仅通过计算终端的输入、输出信息以及空开参数,便可以模拟该终端的内部状态,且使得敌手a无法区分该状态与真实状态的区别,则称计算方法在半诚实模型下是安全的。
[0214]
若a在实数域r中是均匀随机分布的,且与b之间是相互独立的,则a b在r上也是均匀随机分布的,且与b相互独立。那么在本实施例提供的归一化指数函数安全计算方法中,假设半诚实敌手a控制了所述第二计算终端,此时a可以得到所述第二计算终端视图中的全部信息,此时a会遵守本实施例提供的归一化指数函数安全计算方法中的规则进行计算,但是a会视图通过自己所掌握的信息获取更多不被允许的信息,只需要证明存在概率多项式时间的模拟器s,可以在计算过程中模拟所述第一计算终端和所述辅助计算终端的视图,使得敌手a无法区分模拟视图与真实视图即可。
[0215]
首先,所述辅助计算终端仅产生满足公开条件的随机数,因此存在多项式时间模拟器s,可以通过随机产生相应的满足条件的随机数模拟出所述辅助计算终端的视图,使得半诚实敌手a无法区分模拟视图与真实视图。
[0216]
其次,所述第一计算终端的视图为{[xi]1,d
i,1
,[fi]1,[g]1,m
i,1
,n
i,1
,《ui》1,《vi》1,w
i,1
,[yi]1},在步骤s200-s400中,所述第一计算终端的视图中包含{[xi]1,d
i,1
,[fi]1,[g]1,m
i,1
,n
i,1
},在计算过程中,所述第一计算终端只需要将d
i,1
、m
i,1
、n
i,1
发送给所述第二计算终端,因为所述第一随机序列组、所述第三随机序列组是由所述辅助计算终端在实数域上按照公开条件随机均匀选取后秘密发送给所述第一计算终端的,因此对于所述第二计算终端来说它们是在实数域上随机均匀分布的,则对于所述第二计算终端来说d
i,1
、m
i,1
、n
i,1
也是在实数域上随机均匀分布的,在步骤s500-s600中,所述第一计算终端的视图中包含{《ui》1,《vi》1,w
i,1
,[yi]1},在计算过程中,所述第一计算终端只将w
i,1
发送给所述第二计算终端,同理因为所述第一随机序列组、所述第三随机序列组是由所述辅助计算终端在实数域上按照公开条件随机均匀选取后秘密发送给所述第一计算终端的,所以对于所述第二计算终端来说,w
i,1
也是在实数域上随机均匀分布的,即,所述第二计算终端从所述第一计算终端获取的信息均为在实数域上随机均匀分部二的,因此存在概率多项式时间模拟器s可以通过在实数域上随机均匀地选取满足公开条件的随机数,模拟所述第一计算终端的视图,使得所述第二计算终端无法区分模拟视图和真实视图,证明本实施例提供的归一化指数函数安全计算方法是安全的。
[0217]
同时,从前文说明的计算方法中可以看出,本实施例提供的归一化指数函数安全计算方法是在实数域上设计的,因此可以直接支持浮点数类型的运算,而不需要通过截断协议舍弃算法参数和数据的部分小数位,可以实现准确计算,并且可以直接支持使用gpu进行加速计算。而在通信效率上,使用本实施例提供的归一化指数函数安全计算方法仅需要花费4轮通信,通信复杂度为(8 2n)l,相对于通过asm对归一化指数函数进行安全近似计算需要花费10ld 10轮通信,通信复杂度为(82l 4)ld (72l 4)n,本实施例提供的归一化指数函数安全计算方法可以大幅提高通信效率。
[0218]
综上所述,本实施例提供一种归一化指数函数安全计算方法,根据归一化指数函数的待计算输入序列生成第一输入序列和第二输入序列,并且根据待计算输入序列生成第一输入序列和第二输入序列的公式中可以有多组解,将第一输入序列和第二输入序列分别
分给第一计算终端和第二计算终端进行计算,在计算过程中,第一计算终端和第二计算终端之间传输的信息,都是根据随机数运算得到的,从而使得每个计算终端在计算过程中接收到的信息都是随机均匀分布的,计算终端无法根据接收到的信息来倒推得到真实的数据,从而避免了原始数据泄露,保证了数据的安全性。
[0219]
应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0220]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synch l i nk)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0221]
实施例二
[0222]
基于上述实施例,本发明还相应提供了一种归一化指数函数安全计算系统,所述系统包括第一计算终端和第二计算终端,所述第一计算终端和所述第二计算终端用于执行实施例一中归一化指数函数安全计算方法中的相关步骤。
[0223]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献