意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

2018-06-23    来源:

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
Nicolas Papernot 在 2017、2018 连续两年的 ICLR 上都发表了关于差分隐私方法 PATE 的论文。如今大家都意识到了隐私问题是模型设计中有必要考虑的因素,设计模型时也愿意考虑 PATE 这样的方法。不过在 cleverhans 博客近期的一篇博客中,Nicolas Papernot、Ian Goodfellow 两人揭示了一项意想不到的发现:对隐私问题的改善其实可以带来表现更好的机器学习模型,两者并不冲突,而是盟友。

这篇博客内容编译如下。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

机器学习的许多应用中(例如医疗诊断),我们希望机器学习算法不要把训练数据集中的敏感信息记忆下来,比如患者个人的特殊医疗病史。差分隐私是衡量算法提供的隐私保证的框架。通过差分隐私的方法,我们可以设计能够在隐私数据上负责任地训练模型的机器学习算法。机器学习上差分隐私的工作(包括 MartínAbadi,ÚlfarErlingsson,Ilya Mironov,Ananth Raghunathan,Shuang Song和Kunal Talwar)使机器学习研究人员能够更方便的为隐私研究做出贡献——即使他们对差分隐私中的数学原理不那么精通。在这篇博文中,我们会告诉你如何去做。

重点是一个称为 Private Aggregation of Teacher Ensemble(PATE)的算法集。除了它的名字发音像「法国肉酱」之外,PATE 框架的一个关键是,任何知道如何训练有监督机器学习模型(例如神经网络)的人现在都可以为机器学习的差分隐私研究做出贡献。PATE 框架通过仔细协调几种不同机器学习模型的行为来实现隐私学习。只要您遵循 PATE 框架指定的程序,最终得到的总模型将具有可衡量的隐私保证。其中每个单独的机器学习模型都使用普通的监督式学习方式训练,我们的许多读者可能已经从 ImageNet 的分类任务或许多其他更传统的机器学习任务中对监督学习有过了解。

如果有人可以为 PATE 使用的单个模型设计更好的架构或更好的训练算法,那么他们也可以改进监督学习的过程本身(即非隐私分类)。事实上,差分隐私可以被认为是一个正规化,能够解决从业者经常遇到的一些问题——即使在不要求隐私保证的时候也是如此。这包括过拟合问题。在这篇文章中,我们阐述了隐私和学习之间愉快的协同作用。特别是,我们介绍了 PATE 最近的一个扩展,它改进了如何协调不同的机器学习模型,以同时提高由 PATE 框架产生的模型的准确性和隐私性。这表明了差分隐私目标与对学习模型的追求是如何一致的。

为什么需要隐私机器学习算法?

机器学习算法是对于大量数据进行研究并更新模型参数来编码数据中的关系。理想情况下,我们希望这些机器学习模型的参数能够编码广泛有效的规律(「吸烟患者更可能患有心脏疾病」),而不是关于特定训练示例的事实信息(「Jane Smith 患有心脏病」)。不幸的是,机器学习算法默认不忽略这些细节。如果我们想用机器学习来解决一个重要的任务,比如制作一个癌症诊断模型,那么当我们发布这个机器学习模型时(例如,为全世界的医生制作一个开源癌症诊断模型),我们也可能会无意中透露有关训练集的信息。恶意攻击者可能能够检查已发布的模型并获得 Jane Smith 的隐私信息。这就是为什么需要差分隐私算法。

如何定义和保证隐私?

科学家们提出了许多方法来在分析数据时提供隐私保护。例如,在分析数据之前匿名化数据非常流行,通过删除隐私细节或用随机数值替换数据。常见的匿名细节包括电话号码和邮政编码。然而,匿名数据并不总是足够的,它提供的隐私保护强度会随着攻击者获取到的数据集中的人信息的数量增加而迅速降低。这里有一个很著名的例子,参与了 Netflix Prize 比赛的研究者虽然会拿到匿名的电影评价数据集,但是如果其中的人同时也在网络电影数据库(IMDb)中公开分享了他们的电影评级,研究人员就能够重新找回一部分人的身份。比如如果 Jane Smith 在 Netflix Prize 数据集中对电影 A、B 和 C 的评价和在公开在 IMDb 上的评价是一样的,那么研究人员可以将两个数据集之间来自 Jane 的数据都链接起来。这将使他们有能力恢复在 Netflix Prize 中但不包括在 IMDb 中的电影评级。这个例子表明了定义和保证隐私是多么的困难,因为很难估计攻击者对于一个人的有用知识范围。

