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

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

来源:RStudio AI博客

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

不是

同样,输入到部署的深度学习模型的数据也是如此。不太可能有人能反转大型 ResNet 的最终 softmax 输出并返回原始输入数据。

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

上下文 (Dwork 等人,2006 年) Dwork 等人,2006 年 (Wu 等人,2016 年) Wu 等人,2016 年 模型反演 (Fredrikson 等人,2014 年) Fredrikson 等人2014

在这篇文章中,我们将演示这种模型反转攻击,基本上移植了 PySyft 存储库中笔记本中给出的方法。然后,我们尝试不同级别的 \(\epsilon\)-privacy,探索对重建成功的影响。第二部分将使用上一篇博文中介绍的 TensorFlow Privacy。

笔记本 PySyft \(\epsilon\) 上一篇博文

第 1 部分:模型反演的实际应用

示例数据集:世界上所有的字母

(Lake、Salakhutdinov 和 Tenenbaum 2015) Lake、Salakhutdinov 和 Tenenbaum 2015 OmniGlot

图 1:用于训练目标模型的 20 个字母集样本(最初为“评估集”)