隐私度量

差分隐私(Differential privacy)是一个用于衡量算法所提供隐私保障的框架,可以用 ε(epsilon)和 δ(delta)这两个值来表示。在这两者中,ε 更为重要,且对超参数的选择更为敏感。粗略来说,它们的含义如下:

  • ε 限定了包含(或移除)单个训练样本时,特定输出的概率可能增加的上限。通常你希望它是一个较小的常数(小于 10,对于更严格的隐私保障,则小于 1)。然而,这仅仅是一个上限,较大的 epsilon 值在实际应用中可能仍然意味着良好的隐私性。
  • δ 限定了模型行为发生任意变化的概率。通常可以将此值设置为一个非常小的数字(约 1e-7),而不会影响效用。一个经验法则是将其设置为小于训练数据大小的倒数。

训练超参数与由此产生的(ε, δ)隐私值之间的关系非常复杂,难以明确陈述。我们目前推荐的方法位于入门页面底部,该方法涉及在保持合理效用的前提下,找到可使用的最大噪声倍增器,然后对噪声倍增器和微批次(microbatches)数量进行缩放。TensorFlow Privacy 提供了一个工具 compute_dp_sgd_privacy,用于根据噪声倍增器 σ、执行的训练步数以及每一步所消耗的输入数据比例来计算(ε, δ)。隐私程度随着噪声倍增器 σ 的增加而提高,随着数据用于训练的次数增加而降低。通常,为了使 epsilon 最多达到 10.0,我们需要根据数据集大小和 epoch 数量,将噪声倍增器设置在 0.3 到 0.5 左右。请参阅分类隐私教程以了解该方法。

有关更多详细信息,请参阅原始的 DP-SGD 论文

你可以使用 compute_dp_sgd_privacy 来为你的模型在给定固定 delta 值的情况下找出 epsilon [../tutorials/classification_privacy.ipynb]

  • q:采样率 - 单个训练点被包含在小批量(mini batch)中的概率(batch_size/number_of_examples)。
  • noise_multiplier:一个浮点数,用于控制训练期间添加的噪声量。通常,噪声越大,隐私性越好,但效用越低。
  • steps:执行的全局步数。

关于 epsilon 和 delta 计算背后的理论详细说明,请参阅采样高斯机制的差分隐私 (Differential Privacy of the Sampled Gaussian Mechanism)