0.ABSTRACT
本论文的主要创新点:
-
we develop new algorithmic techniques for learning (提出一种新的学习算法技术)
-
a refined analysis of privacy costs within the framework of differential privacy(用差分隐私的框架对隐私成本进行了准确的分析)
1.INTRODUCTION
-
These are the availability of large and representative datasets for training neural networks. These datasets are often crowdsourced, and may contain sensitive information。(这些大的有代表性的数据集是用来训练神经网络的,这些数据集经常是众包并且包含很多敏感信息,可能会泄露隐私)
-
previous work obtains strong results on convex models with smaller numbers of parameters, or treats complex neural networks but with a large privacy loss.(之前的工作在参数数目较少的凸模型或者处理大量隐私消耗的复杂神经网络中取得了很好的效果)
-
In this paper, we combine state-of-the-art machine learning methods with advanced privacy-preserving mechanisms,training neural networks within a modest (“single-digit”) privacy budget. (本论文结合最先进的机器学习方法和先进的隐私保护机制,在适当的隐私预算中训练神经网络)
Innovation
-
通过跟踪隐私损失的详细信息(高阶矩),我们可以获得对整体隐私损失的更严格的估计,无论是渐近的还是经验的。
-
通过引入新的技术,提高了差异私有训练的计算效率。这些技术包括为单个训练示例计算梯度的有效算法、将任务细分为较小的批以减少内存占用,以及在输入层应用差异私有主投影。
-
我们建立在机器学习框架TensorFlow的基础上,用于训练具有差异隐私的模型。我们在两个标准图像分类任务MNIST和CIFAR-10上评估了我们的方法。我们选择这两个任务是因为它们基于公共数据集,并且在作为机器学习基准方面有着长期的记录。我们的经验表明,深度神经网络的隐私保护可以在软件复杂度、训练效率和模型质量方面以适中的成本实现。
2.BACKGROUND
2.1差分隐私
定义
属性
- 可组合性:如果一个机构的所有组件都是不同的私有的,那么它们的组合也是满足差分隐私。
- 组隐私性:如果数据集包含相关的输入(如同一个人提供的输入),则组隐私意味着隐私保证的适当降级。
- 辅助信息的健壮性:对辅助信息的稳健性意味着隐私保证不受对手可用的任何辅助信息的影响。
高斯机制
应用
1.重复应用加噪音机制的差分隐私性遵循基本合成定理,或高级合成定理及其改进。
2.跟踪复合机制执行过程中累积的隐私损失并执行适用的隐私策略的任务可以由隐私计算(privacy accountant)执行
3.因此设计一种差分私有加噪音机制的步骤:
- 通过有界灵敏度的顺序组成来逼近函数
- 选择加噪参数
- 对生成机制进行隐私分析
2.2深度学习
1. 我们定义了一个损失函数L,它表示训练数据不匹配的惩罚。参数θ上的损失L(θ)是训练示例{x1,,,xN}的平均损失,所以训练过程中找到参数θ产生可接受的最小损失。
2. 对于复杂网络,损失函数通常是非凸并很难计算最小化。一般最小化损失函数是由小批量随机梯度下降算法来完成的。该算法中,一组随机例子组成一个批量B,计算作为梯度损失函数的估计。然后,θ沿着梯度方向向局部最小值更新。
3. 我们的工作基于tensorflow,tensorflow是由谷歌发布的开源数据流引擎。tensorflow允许程序员从基本操作定义大型计算图,并通过异构分布式系统分配他们的执行。tensorflow自动化梯度计算图的创建,还使得批量计算更容易。
3.APPROACH
3.1 Differentially Private SGD Algorithm(差分隐私随机梯度下降算法)
训练过程中,对参数添加过于保守的噪音(噪音是在最坏情况中分析选择的),可能会破坏学习模型的有用性。因此,我们更倾向一种更复杂的方法去控制训练数据在训练过程中的影响,尤其是在SGD计算中。这种方法在之前的一些工作中已经实现过,我们对此进行了一些修改和扩展,尤其是在隐私计算中。
3.1.1 算法1
在SGD算法的每一步,我们都计算了样本的随机子集的梯度,削减了每梯度的范式,计算平均值,增加噪音以保护隐私,并且朝着平均噪音梯度的相反方向走一步。最后,为了输出模型,我们也需要计算机制的隐私损失。以下是算法的组成和我们的改进之处。
3.1.2 Norm clipping(削减范式)
算法1中的差分隐私保证需要界定每个单独例子的影响在。
- 因为没有梯度大小的先验约束,所以我们削减每个梯度在范式;
- 梯度向量替换为;
- 对于削减阈值来说,如果,就可以保留
如果,他就会被降低到标准;
这种形式的梯度削减在非隐私的神经网络是一种流行方式,在平均值之后削减就已经足够了。
3.1.3 Per-layer and time-dependent parameters
- 算法1中的伪码将所有的参数归为损失函数的单一输入参数
- 对于多层神经网络,我们分别考虑每一层,对于不同层设置不同的削减阈值和噪音规模
- 削减和噪音参数可能会随着训练步骤的次数而不同
在第五部分展示的结果中我们对使用了恒定设置。
3.1.4 Lots
- 算法1估计了损失函数的梯度——通过计算一组例子的损失梯度并采取平均值。这个平均值提供了无偏估计,其方差随着群组的大小迅速下降。我们称此群组为
区别于通常称为的计算群组。 - 为了限制内存消耗,通常设置将小于。
- 我们对进行计算,然后把batch组合成,以便添加噪音。
- 实际上,分批和整体的构建是由随机排列例子进行的,然后把他们分成大小合适的组。
- 为了便于分析,我们认为每批是由独立选择每个例子组成的,概率为,N是输入数据集的大小,L是lots大小。
- 我们将训练算法的运行时间表示为(时段数)规范化,每个时段数是处理N个例子所需的批处理数,每个包含个
3.1.5 Privacy accounting
对于差分隐私SGD来说,重要步骤就是计算训练过程中所有的隐私成本。
差分隐私的可组合性使得我们可以实施“计算”程序,计算每一步隐私成本并进行累加。
每一步通常都需要在不同层的梯度,然后计算累加的成本。
3.1.6 Moments accountant
- 许多研究致力于研究特殊噪声分布的隐私损失和隐私损失的组合。
- 对于高斯噪音,如果我们选择算法1中的为,那么根据标准参数,每一步对于批次来说都满足
。
-
按照来说,对于数据库中每一步都满足
因此,我们需要最强组合理论。
我们的方法——the moments account(证明在合适的噪音规模和削减阈值的设置下算法1满足differentital privacy)
与强组合理论相比较,我们的方法:
- 在部分节省了因子
- 在部分节省了因子
强组合理论中,我们的方法节省了一个因子所以我们的方法更有效。
3.2 the moments accountant:details(时刻计算)
- 时刻计算跟踪隐私损失随机变化的一个界限,它产生了跟踪的标准方法,并使用了强组合理论。
- 时刻计算也适用于随机样本的强组合高斯机制,并且可以提供算法1的隐私损失的更精确计算。
- 隐私损失是一个随机变量,取决于添加到算法中的随机噪音。机制M是等价于隐私损失随机变量的某个尾部边界。这个尾部边界是关于分布非常有用的信息,直接从尾部组合可能导致非常松散的边界。我们计算隐私损失随机变量的对数矩,这些随机变量组成线性。之后,我们使用the moment bound和Markov inequality(马尔代夫不等式)来获得尾部边界,那就是差分隐私上的隐私丢失。
隐私损失定义为:
文中常用的一种设计模式是通过线性应用差分隐私机制来更新状态。自适应合成的一个例子是 我们让机制的辅助输入作为之前机制的输出来建模。
为了证明机制的隐私保证,他有助于限制所有可能的,我们定义:
(其中最大值接管了所有可能的和所有的相邻数据库)
的性质:
定理2,1适用于根据先前机制的输出进行选择的机制
用定理2中去计算或者界定每一步的就已经足够了,并求和以限制整个机制的moments。我们可以使用尾部界定去转换保证的moments bound
最大的挑战仍然是界定每一步的值在高斯机制随机样本中,估计一下moments就已经足够了:
-
表示
-
表示
我们计算其中:
在the moments account应用中,我们进行数值积分来计算,另外我们证明了渐进界限:
3.3 hyperparameter tuning(超参数调整)
我们识别了隐私相关的模型特征,特别是我们可以调整的超参数,以平衡隐私,准确性和性能。通过实验,与神经网络的结构相比,我们发现模型准确性对训练参数(如批量大小和噪音水平)更敏感。
如果我们对超参数进行不同的设置,我们可能通过the moments account将所有设置中的隐私成本相加。然后,因为我们仅关心带来最准确模型的设置,所以我们可以做到最好。例如应用Gupta等人的一个结果版本。
我们可以用理论上的见解来减少超参数需要尝试设置的次数。当凸目标函数的差分隐私优化最好使用到1的批处理大小时,非凸学习可以聚集到更大的批处理中受益。定理1表明批量过大时会增加隐私成本,有效的方法就是将每个epoch的批数与所需epoch数量的顺序相同。当模型收敛到局部最优时,非隐私训练的学习率会适当向下调整。我们不需要把学习率减小到一个非常小的值,因为差分隐私训练永远达不到一个合理的制度。我们发现实验中,从相对较高的学习率开始有一点好处,然后在一些epoch中会线性减少到一个较少的值,之后保持不变。
4.IMPLEMENTATION
我们在Tensorflow上应用差分隐私SGD算法。源码来源于github.com/tensorflow/models
我们的应用主要包括两方面:
- sanitizer,对梯度进行预处理来保护隐私
- privacy-accountant,跟踪训练过程中的隐私消耗
Sanitizer
- 限制每个单独例子的敏感度(通过削减每个例子的范式)
- 更新网络参数之前对批处理的梯度增加噪音
对于训练例子中的批量B来说,,为了限制灵敏度的更新,我们需要每个单独的。最后应用了per_example_gradient,这种操作可以计算出一个批处理中的
privacy account
我们应用了the moment accountant——累计每一步隐私丢失的时刻日志。
我们可以计算通过:
- 应用渐近线,估计闭式表达式 (可能会恢复一般高级合成定理)
- 应用数值整合 (更准确的计算隐私损失)
在实施过程中,我们选用numerical integration(数值积分)来计算E1和E2。在的范围内计算,对于都可以计算出
Differentital privacy PCA
PCA是捕获输入数据主要特征的有用方法。更具体来说,我们从训练样本中随机抽取一个例子,将他们作为向量,将每个向量规范化为单元范式来形成矩阵A,向量在矩阵中是行。然后给协方差矩阵加高斯噪音,计算出噪音协方差的主要方向。之后对于每个输入例子投影于主要方向,然后再将其输入到神经网络中。
运行PCA产生了隐私成本,但是会提升模型质量并减少运行时间。
Convolutional Layers(卷积层)
卷积层对于深层神经网络是有用的。然而,在tensorflow中,卷积层的高效梯度计算仍然是一个挑战,它促使创建了单独的工作流。最近的一些研究表明,即使是随机卷积也足够了。
核心思想
该论文的核心思想为神经网络与差分隐私的相结合,提出了差分隐私SGD算法:
1. 随机样本为{x1,x2,,,,xn},lot为随机样本的子集,概率p=L/N,batch为子集中的每个单独样本,epoch包含N/L个lot,也就是需要执行T步
2. 根据隐私损失函数来计算每个样本的梯度
3. 对梯度进行规范处理
4. 对子集中所有样本的梯度求和,加噪音,求得的平均值为该步的梯度
5. 对梯度进行学习后得到新的参数,此参数可以使该步隐私损失最小
6. 重复执行T步。
其中隐私损失函数由the moments accountant来计算。
疑问
1.The Moments Accountant是如何计算隐私开销的?
2.如果隐私开销过大是如何调整的?
3.t ∈ [T],group size L(t和L指代什么?)
L指代随机样本的数量,t指代L中的每个例子
4.epoch、lots、、batch各指代什么?
参考https://my.oschina.net/u/2935389/blog/2967473
5.如何在输入层应用差分隐私主投影?
6.如何理解?
代表学习率
应用
1.将技术应用到语言建模任务的LSTMs
2.提升准确性
PPT链接: https://qdata.github.io/deep2Read//talks/20171012-Bargav-2.pdf
来源:oschina
链接:https://my.oschina.net/u/4296470/blog/3275849