论文学习记录20200605:隐私保护神经网络推理[USENIX2020]

DELPHI: A Cryptographic Inference Service for Neural Networks
在这里插入图片描述
DELPHI是一个安全的神经网络预测系统。
背景 :
许多公司为用户提供神经网络预测服务,比如说,家庭监控系统,使用专有的神经网络对客户家中的监控视频中的对象进行分类,例如停在用户家附近的汽车,或访客的人脸。但是,当前的预测系统损害了用户和公司中其中一方的隐私:要么用户必须将敏感输入发送给服务提供商进行分类,损害了用户的个人隐私。要么服务提供商必须将其专有的神经网络存储在用户的设备上,这会泄露服务提供商的商业机密,或者说是隐私。
作者提出的这个DELPHI,一个是在这个神经网络推理过程中可以保证两方的隐私,另一个是在性能方面比当前的工作有了很大的提高。
在这里插入图片描述
这个图是表示一些能够保护两方隐私的协议,这些协议首先对用户输入数据和服务提供商的神经网络模型进行加密,然后使用密码协议对加密数据进行计算(例如同态加密或秘密共享),协议执行的最后,用户得到推理的结果;任何一方都无法了解对方的输入。

我们设计、实现并评估DELPHI,一个安全的预测系统,它允许双方在不暴露任何一方数据的情况下执行神经网络推理。
DELPHI通过同时设计密码协议和一个planner规划器来解决这个问题。
DELPHI的体系结构由两个组件组成:用于评估神经网络的混合密码协议和用于优化给定神经网络以配合我们的协议使用的神经网络配置规划器
首先,设计了一个混合密码协议,它比以前的工作提高了通信和计算成本,但是同时可能造成准确度损失。
所以,开发了一个自动生成神经网络结构配置的规划器,该结构可以在混合协议的性能-准确度两方之间进行平衡。总之,这些技术能够在在线预测延迟方面比现有的最新工作提高22倍
DELPHI的目标是让客户只学习两条信息:神经网络的结构和推理的结果;关于客户的私有输入和服务器神经网络模型参数的所有其他信息都应该隐藏起来。
在这里插入图片描述
它主要是在gazelle [ɡəˈzel]上进行改进的。
现代卷积神经网络是由若干层组成的,每一层包含一个子层用于线性性质,一个子层用于非线性性质。常见的线性运算包括卷积、矩阵乘法和平均池。非线性操作包括激活函数,例如流行的ReLU(整流线性单元)函数
Gazelle处理线性层使用的是线性同态加密方案,处理非线性层使用的是混淆电路,这些工具需要用户和服务提供商之间进行大量通信,所以性能较差和开销较大。
为了降低计算线性操作的在线成本,我们使用GAZELLE将开销较大的密码操作转移到预处理阶段。
我们的关键见解是,服务提供商对线性层的输入M(即该层的模型权重)在用户输入隐私数据之前就已经知道,因此我们可以在预处理期间使用LHE创建M的秘密共享。
稍后,当用户的输入在联机阶段可用时,所有线性操作都可以直接在秘密共享数据上执行,而无需调用LHE之类的重型加密工具,也无需交互来执行矩阵向量乘法。

虽然上述技术已经大大减少了计算时间和通信成本,但两种技术的主要瓶颈是为ReLU激活函数评估乱码电路的成本。为了最小化这一成本,我们使用了一种更适合于有限域单元计算设置的替代方法:多项式近似。用多项式近似(特别是二次逼近)替换激活函数ReLU。
这些可以通过标准协议安全有效地计算。因为这些协议只需要在每次乘法中传送恒定数量的字段元素,所以使用二次近似大大减少每次激活的通信开销,而不需要引入额外的通信回合。类似地,由于无延迟乘法协议只需要少量廉价的有限域运算,因此计算成本也降低了几个数量级。具体来说,安全计算二次近似值的在线通信和计算成本比相应的误码电路的成本分别小192⇥和10000⇥。
然而,这种用多项式近似来达到的性能的提高,它是以神经网络的准确性和可训练性为代价的。优先工作已经证明,二次逼近在某些情况下提供了良好的精度。同时,先前的工作和我们自己的实验都表明,在许多情况下,简单地用二次近似替换激活函数ReLU会导致准确度下降,并且可以增加数量级的训练时间(如果训练收敛的话)。为了克服这个问题,我们开发了一个混合密码协议,它使用激活函数ReLUs和二次近似来获得良好的准确度和效率。
所以对于这样一个混合的密码协议,需要去在性能和准确度之间进行平衡。所以设计了一个规划器,自动发现用二次近似代替哪些层的激活函数,以使所用的多项式近似数最大化,同时仍然确保精度保持在规定的阈值以上。我们的计划者的洞察力是调整神经架构搜索(NAS)和超参数优化的技术。也就是说,我们采用这些技术来确定在给定的神经网络体系结构中哪些层是近似的,并为发现的网络优化超参数。

