
摘要
最近,有很多研究工作为机器学习设计安全协议,其中大部分是为了实现高精度深层神经网络(DNNs)的安全预测。在这项工作中,作者提出了一种 DNN 离散化训练的新方法:QUOTIENT,并为其定制了一个安全的二方协议。QUOTIENT 的组成部分包括规范化和自适应梯度方法,它改进了 DNN 训练中两方计算的最新技术。与以往工作相比,广域网时间提高了 50 倍,绝对精度提高了 6%。
关键词
安全多方计算、隐私保护深度学习、量化深度神经网络
一、引言
在过去的十年中,由于工程和理论上的突破,安全计算领域(MPC)取得了惊人的发展。特别是多方计算技术(如不经意转移 OT)便是其中的典型。
然而,经典的通用安全计算协议不能扩展到现实世界的机器学习(ML)应用。为此,最近的工作将不同的安全计算技术结合起来,为特定的 ML 任务设计定制协议。例如,Nikolaenko 提出了一个安全分布式岭回归协议,该协议结合了加法同态加密和乱码电路,而以前的工作部分依赖于 OT 实现相同的功能。
实用 ML 和安全计算:虽然密码学和 ML(包括上述工作)都有了大量的实际发展,但最近关于加密数据的模型训练和预测的工作,主要是基于 ML 模型或单独使用的加密技术的优化。在这项工作中,我们表明,对这个问题采取全面的方法是有益的。具体来说,我们的目标是设计一个优化算法以及为其定制的安全计算协议。
安全的分布式深度神经网络训练:到目前为止,在加密数据上训练深层神经网络(DNN)的工作还很少。我们知道的唯一成果是 ABY3 和 SecureML。与本课题不同,ABY3 用于三方案例,而 SecureML 存在耗时过长、不适用于广域网、精度较低等问题。此外,上述工作省略了现代 DNN 训练所需的技术。在本文中,我们认为,为了使 ML 模型适合于 MPC 中的实际评估,需要对 ML 模型的训练方式进行重大改变。重要的是,我们的结果表明,如果安全协议 ML 模型是联合定制的,那么经过安全训练的 DNN,其准确性不会受到很大的打击。
我们的贡献:在这项工作中,我们提出了一种新的方法——QUOTIENT,用于 DNN 的安全二方训练和评估。此外,我们还开发了一个具有半诚实安全性的安全计算方法,称为 2PC-QUOTIENT。我们的主要观点是,在嵌入式设备定点训练深度网络的工作可以用于安全训练。具体来说,它包含有用的原语,例如对低精度重复量化以稳定优化。然而,这项工作并不能产生一个有效的 MPC 协议。为此,我们从 ML 和 MPC 的角度做出以下贡献:
1.我们将前向于后向过程中的网络权重表示为三元组:W∈{-1,0,1}。因此,三值矩阵向量乘法成为训练的关键原语。然后,我们提出了一种基于相关不经意传输的三值矩阵向量乘法协议,该协议结合了布尔共享和加法共享以提高效率。
2.我们进一步以 MPC 感知的方式定制后向过程,通过量化替代和规范化等操作来实现。
3.我们设计了一种新的定点优化算法,其灵感来自于最先进的浮点自适应梯度优化程序。
4.我们在各种真实数据集上进行试验,并评估我们的提案的准确性和运行时间。我们在五分之四的数据集上实现与浮点运算相近的精度。与最先进的 2PC 安全 DNN 训练相比,广域网时间提高了 50 倍,绝对精度提高了 6%。
二、概述与问题描述
2.1 深度神经网络
所有 DNN 都由一组核心操作定义,称为层。这些层通过重复输入 a0 来产生期望的输出 al,其中重复的数量 L 被称为网络的深度。每一层由线性操作和非线性操作组成,并且根据网络的类型,每一层具有不同的形式。我们描述了三种流行的层,它们基本构成了主流 DNN:全连接层、卷积层和残差层。

全连接层:给定一个全连接层 L 的输入,执行两个操作:
(1)乘法:

(2)非线性运算:如 Relu(x)=max(x,0),此时全连接层的输出为

