一种基于函数秘密共享的神经网络训练推理方法和系统技术方案

技术编号:39895361 阅读:11 留言:0更新日期:2023-12-30 13:08
本发明专利技术公开了一种基于函数秘密共享的神经网络训练推理方法和系统,通过利用函数秘密共享等密码学技术,将机器学习的训练与推理过程分解为与输入相关的在线阶段和与输入无关的离线阶段,通过在预处理时生成后续计算所需的相关随机值,将繁重的加密计算转移到了离线阶段,不仅在线阶段的所有线性操作都可以直接在秘密共享的数据上执行,无需调用同态加密等繁重的加密工具或进行频繁的交互过程,而且大大降低了机器学习的在线阶段在计算

【技术实现步骤摘要】
一种基于函数秘密共享的神经网络训练推理方法和系统


[0001]本专利技术涉及一种基于函数秘密共享的神经网络训练推理方法和系统,属于机器学习与隐私计算



技术介绍

[0002]在当今的信息时代,机器学习已经成为各个领域中不可或缺的一部分,数据和模型作为机器学习的核心要素,对于模型的训练和推理过程起着至关重要的作用

然而,在实际应用中,数据和模型的使用也引发了一系列隐私问题,特别是在外包计算场景下,机器学习的训练和推理过程可能导致严重的隐私泄露风险,这成为了一个亟待解决的挑战

在外包计算中,模型的训练和推理过程往往需要将敏感数据或模型参数发送给其他参与方,这可能导致用户的个人隐私数据以及模型拥有者的模型信息在传输过程中遭受泄露的风险,尤其在涉及医疗数据

金融数据等敏感领域更加严峻,因为数据泄露可能会带来严重的法律和道德问题

[0003]为了解决这一问题,已有许多技术方案通过引入密码学技术来对机器学习过程进行隐私保护,特别是同态加密和安全多方计算等技术

[0004]同态加密技术允许在加密状态下进行计算,以达到不暴露原始数据和模型参数的目的

然而,同态加密的计算成本会随着方案所支持的电路深度的增加而急剧增长,神经网络训练本身作为一种计算密集型任务,使用同态加密会进一步增加计算负担,导致训练时间显著延长,使其实际上实现困难,因此不考虑使用同态加密技术实现对于神经网络模型的训练与推理

[0005]安全多方计算允许多个参与方在无需共享私密数据的情况下完成协作计算,且各方只能看到最终的计算结果,而不会获知其他参与方的私密数据

目前的安全多方计算方案常使用混淆电路技术,来实现对神经网络中非线性函数的隐私计算,虽然这些方案在安全性方面取得了一定的成果,但仍存在许多缺点,例如,计算成本昂贵,在混淆电路中计算非线性函数时需要将其分解为二进制的门电路,并按位进行加密计算,这使得其对计算和存储资源受限的设备很不友好;外包计算过程中需要进行大量的通信交互,会增加整体的延迟和负担

[0006]因此本专利技术使用函数秘密共享
(FSS)
计算神经网络中的非线性激活函数,以替换混淆电路技术,在保证方案安全性的同时,提升神经网络的训练与推理过程的整体性能

[0007]函数秘密共享针对一类特定的计算函数,其中函数的参数信息是秘密的,而输入该函数的数据则是公开的,通过在秘密共享的函数上应用公开的输入数据,以达到对分布式数据的隐私保护

函数秘密共享通过在离线阶段生成与输入独立的相关随机值,极大地降低了在线阶段计算复杂函数时的通信开销,从而能将安全多方计算的在线开销转移到了离线阶段和本地计算上

因此,亟需提出一种基于函数秘密共享的神经网络训练及推理训练与推理方法,以实现在保证机器学习安全性的同时,降低模型训练与数据评估时的在线计算与通信开销


技术实现思路

[0008]为了解决上述问题,本专利技术提供了一种轻量级的基于函数秘密共享的神经网络训练及推理方法,以实现安全

低成本的机器学习训练与推理

[0009]为解决上述技术问题,本专利技术所采用的技术方案如下:
[0010]一种基于函数秘密共享的神经网络训练方法,在保护数据隐私的前提下,允许客户端委托计算任务给第三方进行处理,包括离线阶段和在线阶段:
[0011]离线阶段:
[0012]辅助方在离线阶段预先生成用于后续在线计算所需的随机值;
[0013]在线阶段:
[0014]客户端准备

并预处理训练数据,然后将预处理好的训练数据以复制秘密共享的形式分发给服务器端;
[0015]服务器端接收到预处理好的训练数据,利用安全多方计算方法执行机器学习的训练过程

并利用随机值隐藏计算的中间结果;
[0016]训练结束后,服务器端将训练好的模型发送回客户端,由客户端进行重构,得到完整的神经网络模型,以保证模型的安全性,方便后续的推理和使用过程

