用于降低神经网络同态计算误差的数据处理系统及数据处理方法
未命名
10-18
阅读:132
评论:0
1.本发明涉及一种大数据的处理系统,具体涉及一种用于降低神经网络同态计算误差的数据处理系统。本发明还涉及一种用于降低神经网络同态计算误差的数据处理方法。
背景技术:
2.随着大数据和人工智能技术的发展,越来越多的企业运用各种基于人工智能技术的数据挖掘与分析方法来对企业的运营管理进行改进,通过挖掘数据中的模式和信息来创造商业价值,使企业可以更好地组织生产和更精准地进行营销。但是,由于很多企业自身并不具备进行数据挖掘和分析的技术能力和软硬件环境,因此一些相关的挖掘与分析活动需要交由第三方进行,甚至在云平台上进行。这在很大程度上增加了企业的敏感运营数据的泄漏风险。因此,数据的隐私保护技术应运而生,这类技术的运用能够在进行数据分析的同时,保护数据的机密性,降低敏感数据的泄漏风险。
3.同态加密是一种基础性的数据隐私保护技术。经过同态加密的数据,能够在密文状态下进行与明文相同的特定代数运算,因而可以实现“数据可算不可见”,从而避免数据的泄漏。但是,现有的同态加密方案仅支持加法和乘法运算,对于神经网络模型中的某些运算,例如非线性激活函数的计算,通常不能直接在同态加密数据上进行,往往只能采取一些能够在同态运算上进行的计算来代替。例如,cryptnet(密态神经网络)运用平方激活函数来代替常见的激活函数如logistic函数。这是由于平方激活函数具有非线性且次数较低的特点,易于进行同态计算。但平方激活函数不利于模型的训练,因此,与等价的明文的神经网络相比,其拟合或者分类能力通常稍差。
4.为了减少神经网络模型进行同态计算的误差并提升模型的拟合及分类性能,可以采用运用多项式逼近的激活函数的方法。例如,cryptdl(密态深度学习)运用多项式逼近的方式来实现激活函数的近似计算,达到了比cryptnet(密态神经网络)更准确的分类效果。另外,有学者用加权的最小二乘法拟合激活函数,也实现了较好的逼近激活函数的效果。但是,由于在对激活函数进行多项式逼近计算时,不可避免地会产生逼近误差。而逼近误差会在神经网络的各层的计算中发生传递和叠加,最后形成难以用解析方式表示的复杂误差模式。而这些误差最终会导致模型性能的劣化,使得对于给定的分类或拟合问题,密文神经网络的性能要劣于对应的明文神经网络的性能。
5.目前,提高神经网络同态计算的精度通常可以采用以下方法:
6.第一,通过提高逼近多项式的阶数,以减小逼近误差。但是,提高多项式阶数一方面会使得所需的乘法深度加大,另一方面也增加了龙格现象的风险。
7.第二,batching normal(批量标准化)也是有利于提高神经网络同态计算精度的方法,其基本原理是对每一层的输入数据都处理为标准正态分布数据,使得对后续神经元的输入数据的分布位于激活函数的比较理想的逼近区间。
8.第三,通过安全多方计算的机制,通过客户端的配合来把不便于进行同态计算的
部分放到客户端来进行,也是一种常见的改善和简化神经网络同态计算的方法。但这种方式需要客户端配合,并且与客户端交互较多,往往会影响计算性能。
9.以上这些方法在密文上进行神经网络的同态计算时,基本沿用了明文神经网络的结构,仅仅对明文神经网络中不适合进行同态计算的若干环节进行了相应改进。但是,由于同态密文神经网络计算的误差来源比较复杂,包括逼近误差、同态计算误差、以及各种误差在神经网络中的传播引起的误差的模式和尺度的改变,通过优化单独某个环节来进一步减小误差并提升模型性能会比较困难。
技术实现要素:
10.本发明所要解决的技术问题是提供一种用于降低神经网络同态计算误差的数据处理系统,它可以提高神经网络进行同态计算的精度,减小神经网络密文计算与明文计算之间的差异,以使得同态计算神经网络的拟合及分类能力与其对应的明文模型尽可能接近。
11.为解决上述技术问题,本发明用于降低神经网络同态计算误差的数据处理系统的技术解决方案为:
12.包括明文神经网络模块、密文神经网络模块、同态密文解密模块、误差校正层训练数据搜集模块、误差校正层训练模块和误差校正模块,明文神经网络模块包括能够根据输入的明文数据进行训练的明文神经网络;密文神经网络模块包括密文神经网络,密文神经网络采用适合在同态密文上进行计算的多项式逼近的激活函数;同态密文解密模块的输入端连接密文神经网络模块的密文神经网络输出层,用于对密文神经网络的输出进行解密,以便对误差校正层进行训练;误差校正层训练数据搜集模块的输入端连接明文神经网络模块的明文神经网络输出层,以及同态密文解密模块的输出端;用于搜集明文神经网络和同态密文神经网络的输出数据作为训练数据,这些数据将用于误差校正层训练模块的训练;误差校正层训练模块的输入端连接误差校正层训练数据搜集模块的输出端;利用误差校正层训练数据搜集模块输出的训练数据,采用多项式函数来拟合;误差校正模块包括同态计算误差修正层,同态计算误差修正层的输入端连接误差校正层训练模块的输出端,同态计算误差修正层对神经网络同态密文计算的误差进行修正;同态计算误差修正层的输出端连接密文神经网络模块的密文神经网络输出层;同态计算误差修正层的输出端的输出为同态密文神经网络的最终输出。
13.在另一实施例中,所述误差校正层训练模块运用基于多项式的函数逼近方法来拟合yi与yi′
的关系;则:
14.yi=φ(xi)
15.其中,yi是指明文模型根据数据集中第i输入向量xi的输出,向量xi属于给定的数据集x={x1,x2,
…
,xn},该数据集用来训练误差校正模块;
16.φ(
·
)为用来描述明文神经网络模型计算过程的函数;
17.ci=φ
he
(xi)
18.其中,φ
he
(
·
)为与φ(
·
)等价的进行同态计算的同态密文计算神经网络模型;
19.ci为yi′
对应的密文;
20.yi′
是指与明文模型等价的密文模型的输出并经过解密后的明文结果,即;
21.yi≈yi′
=dec
sk
(ci)
22.将上述符号简化,在不考虑下标i的情况下,c为同态计算模型对于给定的数据集x所输出的密文结果,对其进行解密,则得到最终的经过同态计算模型产生的明文结果y
′
;
23.dec
sk
(
·
)表示解密运算;
24.则yi与yi′
的误差为:
25.‖e
he
‖=‖y-y
′
‖=‖y-dec
sk
(c)‖
26.其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的同态计算误差。
27.在另一实施例中,所述明文神经网络包括依次连接的明文神经网络输入层、明文神经网络隐藏层、明文神经网络输出层;明文神经网络输入层用于输入给定的输入数据集,明文神经网络输出层用于获得明文神经网络的输出数据集;
28.在另一实施例中,所述密文神经网络包括依次连接的密文神经网络输入层、密文神经网络隐藏层、密文神经网络输出层;密文神经网络具有与明文神经网络相同的网络结构和权重参数;密文神经网络输入层用于输入与明文神经网络相同的输入数据集,密文神经网络输出层用于获得密文神经网络的输出数据集,该密文神经网络的输出数据集为密文状态;
29.所述密文神经网络根据与所述明文神经网络相同的输入,利用多项式逼近的方法来近似计算明文神经网络中的激活函数,输出与明文神经网络等价的密文状态的结果。
30.在另一实施例中,所述误差校正模块将所述误差校正层训练模块所拟合的多项式误差校正函数运用到密文神经网络误差校正层,来对同态密文神经网络输出层的输出数据进行误差校正计算。
31.在另一实施例中,所述同态计算误差修正层采用误差校正函数g(
·
);则
32.‖e
he
′
‖=||y-dec
sk
(g(c))‖
33.‖e
he
′
‖《‖e
he
‖
34.其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的误差;
35.e
he
′
表示经过误差修正之后的误差,则修正之后的误差小于修正之前的误差。
36.在另一实施例中,所述误差校正函数g(
·
)采用如下的多项式函数pn(x):
37.pn(x)=anxn+a
n-1
x
n-1
+...+a1x+a038.其中,多项式系数ai通过误差校正层训练模块采用多项式函数拟合获得。
39.在另一实施例中,所述多项式函数pn(x)为使得如下表达式所示的误差最小化的多项式:
[0040][0041]
其中,yi为明文模型输出,
[0042]
pn为用于误差校正的n阶多项式函数,
[0043]
向量xi属于给定的数据集x={x1,x2,
…
,xn},为该数据集中的第i个输入向量,
[0044]ci
为对于给定的输入xi,同态计算神经网络输出层的密文输出,
[0045]
dec
sk
(
·
)为同态解密运算,
[0046]
e2为总体误差项,即数据集中各元素的误差的平方和;
[0047]
或者,所述多项式函数pn(x)为如下所示的切比雪夫多项式:
[0048]
tn(x)=cos(n
·
arccosx);
[0049]
其中,n为切比雪夫多项式的阶数;
[0050]
与切比雪夫多项式对应的权函数w(x)为:
[0051]
w(x)=(1-x2)-1/2
。
[0052]
在另一实施例中,所述同态计算误差修正层的输出为:
[0053][0054]
其中,n为前一层神经元数量,
[0055]
f(
·
)代表输出层激活函数,
[0056]a′
为同态计算误差修正层的输出值,
[0057]
z代表上一层净输入值,
[0058][0059]
wi为连接权重,
[0060]
xi为神经元输入,xi属于给定的数据集x={x1,x2,
…
,xn},
[0061]
b为偏置参数,
[0062]
为通过训练得到的最优误差校正n阶多项式函数。
[0063]
本发明还提供一种用于降低神经网络同态计算误差的数据处理方法,其技术解决方案为,包括以下步骤:
[0064]
步骤1,训练明文神经网络;
[0065]
采用明文数据训练明文神经网络,得到经训练的明文神经网络;将经训练的明文神经网络作为对应的密文神经网络的基准和参考;
[0066]
步骤2,获取与明文神经网络等价的密文神经网络;
[0067]
明文神经网络经过训练后,得到经训练的明文神经网络;将该经训练的明文神经网络的模型参数作为密文神经网络的模型参数;密文神经网络采用多项式逼近的激活函数;
[0068]
步骤3,获得明文神经网络的输出;
[0069]
利用给定的输入数据集,来获得明文神经网络的输出数据集;明文神经网络的输出数据集用于进行同态密文计算的误差校正;
[0070]
步骤4,获得密文神经网络的输出;
[0071]
利用与步骤3相同的输入数据集,来获得密文神经网络的输出数据集;
[0072]
步骤5,对密文数据进行解密,得到解密的密文神经网络的输出数据集;
[0073]
步骤6,拟合密文神经网络输出与明文神经网络输出的关系,得到由多项式向量系数表示的拟合多项式;
[0074]
运用多项式逼近的激活函数,拟合步骤5所获得的解密的密文神经网络的输出数据集和步骤3所获得的明文神经网络的输出数据集;
[0075]
步骤7,进行误差校正;
[0076]
利用步骤6所获得的拟合多项式,即最优误差校正多项式函数,对解密的密文神经网络的输出数据集进行计算,得到经过误差校正的密文神经网络;误差校正采用以下公式:
[0077]
pn(x)=anxn+a
n-1
x
n-1
+...+a1x+a0[0078]
其中,多项式系数ai通过步骤6获得;
[0079]
步骤8,获得经过误差校正的密文神经网络的输出;
[0080]
利用给定的输入数据集,来获得经过误差校正的密文神经网络的输出数据集;则该输出数据集为密文神经网络的最后输出;
[0081][0082]
其中,n为前一层神经元数量,
[0083]
f(
·
)代表输出层激活函数,
[0084]a′
为同态计算误差修正层的输出值,
[0085]
z代表上一层净输入值,
[0086][0087]
wi为连接权重,
[0088]
xi为神经元输入,xi属于给定的数据集x={x1,x2,
…
,xn},
[0089]
b为偏置参数,
[0090]
为通过训练得到的最优误差校正n阶多项式函数。
[0091]
在另一实施例中,所述步骤6中的拟合方法采用如下所示的误差项:
[0092][0093]
其中,yi为明文模型输出,
[0094]
pn为用于误差校正的n阶多项式函数,
[0095]
向量xi属于给定的数据集x={x1,x2,
…
,xn},为该数据集中的第i个输入向量,
[0096]ci
为对于给定的输入xi,同态计算神经网络输出层的密文输出,
[0097]
dec
sk
(
·
)为同态解密运算,
[0098]
e2为总体误差项,即数据集中各元素的误差的平方和;
[0099]
或者,所述步骤6中的拟合方法采用如下所示的切比雪夫多项式进行逼近:
[0100]
tn(x)=cos(n
·
arccosx);
[0101]
其中,n为切比雪夫多项式的阶数;
[0102]
与切比雪夫多项式对应的权函数w(x)为:
[0103]
w(x)=(1-x2)-1/2
。
[0104]
本发明可以达到的技术效果是:
[0105]
本发明通过对现有的典型的同态计算神经网络的结构进行改进,在密文神经网络的输出层之后再添加一层误差修正层,该层的作用是通过进行与误差模式相反的逆运算,来降低由于多项式逼近激活函数等因素而导致的误差,从而提高神经网络进行同态计算的
精度。
[0106]
本发明通过误差校正模块对密文神经网络输出层的输出进行校正,以降低误差;同态计算误差修正层的输出为密文神经网络的最终输出。
[0107]
本发明具有计算量较小、能够在密文上进行修正、不需要客户端参与计算,并且模型具有可解释性等优点。
附图说明
[0108]
本领域的技术人员应理解,以下说明仅是示意性地说明本发明的原理,所述原理可按多种方式应用,以实现许多不同的可替代实施方式。这些说明仅用于示出本发明的教导内容的一般原理,不意味着限制在此所公开的发明构思。
[0109]
结合在本说明书中并构成本说明书的一部分的附图示出了本发明的实施方式,并且与上文的总体说明和下列附图的详细说明一起用于解释本发明的原理。
[0110]
下面结合附图和具体实施方式对本发明作进一步详细的说明:
[0111]
图1是本发明用于降低神经网络同态计算误差的数据处理系统的示意图;
[0112]
图2是本发明用于降低神经网络同态计算误差的数据处理方法的流程示意图;
[0113]
图3是采用本发明进行误差校正前后的效果比对示意图。
具体实施方式
[0114]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
[0115]
如图1所示,本发明用于降低神经网络同态计算误差的数据处理系统,包括明文神经网络模块、密文神经网络模块、同态密文解密模块、误差校正层训练数据搜集模块、误差校正层训练模块、误差校正模块;
[0116]
明文神经网络模块包括能够根据输入的明文数据进行训练的明文神经网络;经过训练的明文神经网络作为对应的同态密文神经网络的基准和参考;明文神经网络为现有技术,此处不再赘述;
[0117]
明文神经网络包括依次连接的明文神经网络输入层、明文神经网络隐藏层、明文神经网络输出层;明文神经网络输入层用于输入给定的输入数据集,明文神经网络输出层用于获得明文神经网络的输出数据集;
[0118]
密文神经网络模块包括密文神经网络,密文神经网络采用适合在同态密文上进行计算的多项式逼近的激活函数;
[0119]
密文神经网络包括依次连接的密文神经网络输入层、密文神经网络隐藏层、密文
神经网络输出层;密文神经网络具有与明文神经网络相同的网络结构和权重参数;密文神经网络输入层用于输入与明文神经网络相同的输入数据集,密文神经网络输出层用于获得密文神经网络的输出数据集,该密文神经网络的输出数据集为密文状态;则密文神经网络根据同样的输入,利用多项式逼近的方法来近似计算明文神经网络中的激活函数,能够输出与明文神经网络等价的密文状态的结果;
[0120]
同态密文解密模块,其输入端连接密文神经网络模块的密文神经网络输出层,用于对密文神经网络的输出进行解密,以便对误差校正层进行训练;
[0121]
误差校正层训练数据搜集模块,其输入端连接明文神经网络模块的明文神经网络输出层,以及同态密文解密模块的输出端;用于搜集明文神经网络和同态密文神经网络的输出数据作为训练数据,这些数据将用于误差校正层训练模块的训练;
[0122]
误差校正层训练模块,其输入端连接误差校正层训练数据搜集模块的输出端;利用误差校正层训练数据搜集模块输出的训练数据,采用给定的多项式函数来拟合;
[0123]
误差校正层训练模块运用基于多项式的函数逼近方法来拟合yi与yi′
的关系;
[0124]
yi是指明文模型根据数据集中第i输入向量xi的输出,yi′
是指与明文模型等价的密文模型的输出并经过解密后的明文结果;则:
[0125]
yi=φ(xi)
[0126]
其中,向量xi属于给定的数据集x={x1,x2,
…
,xn},该数据集用来训练误差校正模块;
[0127]
φ(
·
)为用来描述明文神经网络模型计算过程的函数;
[0128]ci
=φ
he
(xi)
[0129]
其中,φ
he
(
·
)为与φ(
·
)等价的进行同态计算的同态密文计算神经网络模型;
[0130]ci
为yi′
对应的密文,即:
[0131]
yi≈yi′
=dec
sk
(ci)
[0132]
将上述符号简化,在不考虑下标i的情况下,c为同态计算模型对于给定的数据集x所输出的密文结果,对其进行解密,则得到最终的经过同态计算模型产生的明文结果y’;
[0133]
dec
sk
(
·
)表示解密运算。
[0134]
理想情况下,密文模型的计算过程应当是明文模型的计算过程在同态密文上的完美复现。在无计算误差的情况下,应当有yi=yi′
,即满足f(x)=x。
[0135]
但由于逼近误差以及误差的传播,实际上yi≠yi′
,并且二者往往存在非线性关系,该误差可以用如下表达式描述:
[0136]
‖e
he
‖=‖y-y
′
‖=‖y-dec
sk
(c)‖
[0137]
其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的同态计算误差;
[0138]
本发明的误差校正层训练模块的训练即在函数空间中找到误差校正函数g(
·
),即yi=g(yi′
),以使得||y
i-dec
sk
(g(ci))||最小化的过程;即该函数能将同态计算模型φ
he
(
·
)的输出域映射到原始的明文计算模型φ(
·
)的输出域,并使得密文模型的结果尽可能逼近明文模型的结果,从而能够实现误差的修正。
[0139]
误差校正模块包括同态计算误差修正层,同态计算误差修正层的输入端连接误差校正层训练模块的输出端,同态计算误差修正层对神经网络同态密文计算的误差进行修
正;同态计算误差修正层的输出端连接密文神经网络模块的密文神经网络输出层;同态计算误差修正层的输出端的输出为同态密文神经网络的最终输出。
[0140]
同态计算误差修正层能够对由各种因素引起的神经网络同态密文计算的误差进行修正,从而起到减小计算误差,改善模型性能的作用;误差校正模块将误差校正层训练模块所拟合的多项式误差校正函数运用到密文神经网络误差校正层,来对同态密文神经网络输出层的输出数据进行误差校正计算;
[0141]
同态计算误差修正层采用误差校正函数g(
·
),如果误差校正函数g(
·
)能满足如下条件,则g(
·
)称为有效的误差修正层;如果有函数g
*
(
·
),经过其修正之后的误差比经过该函数空间中的其他函数修正之后的误差都要小,则称该函数g
*
(x)为最优误差修正函数;则
[0142]
‖e
he
′
‖=||y-dec
sk
(g(c))||
[0143]
‖e
he
′
‖《‖e
he
‖
[0144]
其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的误差;
[0145]ehe
′
表示经过误差修正之后的误差,即要求修正之后的误差小于修正之前的误差。
[0146]
由于ci处于密文状态,因此函数g(
·
)必须能支持同态计算,即仅需要运用加法和乘法即可完成计算;
[0147]
满足该条件的g(
·
)函数可以是一元实系数多项式函数pn9x)(简称多项式函数)。一元实系数多项式函数是如下形式的函数:
[0148]
pn(x)=anxn+a
n-1
x
n-1
+...+a1x+a0[0149]
其中,其中,为实数集;
[0150]
因为多项式函数pn(x)只需要进行加法和乘法运算,因而适合进行同态密文的计算。如果以多项式函数作为同态计算的误差校正函数,根据同态计算的性质,则该误差校正层的学习过程即为在多项式函数空间中找到最优多项式误差校正函数来对yi和yi′
进行多项式逼近的过程,具体方法可以根据用户需求和指定的参数,运用多项式最小二乘法以及切比雪夫多项式逼近。
[0151]
多项式最小二乘法逼近是一种能够最小化总体误差的逼近方式,具体来说,采用如下所示的误差项:
[0152][0153]
其中,yi为明文模型输出,
[0154]
pn为用于误差校正的n阶多项式函数,
[0155]
向量xi属于给定的数据集x={x1,x2,
…
,xn},为该数据集中的第i个输入向量,
[0156]ci
为对于给定的输入xi,同态计算神经网络输出层的密文输出,
[0157]
dec
sk
(
·
)为同态解密运算,
[0158]
e2为总体误差项,即数据集中各元素的误差的平方和。
[0159]
第一类切比雪夫多项式(以下简称切比雪夫多项式)tn(x),为在区间[-1,1]上关于权函数w(x)的正交多项式;运用切比雪夫多项式逼近可以将最大误差最小化;
[0160]
w(x)=(1-x2)-1/2
[0161]
tn(x)=cos(n
·
arccosx);
[0162]
则误差校正模块的输出为:
[0163][0164]
其中,n为前一层神经元数量,
[0165]
f(
·
)代表激活函数,
[0166]a′
为同态计算误差修正层的输出值,
[0167]
z代表上一层净输入值,
[0168][0169]
wi为连接权重,
[0170]
xi为神经元输入,xi属于给定的数据集x={x1,x2,
…
,xn},
[0171]
b为偏置参数,
[0172]
为通过训练得到的最优误差校正n阶多项式函数。
[0173]
如图2所示,本发明用于降低神经网络同态计算误差的数据处理方法,包括以下步骤:
[0174]
步骤1,训练明文神经网络;
[0175]
采用明文数据训练明文神经网络,得到经训练的明文神经网络;将经训练的明文神经网络作为对应的密文神经网络的基准和参考;采用明文数据训练明文神经网络的方法为现有技术,此处不再赘述;
[0176]
步骤2,获取与明文神经网络等价的密文神经网络;
[0177]
明文神经网络经过训练后,得到经训练的明文神经网络;将该经训练的明文神经网络的模型参数,如各层的权重矩阵等,作为密文神经网络的模型参数;则密文神经网络具有与明文神经网络相同的网络结构和权重参数,且密文神经网络采用适合在同态密文上进行计算的多项式逼近的激活函数;
[0178]
步骤3,获得明文神经网络的输出;
[0179]
利用给定的输入数据集,来获得明文神经网络的输出数据集;明文神经网络的输出数据集用于进行同态密文计算的误差校正;
[0180]
步骤4,获得密文神经网络的输出;
[0181]
利用与步骤3相同的输入数据集,来获得密文神经网络的输出数据集;
[0182]
步骤5,对密文数据进行解密,得到解密的密文神经网络的输出数据集;
[0183]
由于步骤4所获得的密文神经网络的输出数据集是处于加密状态的密文数据,因此在使用该数据来训练误差校正函数前需要对该数据集进行解密处理;解密运算为输入到同态密文神经网络的密文数据所采取的加密运算的逆,可以采用现有同态加密方案的解密运算,此处不再赘述;
[0184]
步骤6,拟合密文神经网络输出与明文神经网络输出的关系,得到由多项式向量系数表示的拟合多项式;
[0185]
运用多项式逼近的激活函数,拟合步骤5所获得的解密的密文神经网络的输出数
据集和步骤3所获得的明文神经网络的输出数据集;
[0186]
其中,解密的密文神经网络的输出数据集中的密文数据为自变量,明文神经网络的输出数据集中的数据为应变量;
[0187]
具体的拟合方法可以采用多项式的最小二乘法拟合、切比雪夫多项式拟合等;
[0188]
多项式最小二乘法逼近方式,采用如下所示的误差项:
[0189][0190]
其中,yi为明文模型输出,
[0191]
pn为用于误差校正的n阶多项式函数,
[0192]
向量xi属于给定的数据集x={x1,x2,
…
,xn},为该数据集中的第i个输入向量,
[0193]ci
为对于给定的输入xi,同态计算神经网络输出层的密文输出,
[0194]
dec
sk
(
·
)为同态解密运算,
[0195]
e2为总体误差项,即数据集中各元素的误差的平方和。
[0196]
切比雪夫多项式tn(x)采用如下公式:
[0197]
tn(x)=cos(n
·
arccosx);
[0198]
其中,n为切比雪夫多项式的阶数;
[0199]
与切比雪夫多项式对应的权函数w(x)为:
[0200]
w(x)=(1-x2)-1/2
。
[0201]
本发明步骤6的核心功能是获得用系数向量a=(an,a
n-1
,
…
,a1,a0)表示的最优误差校正多项式函数
[0202]
步骤7,进行误差校正;
[0203]
利用步骤6所获得的拟合多项式,即最优误差校正多项式函数,对解密的密文神经网络的输出数据集进行计算,得到经过误差校正的密文神经网络;误差校正采用以下公式:
[0204][0205]
其中,多项式系数ai通过步骤6获得;
[0206]
步骤8,获得经过误差校正的密文神经网络的输出;
[0207]
利用给定的输入数据集,来获得经过误差校正的密文神经网络的输出数据集;则该输出数据集为密文神经网络的最后输出;
[0208][0209]
其中,n为前一层神经元数量,
[0210]
f(
·
)代表输出层激活函数,
[0211]a′
为同态计算误差修正层的输出值,
[0212]
z代表上一层净输入值,
[0213][0214]
wi为连接权重,
[0215]
xi为神经元输入,xi属于给定的数据集x={x1,x2,
…
,xn},
[0216]
b为偏置参数,
[0217]
为通过训练得到的最优误差校正n阶多项式函数。
[0218]
图3显示了某项运用同态加密神经网络回归器进行算力费用时间序列分析的研究中加入同态计算误差修正层前后效果对比。其中,蓝色散点代表进行误差修正之前的数值,红色散点代表误差修这个之后的数值;可以看出,在加入误差修正层之后,红色散点比之前的蓝色散点更接近f(x)=x,即误差更小。
[0219][0220]
表1
[0221]
表1给出了关于该研究中的相对对比模型的具体性能指标。在该研究中,与明文多层感知器模型相比,由于同态计算的误差等因素,进行同态运算的密文多层感知器模型的性能指标有比较明显的劣化,在用本发明的方法,在密文多层感知器模型中引入了误差校正层进行误差修正计算之后,模型性能指标得到一定改善,尽管仍然低于最初的明文多层感知器模型的性能,但劣化得到了有效缓解。可见,本发明对于减小特定类型神经网络模型的同态计算的误差有明显效果。
[0222]
显然,本领域的技术人员可以对本发明进行各种改动和变形,而不脱离本发明的精神和范围。这样,倘若本发明的这些修改属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变形在内。
技术特征:
1.一种用于降低神经网络同态计算误差的数据处理系统,其特征在于,包括:明文神经网络模块,明文神经网络模块包括能够根据输入的明文数据进行训练的明文神经网络;密文神经网络模块,密文神经网络模块包括密文神经网络,密文神经网络采用适合在同态密文上进行计算的多项式逼近的激活函数;同态密文解密模块,其输入端连接密文神经网络模块的密文神经网络输出层,用于对密文神经网络的输出进行解密,以便对误差校正层进行训练;误差校正层训练数据搜集模块,其输入端连接明文神经网络模块的明文神经网络输出层,以及同态密文解密模块的输出端;用于搜集明文神经网络和同态密文神经网络的输出数据作为训练数据,这些数据将用于误差校正层训练模块的训练;误差校正层训练模块,其输入端连接误差校正层训练数据搜集模块的输出端;利用误差校正层训练数据搜集模块输出的训练数据,采用多项式函数来拟合;误差校正模块,包括同态计算误差修正层,同态计算误差修正层的输入端连接误差校正层训练模块的输出端,同态计算误差修正层对神经网络同态密文计算的误差进行修正;同态计算误差修正层的输出端连接密文神经网络模块的密文神经网络输出层;同态计算误差修正层的输出端的输出为同态密文神经网络的最终输出。2.根据权利要求1所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述误差校正层训练模块运用基于多项式的函数逼近方法来拟合y
i
与y
i
′
的关系;则:y
i
=φ(x
i
)其中,y
i
是指明文模型根据数据集中第i输入向量x
i
的输出,向量x
i
属于给定的数据集x={x1,x2,...,x
n
},该数据集用来训练误差校正模块;φ(
·
)为用来描述明文神经网络模型计算过程的函数;c
i
=φ
he
(x
i
)其中,φ
he
(
·
)为与φ(
·
)等价的进行同态计算的同态密文计算神经网络模型;c
i
为y
i
′
对应的密文;y
i
′
是指与明文模型等价的密文模型的输出并经过解密后的明文结果,即;y
i
≈y
i
′
=dec
sk
(c
i
)将上述符号简化,在不考虑下标i的情况下,c为同态计算模型对于给定的数据集x所输出的密文结果,对其进行解密,则得到最终的经过同态计算模型产生的明文结果y
′
;dec
sk
(
·
)表示解密运算;则y
i
与y
i
′
的误差为:||e
he
‖=||y-y
′
‖=||y-dec
sk
(c)‖其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的同态计算误差。3.根据权利要求1所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述明文神经网络包括依次连接的明文神经网络输入层、明文神经网络隐藏层、明文神经网络输出层;明文神经网络输入层用于输入给定的输入数据集,明文神经网络输出层用于获得明文神经网络的输出数据集;和/或,所述密文神经网络包括依次连接的密文神经网络输入层、密文神经网络隐藏
层、密文神经网络输出层;密文神经网络具有与明文神经网络相同的网络结构和权重参数;密文神经网络输入层用于输入与明文神经网络相同的输入数据集,密文神经网络输出层用于获得密文神经网络的输出数据集,该密文神经网络的输出数据集为密文状态;所述密文神经网络根据与所述明文神经网络相同的输入,利用多项式逼近的方法来近似计算明文神经网络中的激活函数,输出与明文神经网络等价的密文状态的结果。4.根据权利要求1所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述误差校正模块将所述误差校正层训练模块所拟合的多项式误差校正函数运用到密文神经网络误差校正层,来对同态密文神经网络输出层的输出数据进行误差校正计算。5.根据权利要求1所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述同态计算误差修正层采用误差校正函数g(
·
);则||e
he
′
‖=||y-dec
sk
(g(c))‖||e
he
′
‖<||e
he
‖其中,e
he
是指模型φ(
·
)和与之等价的同态计算模型φ
he
(
·
)对于给定的输入x的误差;e
he
′
表示经过误差修正之后的误差,则修正之后的误差小于修正之前的误差。6.根据权利要求5所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述误差校正函数g(
·
)采用如下的多项式函数p
n
(x):p
n
(x)=a
n
x
n
+a
n-1
x
n-1
+
…
+a1x+a0其中,多项式系数a
i
通过误差校正层训练模块采用多项式函数拟合获得。7.根据权利要求6所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述多项式函数p
n
(x)为使得如下表达式所示的误差最小化的多项式:其中,y
i
为明文模型输出,p
n
为用于误差校正的n阶多项式函数,向量x
i
属于给定的数据集x={x1,x2,...,x
n
},为该数据集中的第i个输入向量,c
i
为对于给定的输入x
i
,同态计算神经网络输出层的密文输出,dec
sk
(
·
)为同态解密运算,e2为总体误差项,即数据集中各元素的误差的平方和;或者,所述多项式函数p
n
(x)为如下所示的切比雪夫多项式:t
n
(x)=cos(n
·
arccosx);其中,n为切比雪夫多项式的阶数;与切比雪夫多项式对应的权函数w(x)为:w(x)=(1-x2)-1/2
。8.根据权利要求1所述的用于降低神经网络同态计算误差的数据处理系统,其特征在于,所述同态计算误差修正层的输出为:
其中,n为前一层神经元数量,f(
·
)代表输出层激活函数,a
′
为同态计算误差修正层的输出值,z代表上一层净输入值,w
i
为连接权重,x
i
为神经元输入,x
i
属于给定的数据集x={x1,x2,...,x
n
},b为偏置参数,为通过训练得到的最优误差校正n阶多项式函数。9.一种用于降低神经网络同态计算误差的数据处理方法,其特征在于,包括以下步骤:步骤1,训练明文神经网络;采用明文数据训练明文神经网络,得到经训练的明文神经网络;将经训练的明文神经网络作为对应的密文神经网络的基准和参考;步骤2,获取与明文神经网络等价的密文神经网络;明文神经网络经过训练后,得到经训练的明文神经网络;将该经训练的明文神经网络的模型参数作为密文神经网络的模型参数;密文神经网络采用多项式逼近的激活函数;步骤3,获得明文神经网络的输出;利用给定的输入数据集,来获得明文神经网络的输出数据集;明文神经网络的输出数据集用于进行同态密文计算的误差校正;步骤4,获得密文神经网络的输出;利用与步骤3相同的输入数据集,来获得密文神经网络的输出数据集;步骤5,对密文数据进行解密,得到解密的密文神经网络的输出数据集;步骤6,拟合密文神经网络输出与明文神经网络输出的关系,得到由多项式向量系数表示的拟合多项式;运用多项式逼近的激活函数,拟合步骤5所获得的解密的密文神经网络的输出数据集和步骤3所获得的明文神经网络的输出数据集;步骤7,进行误差校正;利用步骤6所获得的拟合多项式,即最优误差校正多项式函数,对解密的密文神经网络的输出数据集进行计算,得到经过误差校正的密文神经网络;误差校正采用以下公式:p
n
(x)=a
n
x
n
+a
n-1
x
n-1
+
…
+a1x+a0其中,多项式系数a
i
通过步骤6获得;步骤8,获得经过误差校正的密文神经网络的输出;利用给定的输入数据集,来获得经过误差校正的密文神经网络的输出数据集;则该输出数据集为密文神经网络的最后输出;其中,n为前一层神经元数量,f(
·
)代表输出层激活函数,
a
′
为同态计算误差修正层的输出值,z代表上一层净输入值,w
i
为连接权重,x
i
为神经元输入,x
i
属于给定的数据集x={x1,x2,...,x
n
},b为偏置参数,为通过训练得到的最优误差校正n阶多项式函数。10.根据权利要求9所述的用于降低神经网络同态计算误差的数据处理方法,其特征在于,所述步骤6中的拟合方法采用如下所示的误差项:其中,y
i
为明文模型输出,p
n
为用于误差校正的n阶多项式函数,向量x
i
属于给定的数据集x={x1,x2,...,x
n
},为该数据集中的第i个输入向量,c
i
为对于给定的输入x
i
,同态计算神经网络输出层的密文输出,dec
sk
(
·
)为同态解密运算,e2为总体误差项,即数据集中各元素的误差的平方和;或者,所述步骤6中的拟合方法采用如下所示的切比雪夫多项式进行逼近:t
n
(x)=cos(n
·
arccosx);其中,n为切比雪夫多项式的阶数;与切比雪夫多项式对应的权函数w(x)为:w(x)=(1-x2)-1/2
。
技术总结
本发明公开了一种用于降低神经网络同态计算误差的数据处理系统,包括明文神经网络模块、密文神经网络模块、同态密文解密模块、误差校正层训练数据搜集模块、误差校正层训练模块和误差校正模块。本发明通过对现有的典型的同态计算神经网络的结构进行改进,在密文神经网络的输出层之后再添加一层误差修正层,该层的作用是通过进行与误差模式相反的逆运算,来降低由于多项式逼近激活函数等因素而导致的误差,从而提高神经网络进行同态计算的精度。本发明还公开了一种用于降低神经网络同态计算误差的数据处理方法。误差的数据处理方法。误差的数据处理方法。
技术研发人员:陈岗 窦露
受保护的技术使用者:上海财经大学
技术研发日:2023.06.11
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
