查看原文
其他

TensorFlow Privacy 简介:使用训练数据的差异化隐私进行学习

Google TensorFlow 2021-07-27

文 /  Carey Radebaugh,产品经理; Ulfar Erlingsson,研究员


我们很高兴推出开放源代码库 TensorFlow Privacy (GitHub),它不仅能让开发者更易使用隐私来训练机器学习模型,还能让研究人员借助强有力的隐私保证,更轻松地提升现有的机器学习水平。

注:GitHub 链接

https://github.com/tensorflow/privacy


人们正越来越多地使用现代机器学习打造令人惊叹的新技术和用户体验,其中许多都需要训练机器,使其能够负责任地从个人照片或电子邮件等敏感数据中进行学习。理想情况下,已训练机器学习模型的参数应能对一般模式进行编码,而非仅针对特定训练示例中的具体细节进行编码。为确保这一点,并在训练数据包含敏感信息时提供强有力的隐私保证,我们可以采用基于差异化隐私理论所开发的技术。具体而言,在使用用户数据进行训练时,这些技术可以提供强有力的数学保证,确保模型不会学习或记住任何特定用户的详细信息。额外的保证可以有效强化其他隐私技术提供的保护,无论这些技术是阈值法、数据省略等已经发展成熟的技术,还是诸如 TensorFlow Federated 学习等新技术。这一点对于深度学习尤为有效。



多年来,Google 一直带头开展差异化隐私基础研究以及差异化隐私实用机制的开发(请在 此处 1此处 2 查看示例),近期我们则重点关注机器学习的具体应用(请查看 这篇文章该研究成果,或此研究 论文)。去年,Google 发布了 “负责任的 AI 实践”(Responsible AI Practices)指南,其中详述了我们针对负责任地开发机器学习系统和产品所提供的推荐做法。其实在该指南发布之前,我们就一直致力于协助外部开发者在各自产品中轻松应用此类实践。

注:此处 1 链接

https://arxiv.org/abs/1702.07476

此处 2 链接

https://ai.google/research/pubs/pub42852

这篇文章 链接

https://arxiv.org/abs/1607.00133

该研究成果 链接

https://arxiv.org/abs/1802.08908

论文 链接

https://arxiv.org/abs/1710.06963


在此过程中,我们获得的其中一项成果就是今天所推出的 TensorFlow Privacy 和最新版 技术白皮书,该白皮书更详细地描述了 TensorFlow Privacy 的隐私机制。

注:技术白皮书

https://arxiv.org/abs/1812.06210


您无需具备隐私方面的专业知识或数学功底即可使用 TensorFlow Privacy:标准 TensorFlow 机制的用户亦无需更改模型架构、训练步骤或流程。在训练能够保护其训练数据隐私的模型时,通常您只需做一些简单的代码更改,然后再调整一下与隐私相关的超参数即可。



示例:使用隐私来学习语言

作为差异化隐私训练的具体示例,我们可以考虑针对文本序列进行字符级递归语言模型训练。使用神经网络进行语言建模是一项必不可少的深度学习任务,该任务广泛应用于大量应用程序中,且其中许多都以使用敏感数据开展的训练为基础。我们以 TensorFlow Privacy GitHub 代码库中的示例代码为基础,并使用相同模型架构训练了两个模型,其中一个模型以标准方式开展训练,另一个则采用差异化隐私方法。


在对财经新闻文章(选自标准 Penn Treebank 训练数据集)中的英语内容进行建模时,两个模型均表现良好。然而,如果由于模型未能捕捉到语言分布的一些关键核心特征而导致两个模型出现细微差别,人们就会对差异化隐私模型的实用性产生怀疑。(另一方面,即使隐私模型未能在训练数据中捕捉到某些晦涩难懂的独特细节,其可能仍会保持良好的实用性。)


如要确定隐私模型的实用性,我们可以查看两个模型在训练和测试数据预料库上的表现,并检查它们同意和不同意的语句集。如要查看两个模型的共同点,我们可以分别衡量二者在建模语句上的相似性,确定它们是否都接受同一种核心语言;在本例中,两个模型均表示接受并且都对 98% 的训练数据序列给出高分(即困惑度很低)。例如,两个模型都对下列财经新闻语句(以斜体表示,因为它们都明确位于我们希望学习的分布中)给出高分:

there was little turnover and nothing to stimulate the marketsouth korea and japan continue to be profitablemerchant banks were stronger across the board


如要查看两个模型的差别,我们可以检查二者对哪些训练数据语句的打分出入较大。例如,由于常规语言模型在标准训练过程中牢牢记住了以下三个训练语句,所以它对这三个语句都给出了高分并且接受了它们。然而,差异化隐私模型却对这些语句打分极低,并且不接受它们。(下列语句以粗体表示,因为它们看起来并不在我们希望学习的语言分布内。)