在实践中,可以在操作 1 之前适当修改参数。
卷积层:卷积层本质上是全连接层,具有非常特殊的连接结构。卷积层的输入和输出是三阶张量(即矩阵数组)。输入可以被认为是具备一定高度、宽度和通道的图像。
为了得到输出,一个方形的卷积层会遍历整个输入。将从入口(i,j)开始的的方形区域,按元素乘以一组权重 W 并在张量的前三个维度上求和。这之后是一个非线性操作,也是(最常见的)ReLU 以生成输出。此操作如图 1(中)所示。
卷积层的一个常见变体是池化层。在这些层中,权重始终固定为 1,非线性函数仅为求一个向量中最大的元素。
残差层:残差层激活前一层 a^(l-1)并加入到后面的层 l+i 中,通过非线性函数最终实现计算。如图 1(右)所示。
训练深度神经网络:任何机器学习分类器的目标都是将输入映射到所需的输出 y(通常称为标签)。为了训练 DNN 学习此映射,我们需要调整 DNN 权重。训练 DNN 权重的最常用方法是通过随机梯度下降(SGD)。具体地说,给定一个输入输出对作为训练数据集,给定一个损失函数测量预测和输出之间的差异,最后通过 SGD 来更新参数。
2.1.1 先进的训练方式:正则化和自适应步长
虽然上述“普通”梯度下降可以产生真正准确的分类器,但仅凭它们无法产生最好的结果。以下两个操作对优化非常重要:(1)规范化;(2)自适应步长。
正则化:它的工作原理是对网络层 L 中被激活的 a^l 进行正则化,使给定批次的输入 a^l 的均值与标准差几乎为零。机器学习界现在普遍认为,正则化是精确 DNN 的关键因素。
自适应步长:通过在以前的迭代中得到的梯度的大小来衡量学习速率,这将有效地创建每一维度步长,并针对所有层 L 的梯度进行调整。如果没有自适应梯度方法,找到有效收敛的合适步长是极其困难的。AMSgrad 是最先进的自适应梯度法。作者证明了它能够收敛于特别困难的优化问题。即使在先前自适应方法收敛的数据集上,AMSgrad 也可以将收敛时间缩短一半。
2.1.2 使用定点数字进行训练和推理:大量研究工作致力于模型量化和压缩,其完全依赖实数的定点编码。事实上,Tensorflow 提供了一个轻量级的变体来实现这一目标。这些进展对于安全预测是很有帮助的。然而,训练任务中很少有在定点执行所有操作。我们首先回顾定点编码,以及我们将考虑的 MPC 技术。然后,在第 3 节中,我们将描述如何修改和改进此方法以实现安全训练。
定点编码的定义:我们用三元组 x=(a,l,p)来表示定点数,其中 a 是定点整数,L 是它的范围或位宽度,P 是它的精度。x 编码的有理数简写为 a(p)。因为存在位运算溢出的问题,这要求我们的训练过程非常稳定。
2.2 机器学习中的 MPC
MPC 协议的目标是在不同方持有的私有数据上计算公共函数 f(∙),将计算的最终输出显示给预期的各方。通常,MPC 协议可以根据(i)用于表示 f(∙)的结构类型和(ii)在各方之间秘密共享值的方案进行分类,即布尔共享、加法共享、Shamir 秘密共享和更复杂的变体。
加法共享协议对于不涉及比较的大整数域上的计算非常有效。这包括基本线性代数运算序列,如矩阵、向量乘法。
与加法共享相反,基于布尔共享的协议非常适合于易于表示为布尔电路的计算,例如二次幂除法/乘法(通过位移位)、比较和 sign() 函数。
这些权衡导致了人们认为应该设计针对完整算法定制的协议,如线性/逻辑回归和 DNN 的训练、矩阵因子化或 k-最近邻分类。此外,定制协议根据所实现的特定计算的需要在不同的秘密共享方案之间交替使用。当然,秘密共享方案之间的转换本身必须通过安全协议 1 来实现。这一点与 DNN 训练尤其相关。
一些 MPC 框架在预处理模型中工作。在本文中,我们考虑总时间,去除离线阶段的假设。
秘密共享的定义:
在这项工作中,我们采用了布尔共享和加法共享。我们首先确定两方 P1 和 P2。我们定义的布尔共享 x∈{0,1},P1 持有< x >1,P2 持有< x >2,< x >1 为 x 和< x >2 的异或操作。我们还定义加法共享的整数 y,P1 持有 y1,P2 持有 y2。y1=y-y2。实际上,q 是 2^σ,σ∈{8,16,32,64,128}。
乱码电路:在我们的许多协议中,我们使用姚的乱码电路作为子策略。我们的工作相关的观察结果是,乱码电路协议的运行时间是电路中与非异或门数量相关的函数。因此,在这种情况下,设计高效、大量的异或电路至关重要。
不经意的转移 OT:OT 是涉及两方的加密原语:选择器和发送者。发送方持有两个信息,即符号 m0,m1,选择器持有一个布尔值 b。在执行 OT 之后,选择器学习 mb,即发送方的消息对应于其布尔值。
OT 是 MPC 中的一个基本原语。在我们的协议中,我们采用了一种更有效的原始相关不经意传输(COT),同时还引入了一种高效的 COT 扩展协议,该协议使用的通信量约为普通 OT 扩展的一半。COT 是 OT 的一种特殊情况,发送方不能选择其消息,而是选择一个函数 f,将两条消息 m0,m1 关联起来,如 m0=f(m1)。
定义 2.1(m*COT):设 f=(fi)是一系列相关函数,fi 为每个函数的签名,由 P1 方(发送方)持有,并让 w 是由 P2 方(选择器)持有的选择位序列。在执行 m*COT 的运算中,P1 获得 m 个随机向量 xi,P2 获得 m 个随机向量 yi,满足:



