【导读】在机器学习的许多应用中,如用于医疗诊断的机器学习,我们希望机器学习算法不记忆有关训练集的敏感信息,例如个别患者的特定病史。差分隐私(Differential privacy)是一个算法提供的度量隐私保障的框架。通过差分隐私的角度,我们可以设计出机器学习算法,对私有数据进行负责任的模型训练。作者(与Martín Abadi、lfar Erlingsson、Ilya Mironov、Ananth Raghunathan、Shuang Song和Kunal Talwar)关于机器学习的差分化隐私的工作使机器学习研究人员很容易为隐私研究做出贡献,这篇文章将向你展示如何做到这一点。
作者 | Nicolas Papernot、Ian Goodfellow
编译 | 专知
参与 | Xiaowen
Privacy and machine learning: two unexpected allies?
差分隐私的关键是一个称为PATE(Private Aggregation of Teacher Ensembles)的算法家族。PATE框架的一个伟大之处,除了它的名字,在于任何知道如何训练一个有监督的ML模型(如神经网络),都可以为机器学习的差分化隐私研究作出贡献。PATE框架通过仔细协调几个不同ML模型的活动来实现隐私学习。只要你遵循PATE框架指定的过程,整个结果模型将有可测量的隐私保证。每个独立的ML模型都使用普通的监督学习技术进行训练,我们的许多读者可能从ImageNet分类或许多其他更传统的ML追求中熟悉这些技术。
如果有人能够为Pate使用的任何单个模型设计更好的体系结构或更好的训练算法,那么他们也可以改进监督学习本身(即非隐私分类)。事实上,差分隐私可以被认为是一个规范者,能够解决从业人员经常遇到的一些问题——即使在不需要隐私的情况下也是如此,包括过拟合。我们在这篇文章中详细阐述了隐私和学习之间的这些愉快的协同作用。特别是,我们介绍了PATE最近的一个扩展,提高了PATE框架所产生的模型的准确性和保密性。这表明,差分隐私的目标是学习模型良好的推广性能。
为什么我们需要隐私机器学习算法?
机器学习算法是通过研究大量数据并更新其参数来编码数据中的关系来工作的。理想情况下,我们希望这些机器学习模型的参数编码一般模式(“吸烟患者更容易患心脏病”),而不是关于特定训练实例的事实(“Jane Smith患有心脏病”)。不幸的是,机器学习算法不学习默认忽略这些细节。如果我们想用机器学习来解决一个重要的任务,比如制作一个癌症诊断模型,那么当我们发布机器学习模型(例如,通过为全世界的医生开一个开源的癌症诊断模型)时,我们也可能无意中泄露有关训练集的信息。恶意攻击者可以检查已发布的模型并了解Jane Smith的私有信息。这就是差分隐私的来源。
我们如何定义和保证隐私?
科学家们已经提出了许多在分析数据时保护隐私的方法。例如,在对数据进行分析之前匿名化是很流行的做法,方法是删除私有信息或用随机值替换它们。通常匿名的细节的常见例子包括电话号码和邮政编码。然而,匿名数据并不总是足够的,它提供的隐私随着对手获取数据集中所表示的个人的辅助信息而迅速降低。著名的是,这一策略使研究人员能够将电影评分数据的一部分匿名化,该数据集发布给了Netflix奖的参与者,当时这些人还在互联网电影数据库(IMDb)上公开分享了他们的电影评分。如果Jane Smith在Netflix奖数据集中并在IMDb上将相同的评分分配给电影A、B和C,那么研究人员就可以将与Jane对应的数据跨两个数据集联系起来。这反过来又会让他们恢复Netflix奖的收视率,而不是IMDb。这个例子说明了定义和保证隐私是多么困难,因为很难估计对手可以获得的关于个人的知识的范围。
差分隐私是一种框架,用于评估旨在保护隐私的机制所提供的保障。它由Cynthia Dwork、Frank McSherry、Kobbi Nissim和Adam Smith发明,解决了以往方法的许多局限性,如k-匿名。其基本思想是将机制的部分行为随机化,以提供隐私。在我们的例子中,考虑的机制总是一种学习算法,但是差分隐私框架可以应用于任何算法的研究。
将随机性引入学习算法很难区分由学习参数定义的模型的哪些行为方面来自随机性,哪些来自训练数据。如果没有随机性,我们就可以问这样的问题:“当我们在这个特定的数据集上训练它时,学习算法会选择哪些参数?”考虑到学习算法中的随机性,我们反而会问这样的问题:“当我们在这个特定的数据集上对它进行训练时,学习算法在这组可能的参数中选择参数的概率是多少?”
我们使用差分隐私的一个版本,它要求如果我们改变训练集中的单个训练示例,学习任何一组参数的概率大致相同。这意味着添加训练示例、删除训练示例或更改一个训练示例中的值。直觉是,如果一个病人(Jane Smith)不影响学习的结果,那么病人的记录就不能被记住,她的隐私也会受到尊重。在这篇文章的其余部分,我们经常把这个概率称为隐私预算(privacy budget)。较小的隐私预算与更强的隐私保障相对应。
在上面的例子中,当对手不能根据三个用户中的两个用户的数据从基于所有三个用户的数据的相同算法返回的答案中区分随机算法产生的答案时,我们实现了差分隐私。
PATE背后的直觉是什么?
我们为机器学习提供差分隐私的PATE方法【1】是基于一种简单的直觉:如果两个不同的分类器在两个不同的数据集上训练,没有共同的训练示例,那么这个决定就不会显示任何单个训练示例的信息。无论是否有任何单一的训练实例,都可以作出决定,因为使用该示例训练的模型和没有该示例训练的模型都得出了相同的结论。
假设我们有两个模型在单独的数据上训练,我们不能单独发布每个模型的类输出,因为每个模型所预测的类可能泄漏其训练数据中包含的一些私有信息。例如,假设Jane Smith仅贡献两个模型中的一个的训练数据。如果该模型预测患者的记录与Jane的癌症非常相似,而另一个模型预测相反,则揭示了Jane的私人信息。这个简单的例子说明了为什么对算法添加随机性是保证它提供任何有意义的隐私保证的必要条件。
PATE是如何工作的?
现在让我们逐步了解PATE框架如何以此观察为基础,从隐私数据中负责任地学习。 在PATE中,我们首先将隐私数据集划分为数据子集。这些子集是分区,因此任何一对分区中包含的数据之间不会有重叠。如果Jane Smith的记录位于我们的隐私数据集中,那么它只包含在其中一个分区中。我们在每个分区上训练一个称为teacher的ML模型。teacher如何接受训练没有任何限制。这实际上是PATE的主要优点之一:对于用于创建teacher模型的学习算法是不可知的。所有的teachers都解决了相同的机器学习任务,但他们都是独立进行的。也就是说,只有一位teacher在训练期间分析了Jane Smith的记录。下面是这个框架的一部分的例子。
我们现在拥有一套独立训练的teacher模型,但没有任何隐私保障。我们如何使用此系综来做出尊重隐私的预测?在PATE中,我们添加了噪声,同时聚集了由每个teacher所做的预测,以形成单一的共同预测。我们统计出对每个类别投票的teacher的数量,然后通过添加从拉普拉斯或高斯分布采样的随机噪声来扰动该计数。熟悉差分隐私文献的读者将认识到噪声最大化机制。当两个输出类从teacher接收到相等(或准相等)的投票时,噪声将确保具有最多票数的类将是随机选择的这两类中的一个。另一方面,如果大多数teacher都认为是同一个类别,将噪音添加到投票计数不会改变这类获得最多票数的事实。这种微妙的协调提供了有噪声的聚集机制所做的预测的正确性和隐私,只要teacher之间的共识足够高。
下图描述了聚合机制是teacher共识较高的一种设置:在投票计数中添加随机噪声不会改变候选人标签。
为了清晰起见,我们用二进制医学诊断任务演示了聚合,但是机制扩展到了大量的类【2】。现在让我们分析一下这种机制的结果,如果Jane Smith患上癌症,红色模型是唯一在包含Jane Smith数据的分区上接受训练的老teacher,它现在已经了解到,与Jane相似的记录是癌症患者的特征,因此,它对测试输入的预测(Jane的预测类似)改为“癌症”。现在有两名teacher投票赞成“癌症”这个标签,而剩下的两名teacher则投票赞成“健康”。在这些情况下,两个投票计数中添加的随机噪声会阻止聚合结果反映任何teacher为保护隐私而进行的投票:噪音聚合的结果同样可能是“健康”或“癌症”。
在这一点上,PATE提供了可以被认为是一种差分隐私的API:由嘈杂聚合机制预测的每个标签都有严格的差分隐私保证,将隐私预算绑定到标记该输入的开销。在我们运行的例子中,我们可以确定标签预测的概率受我们训练的teacher的任何个人记录的影响,例如Jane Smith。我们应用两种技术中的一种称为Moments Accountant和Renyi 差分隐私来计算这个界限。使用每个查询的投票直方图,我们估计作为噪声注入结果的聚合结果的改变的概率。然后,我们将这些信息聚集在所有查询上。在实践中,隐私预算主要取决于teacher之间的一致性以及增加了多少噪声。teacher之间的共识越高,分配给某一类的票数越多,倾向于更小的隐私预算。到某一点,在计算teacher指派的选票之前,添加更大的噪音也会产生更小的隐私预算。回想一下,较小的隐私预算对应于更强的隐私保障。
然而,该框架目前面临两个限制。首先,聚合机制所做的每个预测都会增加总的隐私预算。这意味着,当预测到许多标签时,总隐私预算最终会变得太大——此时,提供的隐私保障变得毫无意义。因此,API必须对所有用户设置最大数量的查询,并获得一组新的数据,以便在达到上限时学习新的teacher集合。第二,我们不能公开公布teacher模型的集合。否则的话,对手可以检查公布的teacher的内部参数,了解他们训练的隐私数据。出于这两个原因,PATE中有一个附加步骤:创建一个student模型。
student通过以保护隐私的方式传输teacher集合获得的知识来进行训练。当然,噪声聚集机制是实现这一目标的关键工具。student从一组未标记的公共数据中选择输入,并将这些输入提交给teacher集合以进行标记。噪声聚合机制以隐私标签响应,student使用这些标签来训练模型。在我们的工作中,我们试验了两个变体:PATE只根据有标记的输入(有监督的方式)训练student,而Pate-G则用标记和未标记的输入来训练student(半监督的方式使用生成对抗网络(Generative Adversarial Networks)或虚拟对抗训练(Virtual Adversarial Training))。
student模型是PATE的最终产品。它的部署是为了响应来自最终用户的任何预测查询。此时,隐私数据和teacher模型可以被安全地丢弃:student是唯一用于推理的模型。请观察上述两个陷阱现在是如何解决的。首先,一旦student完成训练,整个隐私预算就被固定为一个不变的值。第二,能够访问student内部参数的对手在最坏的情况下只能收回student训练过的标签,而这些标签是隐私的。这种保证来自于噪声聚集机制。
PATE在隐私和学习之间的愉快协同作用
你可能已经注意到,隐私保障和聚合机制预测的标签的正确性源于teacher之间的强烈共识。事实上,当大多数teacher同意一个预测时,增加噪音不太可能改变获得最多选票的类别。这将为聚合机制带来很强的隐私保障。类似地,许多teacher同意使用标签表示对该预测的正确性有信心,因为这些teacher模型是独立于不同的数据分区进行训练的。这就是为什么PATE能够在隐私和学习之间进行愉快的协同作用。
事实上,将差分隐私作为一种很好的性质呈现是很常见的,但它会带来性能上的必要折衷。然而,机器学习是不同的,实际上,差分化隐私与机器学习的目标是一致的。例如,在学习过程中记住一个特定的训练点——比如Jane Smith的病历——是对隐私的侵犯。这也是一种过拟合的形式,损害了该模型对病历与Jane的相似的患者的推广性能。此外,不同的隐私意味着某种形式的稳定性(但事实并非如此)。
这一观察促使我们在最近的论文中为PATE设计了一种改进的聚合机制,该机制是对原始工作的后续工作。这种新机制是有选择性的:teacher只回答student提出的一些问题。当teacher提出问题时,我们首先检查teacher之间的共识是否足够高。如果分配给teacher最受欢迎的标签的票数大于阈值,我们接受student的查询。如果没有,我们就拒绝它。阈值本身是随机的,以便在此选择过程中提供隐私保护。一旦选择了查询,我们就继续使用原始的噪声聚合机制:向每个标签对应的每个投票计数中添加噪声,并以最多的票数返回标签。下面说明了这个过程。
实际上,这意味着我们的隐私预算现在花在两件事上:选择和回答查询。然而,由于我们选择回答的问题的特点是teacher之间的高度共识,所以回答这些问题所需的预算非常少。换句话说,我们可以认为该聚合器是一种机制,它过滤掉了在原始机制中消耗我们大部分隐私预算的查询。因此,在相同的student表现水平上,该聚合器提供的总隐私预算比原来的噪声聚合机制要小。下图将这种改进可视化为由原始机制(简单GNMAX)和精化机制(Confident GNMAX)回答的(student)查询数的函数,当我们使用数据依赖(data-dep)分析时,这是通过应用Moments Accountant和Renyi差分隐私来实现的。
ML研究人员如何为Pate建立改进的模型?
有两个因素主要影响我们的方法所提供的隐私保障的力度:
1. teacher之间的共识:当这一共识很强时,意味着几乎所有teacher都会做出相同的标签预测,当输出相应的标签时,隐私预算就会减少。这在直觉上对应于这样一种情景,即所做的预测是所有teacher学习的一种概括性,即使他们是在不相交的数据集上接受训练的。
2. student询问次数:每次student在训练期间向teacher查询标签时,teacher用于制作该标签的预算将被添加到总隐私成本中。因此,以尽可能少的teacher提问来训练student,加强了提供的隐私保障。
这两点都可以从纯ML的角度来解决。要加强teacher共识,就需要一个人可以用很少的数据来训练许多teacher。提高这些模型的个别准确性和泛化很可能有助于提高共识。与全监督的teacher训练不同,减少student查询的数量是一个半监督的学习问题。例如,在MNIST和SVHN上,最先进的隐私保护模型都是使用PATE-G进行训练的,PATE-G是该框架的一个变体,它使用生成的对抗性网络以一种半监督的方式对student进行训练。student可以获得一组相对较大的未标注输入,它必须在尽可能少的teacher监督下学习。
为了促进这些努力,PATE框架是开源的,可以作为TensorFlow模型仓库[3]的一部分使用。为了保持简单,代码使用了公开可用的图像分类数据集,如MNIST和SVHN。你可以克隆它并在UNIX机器上适当地设置PYTHONPATH变量,如下所示:
cd
git clone https://github.com/tensorflow/models
cd models
export PYTHONPATH=$(pwd):$PYTHONPATH
cd research/differential_privacy/multiple_teachers
Pate的第一步就是训练teacher模型。在这个演示中,我们使用MNIST数据集和一个由250名teacher组成的集合(请参阅Pate论文来讨论为什么这是一个很好的选择)。
python train_teachers.py --nb_teachers=250 --teacher_id=0 --dataset=mnist
python train_teachers.py --nb_teachers=250 --teacher_id=1 --dataset=mnist
...
python train_teachers.py --nb_teachers=250 --teacher_id=248 --dataset=mnist
python train_teachers.py --nb_teachers=250 --teacher_id=249 --dataset=mnist
现在,我们可以加载这些teacher,并应用聚合机制来监督student训练。
python train_student.py --nb_teachers=250 --dataset=mnist
--stdnt_share=1000 --lap_scale=20 --save_labels=True
这将训练student使用我们的250名teacher标记的测试集的前1000输入和一个引入拉普拉斯1/20级噪声的聚合机制。将保存一个文件/tmp/mnist_250_student_clean_votes_lap_20.npy 包含teacher制作的所有标签,我们用来评价student的隐私。
要了解我们的student模型所保证的差分隐私界限的值,我们需要运行分析脚本。这将执行隐私分析,使用有关teacher共识的信息,在训练student时保存。在这里,noise_eps参数应该设置为2/lap_scale。
python analysis.py
--counts_file=/tmp/mnist_250_student_clean_votes_lap_20.npy
--max_examples=1000 --delta=1e-5 --noise_eps=0.1 --input_is_counts
此设置使用原始的噪声聚合机制复制PATE框架。有兴趣使用我们在最近的文章中介绍的Confident聚集器机制的读者可以在这里[4]找到相关的代码。
更多PATE资源
发表在ICLR2017的原始PATE论文[5],以及ICLR oral的记录[6]
ICLR2018 论文[7],将PATE扩展到大量类别和不平衡数据
PATE代码[8]
PATE精细隐私分析代码[9]
结论
在机器学习的背景下,隐私可以被看作是盟友而不是敌人。随着技术的改进,差分隐私很可能成为一个有效的规则者,产生更好的行为模型。在PATE框架内,机器学习研究人员也可以在改进差分隐私保障方面做出重大贡献。
参考链接:
【1】https://arxiv.org/abs/1610.05755
【2】https://arxiv.org/abs/1802.08908
【3】https://github.com/tensorflow/models/tree/master/research/differential_privacy/multiple_teachers
【4】https://github.com/tensorflow/models/tree/master/research/differential_privacy/pate
【5】https://arxiv.org/abs/1610.05755
【6】https://www.youtube.com/watch?v=bDayquwDgjU
【7】https://arxiv.org/abs/1802.08908
【8】https://github.com/tensorflow/models/tree/master/research/differential_privacy/multiple_teachers
【9】https://github.com/tensorflow/models/tree/master/research/differential_privacy/pate
链接:
http://www.cleverhans.io/privacy/2018/04/29/privacy-and-machine-learning.html
更多教程资料请访问:专知AI会员计划
-END-
专 · 知
人工智能领域主题知识资料查看与加入专知人工智能服务群:
【专知AI服务计划】专知AI知识技术服务会员群加入与人工智能领域26个主题知识资料全集获取
[点击上面图片加入会员]
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
请加专知小助手微信(扫一扫如下二维码添加),加入专知主题群(请备注主题类型:AI、NLP、CV、 KG等)交流~
请关注专知公众号,获取人工智能的专业知识!
点击“阅读原文”,使用专知