原文在 https://zhuanlan.zhihu.com/p/438563580
在差分隐私系列之一:差分隐私的定义,直观理解与基本性质中,我们简单介绍了欧盟隐私保护条例,即个人对数据具有知情权,拒绝权,修正与遗忘权,以及对于自动决策过程的选择权。差分隐私对于数据分析过程提出了严格的隐私保护定义,即对于数据库数据的任何分析,以及根据分析结果与其他信息进行的进一步的合并加工,都不会泄露个人隐私。通俗而言,就是对于任何数据分析员,要求分析员在对数据库进行分析后,对数据库中每一个个体的了解不会超过其在分析开始之前的了解。差分隐私的基本原理是控制单个数据对于整个分析结果的影响,对于简单的数据处理过程(如计算平均工资,统计性别比例),通过在数据分析结果中增加高斯噪声,可以令数据分析的机制满足差分隐私的约束。但是,对于需要多轮训练的复杂深度学习系统,构建差分隐私保护则更为困难。本文主要介绍基于高斯机制的差分隐私深度学习系统:通过在训练过程中施加高斯噪声,构建满足差分隐私要求的深度学习训练系统,并对所得深度模型计算隐私开销。此外,我们也将以Opacus这一基于pytorch的差分隐私训练库为例进行代码讲解。
本文主要参考的文献为
深度学习的训练与推断流程通常由四步组成:
最直接的隐私保护方法是对模型预测直接添加噪声,由于深度学习的模型参数非常容易获取,因此仅仅在预测阶段添加噪声往往无法达到隐私保护的目的。利用差分隐私的传递性特征,即对于满足$(\epsilon,\delta)-DP$的随机算法$\mathcal{M}$,对其结果进行任何形式的处理所构成的新算法$f\circ \mathcal{M}$同样满足$(\epsilon,\delta)-DP$,可得对深度学习系统添加差分隐私的环节应当尽量靠前。
然而,在数据集上直接增加噪声往往会使得数据集本身变得脏而不可用(想象一下需要令两张照片的统计信息不可分辨所需要的噪声尺度)。另一个想法是在训练好的模型参数上直接添加噪声,即$\tilde{\theta}=\theta+\text{Noise}$,利用高斯机制,添加噪声后的参数也具备差分隐私的特性,该特性可以传递到所有的后续推断过程。但是,深度神经网络是一个对参数非常敏感的黑箱,直接对训练好的参数添加高斯噪声会使得整个算法完全失效,因此差分隐私机制需要在训练过程中加入。通过在训练过程中对梯度进行裁剪并添加高斯噪声,可以保证训练过程的差分隐私性质。