差分隐私是由 Cynthia Dwork,Frank McSherry,Kobbi Nissim和Adam Smith 发明的一种评估框架,用于评估保护隐私机制所提供的隐私保障,它解决了如「k-匿名」(k-anonymity)等之前方法的局限性。基本思想是设计一个机制让部分行为随机化,从而保证隐私。在我们的例子中,所考虑的机制始终是一种学习算法,但差分隐私框架可以用于研究任何算法。

将随机性引入学习算法使得研究人员在直观上很难判断由学习参数定义的模型的哪些行为方面来自于随机性,哪些来自于训练数据。如果没有随机性,我们可以提出如下问题:「当我们在这个特定数据集上训练时,学习算法选择了什么参数?」当学习算法中有随机性的时候,我们就会问这样的问题:「当我们在这个特定的数据集上进行训练时,学习算法在这组可能的参数中选择了一组参数的概率有多大?」

我们使用的这个差分隐私的版本的特点是,如果我们更改训练集中的单个训练样例,学习任何特定参数集的概率要保持大致相同。更改训练样例可能意味着添加或删除训练样例,或更改一个训练样例中的值。这种设计背后的本质想法是,如果单个患者(Jane Smith)不影响学习的成果,那么该患者的病历就不会被记住,并且尊重她的隐私。在这篇文章的其余部分,我们通常把这个概率称为隐私预算(privacy budget)。较小的隐私预算就对应了更强的隐私保证。

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

在这副示意图中,当攻击者不能区分基于三个用户中的两个用户数据采用随机算法产生的结果,和相同算法根据全部三个用户产生的结果时,我们就实现了差分隐私。

PATE 背后的思考

我们的 PATE 方法为机器学习提供差分隐私的基本思路是,如果两个不同的分类器在两个没有共同的训练样例的数据集上训练,二者对一个新的输入分类结果达成一致,于是所得结论不会揭示任何有关单个训练样例的信息。这个结论可能是在没有某一个特定的训练样例的情况下进行的,因为用这个例子训练的模型和没有这个例子训练的模型都得出了相同的结论。

那么假设我们有两个模型在不同的数据上进行训练。当他们就一个输入达成一致时,似乎我们可以发布他们的结果;但如果不幸地,当他们得出没有一样的结果时,接下来要怎么做就不那么肯定了。我们不能单独发布每个模型的分类输出,因为每个模型预测的类可能会泄漏其训练数据中包含的一些私人信息。例如,假设 Jane Smith 属于两个模型中的一个模型的训练数据。如果该模型预测,与 Jane 的记录非常相似的患者患有癌症,而另一个模型(即没有 Jane Smith 训练数据)的预测相反,则可能暴露了 Jane Smith 的隐私信息。这个简单的例子说明了为什么为算法添加随机性是确保提供有效的隐私保证的必备要求。

PATE 如何工作?

现在让我们逐步了解 PATE 框架如何以这个发现为基础,可靠地从隐私数据中学习的。在 PATE 中,我们首先将隐私数据集划分为数据子集。这些子集是不同的分区,因此任何分区所包含的数据之间不会有重叠。如果 Jane Smith 的记录位于我们的私人数据集中,那么它只包含在其中一个分区中。我们在每个分区上训练一个称为「teacher」的机器学习模型。如何训练这个模型没有任何限制。这实际上是 PATE 的主要优点之一:构建「teacher」模型的学习算法是不可知的。所有的「teacher」模型都解决了相同的机器学习任务,但他们的训练过程都是独立进行的。也就是说,只有一个「teacher」在训练期间分析了 Jane Smith 的记录。这里是这个框架的一部分的例子。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

我们现在有一套独立训练的「teacher」模型集合,但没有任何隐私保证。我们如何使用这个集合进行尊重隐私的预测呢?在 PATE 中,我们增加了噪音,同时将每个「teacher」单独进行的预测聚合起来,以形成一个统一的预测。我们计算产生每个预测类的「teacher」模型数量(即每个类的投票数),然后通过添加从拉普拉斯或高斯分布采样的随机噪声来扰乱计数。熟悉差分隐私文献的读者知道噪声最大化机制。当两个输出类别的投票数相同时,这种噪音将确保拥有最多投票数的类将是随机选择的这两个类中的一个。另一方面,如果大多数「teacher」模型产生了同一个分类结果,增加噪音并不会改变这个类得到最多投票数的事实。这种微妙的协调为噪声聚合机制所做的预测提供了正确性和隐私保证——只要「teacher」之间的共识度足够高。下图描述了聚合机制是「teacher」之间达成共识的一个设置:将随机噪声添加到投票计数并不会改变候选分类的标签。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