aer banknote berlitz calloway … ssangyong swapo wachterthe naczelnik stands toomy god and i know i am correct and innocent


表面看起来,上面三个语句在财经新闻中应该十分罕见;而且,对于隐私保护而言,它们似乎可当作合理的候选语句,其中一个原因便是这些结构奇怪的罕见语句或许可以在已接受敏感数据训练的模型中识别或透露个人信息。在这三个语句中,第一句是由随机词语组成的长序列,出于一些技术原因而出现在训练数据中;第二句有一部分是波兰语;第三句虽然看起来是很自然的英语语句,但它并非出自用于建模的财经新闻语言。这些句子均由人工筛选,但经完整检查证实,差异化隐私模型不接受的训练数据语句基本都在财经新闻文章的常规语言分布之外。此外,通过评估测试数据,我们可以证明,这类晦涩难懂的语句构成了隐私模型和非隐私模型之间质量损失的基础(困惑度为 1.13 比 1.19)。因此,虽然表面上的困惑度损失约为 6%,但对于我们所关注的语句,隐私模型的性能可能不会受到丝毫影响。


显而易见,两个模型的差异至少有一部分源自于隐私模型未能记住不同于训练数据的罕见序列。我们可以利用先前关于衡量神经网络中无意识记忆的早期研究来量化这种影响;在该研究中,我们需有意向训练数据插入独特的随机 Canary 语句,然后评估 Canary 对已训练模型的影响。在本例中,插入单个随机 Canary 语句已经足以让非隐私模型完全记住该 Canary。但缺点是,使用差异化隐私训练的模型在面对单个插入的任何 Canary 时都无法作出区分;只有在相同的随机序列在训练数据中出现多次后,隐私模型才能充分了解该序列。值得注意的是,各类机器学习模型都存在这种情况(例如,上图中即包含从 MNIST 训练数据中选取的罕见示例);即使模型隐私的数学形式上限过大,以至于无法在理论上提供任何保证时,这种情况也依然存在。



正如上图中可视化流程所示,TensorFlow Privacy 可以阻止记忆此类罕见细节,并确保两个机器学习模型均无法区分在其训练过程中是否使用了某些示例(例如某些用户数据)。



后续步骤和深入阅读

如要获得 TensorFlow Privacy 入门,您可以在 GitHub 代码库 中查看相关示例和教程。具体而言,这些资料包括一份详细的教程,当中会介绍如何使用传统的 TensorFlow 机制对 MNIST 基准机器学习任务进行差异化隐私训练;此外还会介绍一些更新且 需求更高的 方法,指导您使用 TensorFlow 2.0 和 Keras 进行上述训练。

注:GitHub 代码库 链接

https://github.com/tensorflow/privacy/tree/master/tutorials


若要使用 TensorFlow Privacy,您需要采取一项新的关键步骤,即新设置三个超参数,用以控制创建、裁剪和干扰梯度的方式。在训练期间,我们使用经过修改的随机梯度下降法来优化模型,从而确保差异化隐私。该随机梯度下降法会对训练数据示例产生的多个梯度更新值求取平均值,然后将每个梯度更新值裁剪为某个最大范数,并对最终平均值添加高斯随机噪声。这种学习方式会为每个训练数据示例的影响设定上限,并确保所有此类示例均不会因噪声的加入而擅自产生任何影响。设置这三个超参数可能是一门学问,但 TensorFlow Privacy 代码库已就如何为具体示例选择超参数提供了指导准则。


我们希望将 TensorFlow Privacy 开发成一个最佳技术中心,从而以强有力的隐私保证开展机器学习模型训练。基于此,我们鼓励所有感兴趣的人士积极参与进来,具体活动建议罗列如下:


  • 在本篇或 另一篇博文 中深入阅读有关差异化隐私及其在机器学习中应用的具体信息

    (http://www.cleverhans.io/privacy/2018/04/29/privacy-and-machine-learning.html)

  • 若为从业者,您可以尝试将 TensorFlow Privacy 应用至自身的机器学习模型,并可通过反复调整超参数、模型容量和架构以及激活函数等元素,以实现隐私和实用性之间的平衡

  • 若为研究人员,您可以尝试改进对模型参数选择等因素的分析,并通过强有力的隐私保证来提升机器学习技术的实际发展水平

  • 通过提交拉取请求为 TensorFlow Privacy 贡献力量

  • 通过在 GitHub 上提交问题来发问并分享您的评论或疑虑



致谢

感谢 Galen Andrew、Nicholas Carlini、Steve Chien、Brendan McMahan、Ilya Mironov 和 Nicolas Papernot 对 TensorFlow Privacy 做出的贡献。



更多 AI 相关阅读:



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存