2.3 威胁模型
在 MPC 的两方模式中,训练过程外包给两台服务器。它首先通过秘密共享的数据集 D 在服务器之间进行复制。这如图 2(左)所示。我们的协议在安全计算的半诚实模型中是安全的。
除了私人训练,一个重要的相关问题是私人预测。这如图 2(右)所示。具体地说,客户机 C 具有私有数据 a0,他们希望通过服务器 S 的私有权重 W 得到私有结果预测 y。在我们的实验中,MPC 中用于双方训练的快速协议立即产生用于私有预测的快速协议,因为预测对应于前向传入训练(即,算法 1)。
三、MPC的深度学习
在本节中,我们将介绍与我们的协议一起开发的优化 DNN 的新方法(第 4 节)。我们的第一个见解是,最近在定点中训练深度网络的工作可以用于加密友好型训练。我们做了以下修改:(a)我们将网络权重国际化:前后向传递中 W={-1,0,1}。(b) 我们构造了一个量化函数(c) 我们用下一次的二次幂替换向后传递的标准化操作,即除以最近的二次幂。最终,这些更改只会加快安全协议中的训练。如果训练基于随机梯度下降,则仍需要多次迭代才能收敛。为了解决这个问题,我们设计了一种新的定点自适应梯度算法。


算法 1 对应于 DNN 中的预测,算法 1、2、3 描述了训练过程。

最先进的自适应梯度算法之一是 AMSgrad。然而,AMSgrad 包含许多在定点上可能不稳定的运算。我们在算法 4 中重新设计 AMSgrad,以通过以下方式绕过这一困难。首先,我们将第 9 行中平方和的平方根替换为绝对值,这是 v∈[-1,1]值的一个接近上限.。我们从经验上验证了这种方法不会降低性能。
第二,我们将第 11 行中的除法替换为二次幂的除法。第三,我们对第 7 行和第 8 行的加权移动和进行连续量化,以在整个过程中保持类似的精度。这些变化使得在安全计算中高效地实现 AMSgrad 成为可能。

四、基于不经意转移的安全学习
在本节中,我们将介绍自定义 MPC 协议,以实现前一节中介绍的算法的主要版本。
我们的协议在很大程度上依赖于 OT,并且关键地利用了我们网络的特性,如三元权重和定点(8 位精度)梯度。我们提出了我们的 MPC 协议的神经网络训练,分别描述其组成部分。这些协议使用我们的矩阵向量乘法协议(以及它的一个微小变体),结合高效的乱码电路实现,用于 ReLU 的规范化和计算。
4.1 安全三值矩阵向量乘法
第 3 节中定点神经网络前向后向过程中的一个递归原语是三元矩阵与不动点整数向量的乘积 Wa。如第 2.2 节所述,乘法在 MPC 中是一种代价高昂的操作。我们的见解是,如果 W 是三元的,我们可以用选择代替乘法,从而实现更快的协议。更具体地说,我们可以如算法 5 所示计算乘积 z=Wa。

因此,我们的协议的核心是一个用于计算 Wa 的加法共享的两方子协议,其中 W 在各方之间是布尔共享的,a 是加法共享的。反过来,该协议依赖于一个两方子程序来计算布尔共享二进制向量和一个加法共享的整数向量的内积。作为解决这个问题的第一种方法,我们在协议 6 中展示了一种基于不经意传输的解决方案。