为了清楚起见,我们用二元医学诊断任务说明了聚合机制,但其机制可以延伸到许多类别。现在,让我们分析这个机制的结果——如果 Jane Smith 患有癌症,从红色模型(基于唯一包含 Jane Smith 的数据分区进行训练的「teacher」模型)可以知道,与 Jane 有相似的记录是判断病人是否患有癌症的特征,并因此改变了其对测试输入(与 Jane 相似)患有癌症的预测。现在有两个「teacher」预测的分类是「癌症」(2 票投给「癌症」),而另外两个「teacher」预测的分类为「健康」(2 票投给「健康」)。在这种情况下,加在两个投票计数上的随机噪音可以防止聚合的结果反映任何「teacher」的投票以保护隐私:噪声聚合的结果同样可能是「健康」或「癌症」。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

在这一点上,PATE 提供了差分隐私的 API:通过噪声聚合机制预测的标签都有严格的差分隐私保证,从而限制隐私预算用于标记该输入。在我们的示例中,我们可以限制预测标签受训练「teacher」的隐私记录影响的概率,包括 Jane Smith 的例子。我们采用 Moments Accountant 和 Renyi Differential Privacy 的两种技术中的一种来计算限制范围。通过使用每个查询的投票直方图,我们评估聚合结果的概率因注入噪声而改变。然后我们将这些信息汇总到所有查询中。在实践中,隐私预算主要取决于「teacher」之间的共识以及增加了多少噪音。「teacher」之间意见一致性越高,表现为产生同一类别结果的票数越多,往往趋向于更小的隐私预算。某些情况下,在计算「teacher」对于分类结果的投票数之前增加大量的噪音也会产生较小的隐私预算。回想一下,较小的隐私预算对应着更强的隐私保证。

但是,框架在有一点上面临两个限制。首先,由聚合机制得到的每个预测都会增加总隐私预算。这意味着,当要预测许多标签时,最终总的隐私预算会变得很大——在这一点上,所提供的隐私保证变得毫无意义。因此,API 必须对所有用户限制查询的最大数量,并在达到上限时获取一组新的数据来训练新的「teacher」模型集合。其次,我们不能公开发布「teacher」模型的集合。否则,攻击者可以检查已发布「teacher」的内部参数,以了解训练模型的隐私数据。出于这两个原因,PATE 中有一个额外的步骤:创建一个「student」模型。

「student」模型是通过一种保护隐私的方式将「teacher」模型集合获得的知识转化进行训练的。当然,噪声聚合机制是其重要的工具。「student」从一组未标记的公共数据中选择输入,并将这些输入提交给「teacher」集合来标记它们。噪声聚合机制会给出隐私标签,「student」会用这些标签来训练模型。在我们的工作中,我们尝试了两种变体:PATE 只在已标记的输入上(以监督的方式)训练学生,而 PATE-用已标记和未标记的输入(以半监督方式使用生成式对抗网络或虚拟对抗训练)。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

「student」模型是 PATE 的最终产品,由它来响应最终用户的任何查询预测。在这一点上,隐私数据和「teacher」模型可以安全地被丢弃:「student」是用于推断的唯一模型。现在来看看上述归纳的缺点现在如何解决。首先,一旦「student」训练完成,整个隐私预算就被定为一个固定值。其次,在最坏的情况下,能够访问「student」内部参数的攻击者只能恢复训练「student」隐私标签。这种保证源于噪声聚合机制。

PATE 对隐私和学习的良好兼顾

您可能已经注意到,隐私保证和聚合机制预测的标签的正确性都源于「teacher」模型之间的高度一致性。事实上,当大多数「teacher」对预测达成一致时,增加噪音不太可能会改变得到最多「teacher」投票的分类结果。这为聚合机制提供了非常强大的隐私保证。同样地,许多模型得出一致的分类结果表示对该预测的正确性充满信心,因为这些「teacher」模型是独立于不同的数据分区进行训练的。这直观地说明了为什么 PATE 能够利用隐私和学习之间的一些良好的协同作用。

这可能令人惊讶。事实上,差分隐私作为一种属性是很常见的,它是一种可有可无的属性,但它与性能之间产生了必然的权衡。然而,机器学习的情况有所不同。差分隐私实际上与机器学习的目标完全一致。例如,记住一个特定的训练点,如 Jane Smith 的病历,在学习过程中对隐私的侵害,也是一种过拟合的形式,并且损害了与 Jane 的相同病历的患者的模型的泛化能力。此外,差分隐私意味着某种形式的稳定性(但事实并非如此)。

这个观察结果使我们在最近的论文中完善了 PATE 聚合机制的设计。这种新机制——Confident Aggregator——是有选择性的:「teacher」只回答「student」提出的一些问题。当「teacher」提问时,我们首先检查「teacher」之间的共识是否足够高。如果获「teacher」中投票最多的类标签的票数大于阈值,我们接受「student」的查询。如果不是,我们拒绝它。阈值本身是随机的,以便在选择过程中提供隐私。一旦选择了一个查询,我们就会继续使用原始的噪声聚合机制:我们为每个标签对应的每个投票计数添加噪音,并返回票数最多的标签。这个过程如下所示(在一个任务中有 6 个类,以避免在二元情况下误导人物的简化)。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

