差分隐私是一个用于衡量算法提供的隐私保证的框架,可以使用 ε(epsilon)和 δ(delta)值来表示。在这两者中,ε 更重要,并且对超参数的选择更敏感。简而言之,它们意味着以下内容
- ε 为包含(或删除)单个训练示例时特定输出的概率增加量设置上限。您通常希望它是一个小的常数(小于 10,或者为了更严格的隐私保证,小于 1)。但是,这只是一个上限,ε 的较大值可能仍然意味着良好的实际隐私。
- δ 对模型行为的任意变化的概率进行限制。您通常可以将其设置为一个非常小的数字(例如 1e-7),而不会影响效用。一个经验法则是将其设置为小于训练数据大小的倒数。
训练超参数与最终隐私(以 (ε, δ) 表示)之间的关系很复杂,难以明确说明。我们目前推荐的方法位于 入门页面 的底部,其中涉及找到在仍然具有合理效用的情况下可以使用最大噪声倍数,然后缩放噪声倍数和微批次数量。TensorFlow Privacy 提供了一个工具,compute_dp_sgd_privacy
,用于根据噪声倍数 σ、执行的训练步骤数量以及每一步消耗的输入数据比例来计算 (ε, δ)。隐私量随着噪声倍数 σ 的增加而增加,并且随着数据在训练中使用次数的增加而减少。通常,为了实现不超过 10.0 的 epsilon,我们需要将噪声倍数设置为大约 0.3 到 0.5,具体取决于数据集大小和 epoch 数量。请参阅 分类隐私教程,了解该方法。
有关更多详细信息,请参阅 原始 DP-SGD 论文。
您可以使用 compute_dp_sgd_privacy
找出给定模型的固定 delta 值的 epsilon [../tutorials/classification_privacy.ipynb]
q
:采样率 - 单个训练点包含在小批量中的概率 (batch_size/number_of_examples
)。noise_multiplier
:一个浮点数,用于控制训练期间添加的噪声量。通常,更多的噪声会导致更好的隐私和更低的效用。steps
:执行的全局步骤数量。
有关 epsilon 和 delta 计算背后的理论的详细说明,请参阅 采样高斯机制的差分隐私。