摘要
以神经网络为基础的机器学习在大量的领域取得了卓越的成就。通常来讲,模型训练需要大量典型的数据集,它们可能是外包的并且包含一些敏感信息。模型不该在这些数据集中暴露隐私。为了解决这一目标,我们提出了新的算法进行学习,以及差分隐私框架下隐私成本的改良分析。我们的实验证明我们可以使用非凸目标训练深度神经网络,在中等的隐私预算、可控的软件复杂度成本、训练效率和模型质量条件下。
我们综合当前最新的机器学习方法和改进的隐私保护机制,在中等隐私条件下训练神经网络模型。我们训练模型使用非凸目标、多个层次、上万个参数。
简介
论文的主要贡献如下:
- 跟踪隐私丢失细节,我们可以从渐进和经验两方面获得对整体隐私损失的更严格的估计。
- 提出独立训练样本计算梯度的高效算法,任务分成小堆,输入层使用差分隐私策略投影。
- 机器学习框架TensorFlow建立DP模型,MNIST/CIFAR测试数据集,在软件复杂度、训练效率和模型质量方面,深度神经网络的隐私保护可以以适当的成本实现。
机器学习系统都有致力于保护训练数据的部件。例如正则化技术房主过拟合可以隐藏样本的一些细节。
模型逆向攻击是一种黑盒攻击。
而我们的提出的方法在全部了解训练机制和模型参数时也能获得强健的抵御。
背景
回顾差分隐私的定义,介绍高斯机制和合成定理,概述深度学习的基本原理。
差分隐私
差分隐私为聚合数据库上的隐私保护机制提供了强有力的标准。它是根据相邻数据库的特定于应用程序的概念定义的。在我们的实验中,我们可以设定两个样本集合,它们是邻接的当且仅当两者只有一个样本是不同的。
定义1
随机函数
M
:
D
→
R
\mathcal{M:D\rightarrow R}
M:D→R满足
(
ϵ
,
δ
)
−
(\epsilon,\delta)-
(ϵ,δ)−差分隐私,当任意两个相邻输入
d
,
d
′
∈
D
d,d'\in \mathcal{D}
d,d′∈D且对任意的输出子集
S
⊆
R
\mathcal{S\subseteq R}
S⊆R满足
P
r
[
M
(
d
)
∈
S
]
≤
e
ϵ
P
r
[
M
(
d
′
)
∈
S
]
+
δ
Pr[\mathcal{M}(d)\in \mathcal{S}]\le e^{\epsilon}Pr[\mathcal{M}(d')\in \mathcal{S}]+\delta
Pr[M(d)∈S]≤eϵPr[M(d′)∈S]+δ
差分隐私有几个特性:可组合性、组隐私和对辅助信息的健壮性。
常规的以差分隐私趋近绝对值实值函数的范例是通过对函数敏感性的额外噪声的校正
S
f
S_f
Sf,它被定义为绝对距离的最大值
f
(
d
)
−
f
(
d
′
)
f(d)-f(d')
f(d)−f(d′),其中
d
d
d和
d
′
d'
d′是相邻的输入。例如,高斯噪声机制被定义为:
M
(
d
)
≜
f
(
d
)
+
N
(
0
,
S
f
2
⋅
σ
2
)
\mathcal{M}(d)\triangleq f(d)+\mathcal{N}(0,S^2_f\cdot\sigma^2)
M(d)≜f(d)+N(0,Sf2⋅σ2)
设计一个差分隐私额外噪声机制的基本蓝图包括以下步骤:使用限制函数的一系列组合逼近函数性;选择额外噪声的参数;对最终机制进行隐私分析。
DPSGD算法
人们可能试图通过只处理由训练过程产生的最终参数来保护训练数据的隐私,并将这个过程视为黑盒。不幸的是,一般来说,人们可能没有一个有用的、严密的表征这些参数对训练数据的依赖性;
在参数中加入过于保守的噪声,噪声是根据最坏情况分析选择的,这将破坏所学习模型的实用性。因此,我们倾向于采用一种更复杂的方法,在训练过程中,特别是在SGD计算中,我们旨在控制训练数据的影响。因此,我们做了一些修改和扩展,特别是在我们的隐私计算。
算法1概括了我们的通过最小化经验损失函数
L
(
θ
)
\mathcal{L}(\theta)
L(θ)来训练一个有参数
θ
\theta
θ的模型来基本方法。在SGD中的每一步,我们计算样本随机子集的梯度
∇
θ
L
(
θ
,
x
i
)
\nabla_{\theta}\mathcal{L}(\theta,x_i)
∇θL(θ,xi),剪切每个梯度的
l
2
\mathcal{l}_2
l2范数,计算平均值,添加噪声来保护隐私,然后对此平均噪声梯度逆梯度操作一步。最后,除了提出模型,我们计算根据隐私计算的隐私损失。
裁剪梯度的原因见链接
其中输入参数
C
C
C是裁剪阈值。
每层网络和时间依赖参数:
对于多层网络来说,我们考虑每一层分别设置不同的裁剪阈值 C C C和噪声尺寸 σ \sigma σ。另外,随着训练轮次 t t t的变化,这两个参数也可能会发生改变。(在第 5 5 5节的结果中我们没有做改变)。
分组Lots
像普通的SGD算法一样,本算法通过计算一组例子的梯度并取平均估算L的梯度。这个平均值提供了一个无偏差的估算值,它的变化随着数据量的增加迅速减少。我们称这个组合为lot,与通常的计算组合batch区别开。为了限制内存消耗,我们设置batch的容量远小于lot,batch是算法的参量。我们以batch为单位执行计算,然后为了添加噪声,将几个batch合并为一个lot。
隐私计算
对于DPSGD算法来说,一个重要的问题是计算训练的全局隐私成本。差分隐私的可组合性允许我们执行可累加过程:先计算每种到达训练数据的方式的隐私,然后将这些隐私累加作为训练过程。训练的每一步骤要求多个层次的梯度,然后计算器累加对应于它们的所有成本。
Moments accountant
后面的看不下去了
使用的数据集是MNIST和CIFAR-10