实际上,这意味着我们的隐私预算现在花在两件事上:选择和回答查询。但是,由于我们选择回答的问题具有「teacher」之间高度一致的特点,所以用于回答查询的隐私预算非常少。换句话说,我们可以将 Confident Aggregator 作为一种机制,将原始机制中消耗大部分隐私预算的查询过滤掉。因此,在「student」性能水平相同时,Confident Aggregator 提供的隐私预算总额要小于最初的噪声聚合机制。下图将这种改进可视化为由原始机制(GNMax)和完善机制(Confident GNMax)回答的(「student」)查询数量的函数,并使用数据相关的分析,我们采用 Moments Accountant 或 Renyi differential privacy 方法。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

机器学习研究人员如何改进 PATE 模型?

影响我们方法提供的隐私保证强度的两个主要因素:

1、「teacher」之间的共识:当这个共识很强时,意味着几乎所有的「teacher」都做出了相同的标签预测,减少了输出相应标签时所花费的隐私预算。这直观地说明所做的预测是所有「teacher」所学习的具有普遍性的情景,即使他们是在无交集的数据集上进行训练的。

2、「student」的查询的数量:每次在训练「student」时对「teacher」进行标签查询,「teacher」花费在预测该标签上的预算将被添加到总隐私成本中。因此,用尽可能少的「teacher」 查询来训练「student」会加强所提供的隐私保证。

这两点都可以从纯粹的机器学习的角度来解决。加强「teacher」共识度要求可以为每个「teacher」提供很少的数据。改善这些模型的个体准确度和泛化能力很可能有助于增强模型共识度。与监督学习下的「teacher」模型训练不同,减少「student」查询的数量是一个半监督学习问题。例如,MNIST 和 SVHN 的最先进的隐私保护模型是用 PATE-G 进行训练的,PATE-G 是使用生成式对抗网络以半监督方式训练「student」的框架变体。「student」可以使用相对较大的未标记输入,并且必须尽可能少地接受「teacher」的监督。

为了推动这方面的工作,PATE 框架是开源的(https://github.com/tensorflow/models/tree/master/research/differential_privacy/multiple_teachers),并作为 TensorFlow 模型库的一部分提供。简单起见,代码使用公开可用的图像分类数据集,如 MNIST 和 SVHN。您可以复制它并在 UNIX 环境下适当设置 PYTHONPATH 变量,如下所示:

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

PATE 的第一步是训练「teacher」模型。在这个演示中,我们使用了 MNIST 的数据集和一个大小为 250 的」teacher「集合(请参阅 PATE 的论文来讨论为什么这是一个好的选择)。

 

意想不到的盟友:改善隐私问题可以带来表现更好的机器学习模型

 

这里会保存250个「teacher」的检测点,现在我们可以下载这些模型并用聚合机制来进行「student」的监督训练。

python train_student.py --nb_teachers=250 --dataset=mnist --stdnt_share=1000 --lap_scale=20 --save_labels=True

这将使用来自测试集的前 1000 个输入来训练「student」,测试集是由我们的 250 个「teacher」模型集并采用1/20的拉普拉斯噪声聚合机制进行标注的。这还将保存一个文件/tmp/mnist_250_student_clean_votes_lap_20.npy,其中包含「teacher」预测的所有标签,我们用这些标签评估「teacher」的隐私程度。

要了解我们「student」模型保证的差分隐私范围的值,我们需要运行分析脚本,这将使用训练「student」时保存的有关「teacher」共识的信息来执行隐私分析。这里,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 Agggregator mechanism(信任聚合机制)的读者可以在 https://github.com/tensorflow/models/tree/master/research/differential_privacy/pate 找到相关的代码。

更多PATE资源

最初发表在 ICLR 2017 的 PATE 论文 https://arxiv.org/abs/1610.05755

ICLR 2018 的 PATE 论文 https://arxiv.org/abs/1802.08908 将这种方法拓展到了有大量类别以及数据不平衡的情况

GitHub code repo for PATE

GitHub code repo for the refined privacy analysis of PATE

结论

在机器学习中,隐私的存在可以被认为是一个盟友而不是敌人。随着技术的提高,差分隐私很可能成为一种有效的正规化方法,它可以产生更好的模型。在 PATE 的框架内,机器学习研究人员即使不是差分隐私保护领域的专家,也可以为改进差分隐私保护做出重大贡献。

via www.cleverhans.io

标签: 安全 代码 脚本 数据库 网络

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:2018年俄罗斯世界杯,运用了哪些「智能硬件」?

下一篇:银行业出路在于数字化