[0017]上述客户端通过数据预处理技术对原始训练数据进行预处理,以确保数据的质量和可用性

[0018]本专利技术提出的一种基于函数秘密共享的神经网络训练方法,为了提升隐私保护机器学习系统的整体效率,将机器学习的训练过程分成了独立于数据的离线阶段和依赖于数据的在线阶段,将一些繁重的加密操作转移到离线阶段,从而显著降低计算非线性函数的巨大开销

其中离线阶段用于生成在线协议所需的预处理材料,即生成各种安全算子
(

ReLU
函数
)
的相关随机值,以便于在线阶段利用分配到的随机值进行各种线性或非线性操作计算

[0019]为了提升模型的性能,上述基于函数秘密共享的神经网络训练方法,还包括:服务器端使用验证集或测试集评估神经网络模型,确保外包训练后的模型达到预期的性能水平

[0020]本专利技术主要关注于卷积神经网络
(CNN)
等深度学习模型,
CNN
的一般结构包括卷积层

池化层

激活函数和全连接层等组件

卷积层是
CNN
的核心组件,使用卷积操作对输入图像进行特征提取

卷积操作涉及将卷积核矩阵与输入数据的元素邻域进行点积计算,通过在局部区域内滑动卷积核,逐步遍历整个输入数据,从而检测图像中的各种特征

假设输入矩阵
X
和卷积核矩阵
W
的大小分别是
n
×
n

w
×
w
,使用
U
表示卷积操作的结果,则结果矩阵
U
的大小为
(n

w+1)
×
(n

w+1)
,二维卷积的元素计算方式可以表示为:其中
j,k

0,

,n

w。
在卷积层之后,通常会应用一个非线性激活函数,以增加网络的非线性能力,例如常用的
ReLU
激活函数
f(x)

max(x,0)。
随后,使用池化层降低特征图的尺寸,减少需要学习的参数数量和计算量,例如最大池化操作
MaxPool(x0,

,x
k
‑1)

max
k
(x0,

,x
k
‑1)
,它通过从局部区域中选择最大值作为池化结果
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于函数秘密共享的神经网络训练方法,其特征在于:在保护数据隐私的前提下,允许客户端委托计算任务给第三方进行处理,包括离线阶段和在线阶段:离线阶段:辅助方在离线阶段预先生成用于后续在线计算所需的随机值;在线阶段:客户端准备

并预处理训练数据,然后将预处理好的训练数据以复制秘密共享的形式分发给服务器端;服务器端接收到预处理好的训练数据,利用安全多方计算方法执行机器学习的训练过程

并利用随机值隐藏计算的中间结果;训练结束后,服务器端将训练好的模型发送回客户端,由客户端进行重构,得到完整的神经网络模型
。2.
如权利要求1所述的基于函数秘密共享的神经网络训练方法,其特征在于:在线阶段还包括:服务器端使用验证集或测试集评估神经网络模型
。3.
如权利要求1或2所述的基于函数秘密共享的神经网络训练方法,其特征在于:服务器端由三台计算服务器提供计算服务,客户端将预处理好的训练数据分成三个份额,以复制秘密共享的形式分发给三台服务器;训练结束后,三个计算服务器将训练好的模型发送回客户端,由客户端进行重构,得到完整的神经网络模型
。4.
如权利要求3所述的基于函数秘密共享的神经网络训练方法,其特征在于:辅助方为各个计算服务器创建并发送一个随机的
PRG
种子,计算服务器使用接收到的
PRG
种子在本地生成与辅助方相同的随机值
。5.
如权利要求1或2所述的基于函数秘密共享的神经网络训练方法,其特征在于:利用安全多方计算方法执行机器学习的训练过程,包括前向传播过程和反向传播过程,前向传播过程由线性操作和非线性操作交替构成,线性操作包括全连接层的矩阵乘法操作和卷积层的卷积操作,非线性操作包括激活函数,反向传播过程通过利用激活函数的导数和矩阵乘法操作来完成对权重的更新
。6.
一种基于函数秘密共享的神经网络训练系统,其特征在于:包括:客户端

服务器端和辅助方;客户端,即数据拥有者,用于准备

并预处理训练数据,然后将预处理好的训练数据以复制秘密共享的形式分发给服务器端训练模型,训练结束后,客户端接受服务器端发送回的训练好的模型

并进行重构,得到完整的神经网络模型;服务器端,即计算服务器,负责接收客户端以复制秘密共享的形式分发的预处理好的训练数据,利用安全多方计算方法执行机器学习的训练过程

并利用随机值隐藏计算的中间结果,训练结束后,服务器端再将训练好的模型发送回客户端...

【专利技术属性】
技术研发人员:关志涛刘苏漫李轩安宁钰梁潇
申请(专利权)人:国网智能电网研究院有限公司国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1