手上的东西有点进行不下去,滚过来写专栏作下回顾。上次聊了聊差分隐私的定义,那么现在我们要在差分隐私的框架上实现机器学习任务。
关于差分隐私机器学习这个方向,Kamalika Chaudhuri 在nips17上有一个tutorial 《Differentially Private Machine Learning: Theory, Algorithms, and Applications》,比较全面,完整地介绍了从差分隐私到差分隐私机器学习这么一条脉络,她本人也是当年开创性地将差分隐私和机器学习结合在一起的大佬。这篇文章基本上也是学习了这篇tutorial后的一些收获,有兴趣的同学可以到她的主页获取关于那篇tutorial的资料。
Differential Privacy
shjj:[读书笔记]差分隐私概念初步
简单回顾差分隐私的概念
对于差分隐私算法
一类典型的实现差分隐私的方法为基于原函数的函数敏感度添加Laplace Noise进行扰动。
我们期望得到一类在差分隐私框架下的机器学习模型A,使得原先的机器学习模型具有隐私保护能力。具体而言,即一类经验误差最小化模型,再具体而言...一类线性核的经验误差最小化模型(Logistic Regression/SVM/Least squares...)
首先简单说说线性分类模型的隐私泄露问题。最为直观地,在一维情况下,线性分类器会返回样本的中位数,而中位数通常是一个具体样本的取值,那么这个样本的即被暴露给了获得模型的使用者,我们认为这侵犯到了他的隐私。在高维情况下依然存在相似的情况。具体见发表于SODA13的The Power of Linear Reconstruction Attacks一文。
Private Empirical Risk Minimization
对于机器学习常见的一类经验损失最小化方法,有以下这个形式。
其中
从隐私保护的角度讲,我们只要截断了从原始输入到输出,在其中加入一道隐私保护屏障,具体在哪一步截断则对应于不同的方法。 上图给出了现有的privateERM设想中考虑的截断设置。
- 输入扰动,输入扰动在获取数据时直接为数据添加上噪声,之后的计算基于添加了噪声的数据。
- 目标扰动,目标扰动在目标函数中添加一个随机量,以导出最终模型输出的随机性
- 优化扰动,优化扰动在执行最小化的过程中,设计满足于差分隐私的优化算法
- 输出扰动,输出扰动是最简单直接的Laplace Mechanism思路延续下来的方法,基于输出(模型参数)的敏感度对模型添加噪声
值得一提的是,其中输出扰动,目标扰动和优化扰动(更确切地说是梯度扰动)都是Chaudhuri及她的学生提出来的,真的是太强啦!!!
在具体介绍各个方法前,首先对于ERM这个问题设置作进一步的细化。
首先,考虑生成的是一个线性分类器,它有满足以下条件的输入与输出
在这里我们约束了loss函数的Lipschitz常数,将输入向量
[对于正则项为L1范数的情况,之后也有相应的工作,(Daniel Kifer, COLT2012)]
输出是我们期望得到的一个满足差分隐私的predictor。
接下来是具体的方法
Output Perturbation
刚才提到,输出扰动沿袭了Laplace Mechanism最简单的思路,即考虑函数输出的敏感度来添加噪声,那么在这里我们只需考虑argmin函数输出的敏感度,基于这个敏感度来添加Laplace Noise即得到了一个简单的privateERM方法。
[(Kamalika Chaudhuri, NIPS2008 JLMR2011)]
对于argmin的敏感度,简化推导过程如下
Objective Perturbation
目标扰动在目标函数中添加一个随机量,以导出最终模型输出的随机性。
[(Kamalika Chaudhuri, NIPS2008 JLMR2011)]
考虑在优化终点的情况,对于不加保护的ERM有:
而在目标扰动方法中,构建了随机噪声
考虑目标扰动的隐私保护证明,有
我们可以发现,从随机噪声
目标扰动方法并不基于函数的敏感度,而是通过一个巧妙的方法建立起了随机噪声与输出之间的对应关系,从而实现输出的随机性,形成满足差分隐私的隐私保护算法。这样的方式非常地亮眼,但ummmm很可惜地是后来也没有类似的构建随机性的dpERM方法(暂未读到)。
Optimization perturbation
优化扰动方法考虑构建满足于差分隐私的优化求解算法,这里通常使用 Stochastic Gradient Descent (SGD)方法。[(Shuang Song, GlobalSIP2013)]
考虑SGD的形式有:
在每次更新中添加噪声,以建立隐私保护。
这里存在的一个问题是,由于dp的性质,多次对同一样本进行dp算法会降低隐私保护程度。简单来说,如果你对一个输出多次运行dp后得到这些值,那么通过求均值的方式便可以将噪声的影响消去(因为噪声的期望是0),从而获得数据信息。
所以这里的SGD方法不能够对同一样本求多次梯度,只能够遍历数据集一遍。实验发现若是使用朴素的SGD,效果比较差(只对一个样本计算梯度,迭代混乱),因此加入了batch的方式,并限制每个batch互斥,具体效果下一节作一个展示。
这个方法受限于只能够遍历一次数据集,到底能不能收敛令人担忧,之后的工作对于多次遍历场景下dp-SGD的隐私保护程度进行了探索。[(Raef Bassily, FOCS2014) (Martín Abadi, CCS2016) (Jiaqi Zhang, IJCAI2017)]
Input Perturbation
输入扰动的方法显然是能够实现dp的,但是就目前来看它会毁掉整个ERM的学习性能。
做了两张图,分别表示一维和二维场景下加入Laplace 噪声后的数据变化。
可以发现,原先易分的数据在添加噪声之后的分布完全是混乱的。输入扰动这块目前也没有具有实用性的工作出来。
如果说我们要通过输入扰动方法来实现dp,那么我觉得可能需要一个比较好的抗噪声的表示转换方法,使得加入噪声后的表示依然能够通过ERM进行学习。
Experiment
实验这块因为三种方法两篇论文先后发表,而后一篇(dp-sgd)也未对前两者作比较,故而这里先分别展示两篇论文中的实验结果,然后是我自己的实现中三种方法的性能比较。
Privacy-Accuracy Tradeoff
首先来看模型的学习性能,对于一个dp算法的学习性能考量,我们通常会遍历其dp的privacy budget(
可以看到,目标扰动方法全面优于了输出扰动方法,关于这一点论文中给出了具体的泛化性能分析。理论分析结果与实验结果是一致的,目标扰动保留了更好的学习性能。
Regularization
这个实验比较了不同正则项参数下的模型准确度变化。其中比较有意思的一点是,对于privateERM来说,正则项的增大帮助了提高模型性能。在表中可以看到Non-Private方法在正则项增大的情况下很早就达到了准确度峰值,之后随正则项增加,准确度是降低的,这也是比较符合我们的认识的。但对于privateERM,随着正则项参数的增大,峰值姗姗来迟,这一点可以这么来解释:正则项是有利于形成隐私保护的。最直接地,对于输出扰动,正则项越大,模型的输出受限越大,敏感度越低则噪声越小。
Privacy-Dataset Size Tradeoff
这个实验展示了,在Non-Private方法学习到饱和后,继续增加数据,PrivateERM能够继续提高准确度。
Accuracy-Batch size Tradeoff
这里的实验目的是考虑dp-sgd的优化性能,故而选择目标函数值作为y轴,执行20次的平均值得到private的曲线。可以看到在batch size取1时,优化过程基本是偏离了目标的,且非常不稳定。而batch size=10时,优化的效果是比较好的(逼近于non-private时的优化曲线)。
我自己也作了下实验,对于输出扰动和目标扰动,情况与论文中相似,目标扰动方法全面占优。但梯度扰动即dp-sgd在我这里的结果因为实在是懒得好好去调一下参数了,效果是不如目标扰动方法的。基本上是下面这个样子。
其中majority曲线指直接输出占比较大的类别,lr_NF指non-private logistic regression,分别表示这个问题的上下界。
Conclusion
1 - reduce over-fitting <-> privacy
其实上面关于正则项和增量数据集的实验摆到一起来,我们可以看到抑制过拟合与差分隐私之间的那种微妙的一致性。抑制过拟合的目的是避免模型偏离数据的泛化特征,学到数据集的局部特征,而差分隐私是希望减少个体数据对最终模型的影响。从上面两点来看,正则项和增量数据集两种抑制过拟合的方法都能够提高privateERM的性能。
这不禁令人浮想联翩,那么,其它的抑制过拟合的方法呢?要知道差分隐私方法最大的痛处就是添加的噪声会降低模型的性能,以致失去实用性,若是能够通过加入减少过拟合的方法来引出隐私保护,那么对于差分隐私方法的性能提升将是非常有意义的。
之后 也有看到利用dropout来实现差分隐私的方法。[(Beyza Ermis, 2017)]
当然了,这里还有很多种可能。
2 - methods without sensitivity
目标扰动方法通过在目标函数中加入随机噪声来构建输出模型的随机性以实现差分隐私。这种方法比较有意思在它跳出了函数敏感度的桎梏,怎么来设计新的dp mechanism也是一块荒原啊。
参考文献
[1] Kamalika Chaudhuri, Anand D. Sarwate: Differentially Private Machine Learning: Theory, Algorithms, and Applications nips2017 tutorial
[2] Shiva Prasad Kasiviswanathan, Mark Rudelson, Adam D. Smith: The Power of Linear Reconstruction Attacks. SODA 2013: 1415-1433
[3] Kamalika Chaudhuri, Claire Monteleoni: Privacy-preserving logistic regression. NIPS 2008: 289-296
[4] Kamalika Chaudhuri, Claire Monteleoni, Anand D. Sarwate: Differentially Private Empirical Risk Minimization. Journal of Machine Learning Research 12: 1069-1109 (2011)
[5] Daniel Kifer, Adam D. Smith, Abhradeep Thakurta: Private Convex Optimization for Empirical Risk Minimization with Applications to High-dimensional Regression. COLT 2012: 25.1-25.40
[6] Shuang Song, Kamalika Chaudhuri, Anand D. Sarwate: Stochastic gradient descent with differentially private updates. GlobalSIP 2013: 245-248
[7] Raef Bassily, Adam D. Smith, Abhradeep Thakurta: Private Empirical Risk Minimization: Efficient Algorithms and Tight Error Bounds. FOCS 2014: 464-473
[8] Beyza Ermis, Ali Taylan Cemgil: Differentially Private Dropout. CoRR abs/1712.01665 (2017)
[9] Martín Abadi, Andy Chu, Ian J. Goodfellow, H. Brendan McMahan, Ilya Mironov, Kunal Talwar, Li Zhang: Deep Learning with Differential Privacy. ACM Conference on Computer and Communications Security 2016: 308-318
[10] Jiaqi Zhang, Kai Zheng, Wenlong Mou, Liwei Wang: Efficient Private ERM for Smooth Objectives. IJCAI 2017: 3922-3928
ummm写得有点乱,有什么不足的地方期待您的建议。谢谢~