4.1.1 优化:在上一节中,我们的协议假设了标准的 OT 功能,但实际上,我们可以利用更高效的原语。我们在协议 7 中对协议 6 进行的优化利用 COT 实现了我们所需的内部产品功能。

协议 8 实现了我们计算

的目标。

总的来说,我们的方法利用了 W 是三元组的特点,而不必在安全计算中执行任何布尔加法。
4.2 安全前向传播
我们的前向传递协议(算法 1)是协议 8 和一个具有三个组成部分的乱码电路协议的顺序组合,协议如图 3 所示。

4.3 安全后向传播
图 4 显示了我们的向后传递协议(算法 2)。与前向传递类似,我们描述了一层的传递,并观察到它的所有输入和输出都是秘密共享的。因此,它可以很容易地跨层按顺序组合,并使用前向传递,其安全性与每个子程序的安全性无关。

五、实验
实验设置:实验在两台 Microsoft Azure Ds32 v3 机器上进行,这两台机器配备 128GB RAM 和 Intel Xeon E5-2673 v4 2.3GHz 处理器,运行 Ubuntu 16.04。在局域网实验中,机器位于同一地区(西欧),平均延迟为 0.3ms,带宽为 1.82GB/s。对于广域网来说,这些机器托管在两个不同的地区(北欧和美国东部),平均延迟为 42 毫秒,带宽为 24.3 MB/秒。
实现:我们使用两个不同的代码基线。用 EMP 工具包来实现前向和后向传递的安全协议。我们将半诚实 COT 实现协议 7 所需的功能,此代码库用于计时结果。我们基于 Tensorflow 开发了一个更通用的不安全 Python 实现,用于精度实验。虽然此实现不使用 MPC,但它反映了使用 EMP 工具包实现的功能。
评估:对于 QUOTIENT 训练,我们使用第 3 节中所述的两个权重变量:(i)向前和向后传递的三元(2 位)权重,以及(ii)SGD 和 AMSgrad 算法的 8 位权重。我们使用 8 位表示量化权重梯度(η)、激活(a)和激活梯度(e)。
由于我们的协议是在线的,与采用离线阶段的其他方法相比,我们采用了保守的方法:我们使用类似的计算资源将其离线计算时间与我们的总计算时间进行比较。我们之所以采用这种策略,是因为这些方法的在线阶段相对缺乏说服力,并且可能涉及设置开销。此外,我们的模型可以很容易地分为离线/在线阶段,但为了简单起见,我们省略了这一点。
我们采用了一种简单的并行化策略:在不同内核上的一个小批上运行独立的进程。根据可并行化进程的数量,在 LAN 上的计算速度平均提高 8-15 倍,在 WAN 上的计算速度平均提高 10-100 倍。我们将更多涉及的并行化策略留给未来的工作。
在真实数据集上的表现:我们证明:(i)QUOTIENT 在浮点上的训练只会导致很小的精度损失,(ii)它比最先进的定点神经网络训练更精确。(i)和(ii)适用于几种最先进的体系结构,包括全连接层、卷积层和残差层,以及不同类型的数据。对于我们的 2PC 协议,我们表明(iii)2PC-QUOTIENT 在 DNNs SecureML 的精度和运行时间以及 LAN 和 WAN 设置方面都优于现有的安全训练方法。我们首先报告了各种数据集的准确性,以显示上述(i)和(ii)。然后,我们报告 2PC-QUOTIENT 训练和预测的运行时间,以论证(iii)。



六、结论
在本文中,我们介绍了 QUOTIENT——一种利用不经意传输(OT)安全地训练深层神经网络模型的新方法。通过同时设计新的机器学习技术和为机器学习训练量身定制的新协议,QUOTIENT 在准确性和速度上都提高了最先进的水平。我们的工作是我们第一次意识到能够安全地训练卷积层和残差层。然而,在卷积网络上的训练仍然很慢,并且使用我们的方法会产生很大的通信负载。寻找用于快速评估卷积层的专用 MPC 协议是下一步工作的方向。
七、鸣谢
AdriáGascón 和 Matt J.Kusner 得到了艾伦图灵研究所在 EPSRC 拨款 EP/N510129/1 项下的支持,并获得了英国政府国防与安全计划的资助,以支持艾伦图灵研究所。
本文由*京大南**学软件学院 2021 级硕士周宣策翻译转述。