在这里插入图片描述
系统设置中有两方:客户端和服务提供商。
服务提供者首先通过规划器确定合适的神经网络,比如说图中,蓝色点应该指的是性能低准确度高的用激活函数的非线性层,黄色点应该是多项式逼近实现的非线性层。可以看到客户给服务提供者发送了一个同意使用准确度92%的。然后双方进行预处理阶段,然后在在线阶段,客户会输入他的数据,再结合之前预处理阶段的操作,最后输出预测值。
在DELPHI中,双方通过提供自己的输入。服务提供者的输入是神经网络,而客户的输入是其用于预测的私有输入。

威胁模型是两方半诚实的,在这种模型下,只有一方被敌手攻陷。此外,这个敌手不会偏离协议,但它会试图从收到的消息中了解对方的敏感输入信息。
DELPHI的目标是让客户只学习两条信息:神经网络的结构和推理的结果;所有其他关于客户的私有输入和服务器的神经网络模型参数的信息都应该隐藏起来。

在这里插入图片描述
这个是预处理阶段,客户端和服务器提前计算可在在线阶段使用的数据。这个阶段不需要知道用户的输入
客户端通过同态加密的密钥生成得到公钥pk和私钥sk,
每一层客户端会选择一个随机掩码向量ri,服务器选择随机掩码向量si
客户端用公钥加密ri,发送给服务器。服务器通过同态的一些性质,计算得到miri-si的密文,发送给客户端。
客户端再用私钥解密得到 miri-si ,这样,服务器有si,客户端有miri-si,客户端和服务器就分别拿到了miri的加法秘密共享份
这一部分是为了线性操作的预处理操作

下面是非线性操作,激活函数relu和多项式近似
激活函数使用混淆电路进行操作的,右图是计算激活函数的电路,服务器作为乱码者,把这个电路进行混淆得到混淆电路c波浪线,然后发送给客户端,同时,客户端作为评估者,通过不经意传输从服务器那里获得ri+1和mi x ri-si的标签
对于多项式近似,客户端和服务器运行Beaver的三元组生成协议,以生成许多Beaver的乘法三元组。Beaver的三元组生成协议是一个两方的,计算一个乘法函数,采样 a和b,然后将a1 b1 ab1给一方,a2b2ab2给另一方,这都是加法秘密共享。在这里,他说这个三元组生成协议是用的线性同态加密方案

在这里插入图片描述
在线阶段
客户端输入x,在第i层,客户端在预处理阶段已经采样了ri,所以发送xi-ri给服务器,这里的xi是上一层i-1层的传递下来的,如果是第一层,那x1就是输入值x。这样,服务器获得xi-ri,客户端已知ri,所以服务器和客户端持有x的秘密共享份。

接下来,对于线性运算,服务器计算Mi(xi-ri)+si,在预处理阶段,客户端已经得到了Miri-si,所以,客户端和服务器持有Mixi的秘密共享份,掩码ri保证服务器无法获得用户的输入xi,掩码si保证客户端无法获得服务器的模型参数mi。

线性层之后就是非线性层,有两种方式,一种是用混淆电路评估或者说是计算激活函数relu,第二种就是用beaver的乘法来进行多项式近似。
对于混淆电路,服务器把Mi(xi-ri)+si相关的乱码标签发送给客户端,有了这个标签加上之前在上一个阶段客户端已经通过不经意传输从服务器那里获得的乱码标签,他就能够解开这个电路,得到结果xi+1 – ri+1的一次密码本密文,这就是电路的输出结果,然后把这个结果发送给服务器,服务器用密钥进行解密,得到xi+1 -ri+1。

第二种方法是多项式近似,客户机和服务器运行Beaver的乘法过程来计算接近该层的多项式。在程序结束时,客户端保存[XI+1] 1,服务器保存【XI+1] 2。这其中具体的方式没有打开来讲。
客户端计算 [xi+1]1- ri+1并且发送给服务器. 服务器加上[xi+1]2 获得xi+1-ri+1.
当l层之后,服务器发送xl – rl ,客户端加上rl,得到最后的结果xl
在这里插入图片描述
因为使用混淆电路的方法性能比不上多项式近似,而使用多项式近似准确率不如混淆电路,为了在这两种方法提供的性能和精度之间进行权衡(以评估非线性层),DELPHI设计了一个规划器,该规划器生成了将这两种方法混合使用的神经网络,以最大程度地提高效率,同时仍能实现精度,该规划器的核心是一种神经架构搜索(NAS)算法,该算法使服务提供商能够自动找到满足服务提供者的准确性和效率目标的网络架构

在我们的实现中,我们决定使用基于人群的训练算法PBT
在每个时间步的末尾,它通过用户指定的评分功能测量每个候选网络的性能,并用性能最佳的候选版本替换性能最差的候选对象(变异函数由用户指定)。
在优化过程结束时,PBT将输出发现的性能最佳的候选网络架构(以及用于训练它们的超参数)

从右边可以看到,首先会设置准确度阈值t,还有先设置非线性层全部为激活函数,然后在3中看到逐步加大 I 也就是使用二次近似的层数,然后用PBT进行优化,输出最佳候选网络架构及超参数,然后在c中与准确度t比较,小于的话直接丢弃,满足的话加进来,最后输出网络架构。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值