原文在 https://zhuanlan.zhihu.com/p/438563580

差分隐私系列之一:差分隐私的定义,直观理解与基本性质中,我们简单介绍了欧盟隐私保护条例,即个人对数据具有知情权,拒绝权,修正与遗忘权,以及对于自动决策过程的选择权。差分隐私对于数据分析过程提出了严格的隐私保护定义,即对于数据库数据的任何分析,以及根据分析结果与其他信息进行的进一步的合并加工,都不会泄露个人隐私。通俗而言,就是对于任何数据分析员,要求分析员在对数据库进行分析后,对数据库中每一个个体的了解不会超过其在分析开始之前的了解。差分隐私的基本原理是控制单个数据对于整个分析结果的影响,对于简单的数据处理过程(如计算平均工资,统计性别比例),通过在数据分析结果中增加高斯噪声,可以令数据分析的机制满足差分隐私的约束。但是,对于需要多轮训练的复杂深度学习系统,构建差分隐私保护则更为困难。本文主要介绍基于高斯机制的差分隐私深度学习系统:通过在训练过程中施加高斯噪声,构建满足差分隐私要求的深度学习训练系统,并对所得深度模型计算隐私开销。此外,我们也将以Opacus这一基于pytorch的差分隐私训练库为例进行代码讲解。

本文主要参考的文献为

  1. A Tutorial to Differentially Private Machine Learning, Neurips17
  2. Deep learning with differential privacy
  3. Rényi differential privacy
  4. Subsampled Rényi Differential Privacy and Analytical Moments Accountant
  5. Rényi Differential Privacy of the Sampled Gaussian Mechanism
  6. The Composition Theorem for Differential Privacy
  7. Introducing Opacus: A high-speed library for training PyTorch models with differential privacy
  8. A general approach to adding differential privacy to iterative training procedures

差分隐私深度学习系统的基本框架

深度学习的训练与推断流程通常由四步组成:

  1. 构建深度模型并初始化模型参数;
  2. 输入训练数据并计算梯度;
  3. 用梯度下降法更新模型直到收敛;
  4. 将收敛的模型用于数据预测。

最直接的隐私保护方法是对模型预测直接添加噪声,由于深度学习的模型参数非常容易获取,因此仅仅在预测阶段添加噪声往往无法达到隐私保护的目的。利用差分隐私的传递性特征,即对于满足$(\epsilon,\delta)-DP$的随机算法$\mathcal{M}$,对其结果进行任何形式的处理所构成的新算法$f\circ \mathcal{M}$同样满足$(\epsilon,\delta)-DP$,可得对深度学习系统添加差分隐私的环节应当尽量靠前。

然而,在数据集上直接增加噪声往往会使得数据集本身变得脏而不可用(想象一下需要令两张照片的统计信息不可分辨所需要的噪声尺度)。另一个想法是在训练好的模型参数上直接添加噪声,即$\tilde{\theta}=\theta+\text{Noise}$,利用高斯机制,添加噪声后的参数也具备差分隐私的特性,该特性可以传递到所有的后续推断过程。但是,深度神经网络是一个对参数非常敏感的黑箱,直接对训练好的参数添加高斯噪声会使得整个算法完全失效,因此差分隐私机制需要在训练过程中加入。通过在训练过程中对梯度进行裁剪并添加高斯噪声,可以保证训练过程的差分隐私性质。