黑客深度学习:通过示例进行模型反转攻击


与其他应用程序相比,深度学习模型似乎不太可能成为隐私攻击的受害者。然而,存在确定实体是否用于训练集中的方法(称为成员推理的对抗性攻击),并且包含在“模型反演”下的技术允许仅在给定模型输出(有时还有上下文信息)的情况下重建原始数据输入。这篇博文展示了模型反转的端到端示例,并探讨了使用 TensorFlow Privacy 的缓解策略。

在机器学习模型的背景下,个人数据的私密性如何?例如,用于训练模型的数据。有些模型的答案很简单。以 k-最近邻为例。有没有即使没有完整的数据集的模型。或者支持向量机。没有支持向量就没有模型。但是神经网络呢?它们只是一些函数的组合,不包括数据。

馈送到已部署的深度学习模型的数据也是如此。人们不太可能反转来自大型 ResNet 的最终 softmax 输出并取回原始输入数据。

从理论上讲,“入侵”一个标准的神经网络来监视输入数据听起来很虚幻。然而,在实践中,总会有一些现实世界的背景。上下文可能是其他公开可用的数据集,可以链接到所讨论的“私人”数据。这是一个用于倡导差异隐私的流行展示(Dwork 等人,2006 年):采用“匿名”数据集,从公共来源挖掘补充信息,并随意取消匿名记录。这种意义上的某些上下文通常用于“黑盒”攻击,即假设没有关于被黑客入侵的模型的内部信息的攻击。

但是上下文也可以是结构性的,例如在这篇文章中演示的场景中。例如,假设一个分布式模型,其中的层集运行在不同的设备上——例如嵌入式设备或移动电话。(这样的场景有时被视为“白盒” (Wu 等人,2016 年),但在普遍的理解中,白盒攻击可能预设了一些更多的内部知识,例如访问模型架构甚至权重。我因此,我更愿意称其为“白人”。)——现在假设在这种情况下,可以拦截执行模型更深层的系统并与之交互。基于该系统的中级输出,可以执行模型反演(Fredrikson et al. 2014),即重构馈入系统的输入数据。

在这篇文章中,我们将演示这种模型反演攻击,基本移植在给定的办法笔记本中发现PySyft库。然后我们尝试不同级别的ε- 隐私,探索对重建成功的影响。第二部分将利用之前的博文中介绍的 TensorFlow Privacy 。

第 1 部分:操作中的模型反演

示例数据集:世界上所有的字母 1
这里使用的模型反演的整体过程如下。由于没有或几乎没有关于模型的内部知识,但有机会重复查询它,我想学习如何仅根据模型输出重建未知输入。独立于原始模型训练,这也是一个训练过程;但是,一般不会涉及原始数据,因为这些数据不会公开。尽管如此,为了获得最大的成功,攻击者模型的训练数据与假设的原始训练数据尽可能相似。例如,考虑图像,并假设连续层代表连续粗粒度特征的流行观点,我们希望代理数据与真实数据共享尽可能多的表示空间——直到最终分类之前的最高层.

如果我们想以经典的 MNIST 为例,我们可以做的一件事就是只使用一些数字来训练“真实”模型;其余的,用于训练对手。不过,让我们尝试一些不同的事情,这可能会使工作变得更难,同时也更容易。更难,因为数据集的特征样本比 MNIST 数字更复杂;由于同样的原因,更容易:对手可能从复杂的任务中学到更多。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM