PrivacyRaven:实现模型反转的概念验证
什么是PrivacyRaven?
PrivacyRaven是一种机器学习保障和研究工具,用于模拟针对训练好的机器学习模型的隐私攻击。它支持模型提取和仅标签成员推理攻击,目前正在开发模型反转支持。
在模型提取攻击中,用户试图窃取或提取一个训练好的深度学习模型,该模型输出对应于每个类的概率向量或简单分类。例如,考虑一个检测人脸特定情绪的分类器。该分类器将返回一个指定每种情绪可能性的向量,或者简单地返回最可能的情绪作为其分类。重要的是,用户只能对分类器进行黑盒查询访问,不会收到任何其他信息。
为了执行模型提取攻击,用户首先使用随机未标记数据查询模型,以识别模型返回的所有分类。然后,该信息可用于近似目标分类器。具体来说,攻击者使用公共数据源获取合成数据(即类似数据,如面部图像和情绪分类的数据集),并在该数据上训练替代的固定架构模型。
如果成功,此类攻击可能产生严重后果,特别是对于将其实际模型隐藏在付费API后面的服务;例如,攻击者可以以低成本近似服务的模型,准确度略有下降,从而获得对受害者服务的巨大经济优势。由于PrivacyRaven在最严格的威胁模型下运行,模拟用户仅具有查询访问权限的攻击,模型提取也是PrivacyRaven其他攻击(即成员推理攻击)的关键组成部分。
我致力于实现对模型反转攻击的支持,旨在恢复用于训练目标模型的私有数据。模型反转攻击使用模型提取来获得对忠实近似目标的替代分类器的白盒访问。
什么是模型反转?
在模型反转攻击中,恶意用户针对一个预测每个类置信度值向量的分类器;然后用户试图恢复其训练数据以损害其隐私。
事实证明,具有模型背景知识的用户实际上可能能够获得目标模型训练数据的合理近似。(有关此类近似的示例,请参见下图中从面部识别系统恢复的图像。)这是多篇论文的核心思想,包括Ziqi Yang等人的“通过辅助知识对齐进行对抗性神经网络反转”,这构成了我实现模型反转的基础。
基于背景知识对齐的模型反转攻击在现实世界中有许多用例和后果。想象一个恶意用户针对上述面部情绪分类器。用户可以通过从搜索引擎抓取相关图像来构建自己的数据集,运行图像通过分类器以获得其相应的置信度值,并从值构建概率向量;然后用户可以训练一个反转模型,能够从给定向量重建图像的近似值。
反转模型被设计为是目标模型的逆(因此使用“反转”)。攻击者可以输入任意情绪预测向量并获得训练集的重建图像,而不是输入图像并接收情绪分类。
使用上面的例子,让我们更详细地了解用户如何运行模型反转攻击。假设用户可以访问一个情绪分类器,该分类器输出其某些类的置信度值,并知道该分类器是在面部图像上训练的;因此用户具有分类器的背景知识。
用户通过这种对模型的背景知识,通过从公共站点抓取面部图像并处理它们来创建辅助数据集。用户还选择一个能够将构建的预测向量上采样到“重建”图像的反转模型架构。
为了训练反转模型,用户使用辅助数据集中的每个图像查询分类器,以获得分类器对图像的置信度值。该信息用于构建预测向量。由于该分类器可能仅输出输入的前几个置信度值,反转过程假设它确实截断了预测向量,其余条目被清零。例如,如果分类器在5种情绪上训练但仅输出前2种,置信度值为0.5和0.3,用户将能够从这些值构建向量(0.5, 0, 0.3, 0, 0)。
然后用户可以将预测向量输入反转模型,该模型将向量上采样为图像。作为训练目标,用户希望最小化反转模型的均方误差(MSE)损失函数,该函数在辅助集中的图像和模型输出的重建之间按像素计算;然后用户对许多周期重复此训练过程。
接近0的MSE意味着重建图像是真实情况的良好近似,MSE为0意味着重建和真实图像相同。一旦模型被充分训练,用户可以将预测向量输入训练好的反转模型,以获得代表每个类的重建数据点。
请注意,模型反转架构本身类似于自动编码器,如论文中所述。具体来说,分类器可以被视为编码器,反转网络作为解码器,预测向量属于潜在空间。关键区别在于,在模型反转中,分类器是给定且固定的,分类器的训练数据不可用于训练反转网络。
我对PrivacyRaven的其他贡献
虽然我专注于在PrivacyRaven中实现模型反转支持,但在实习的前几周,我帮助改进了PrivacyRaven的文档和多功能性。为了更好地展示PrivacyRaven的某些功能,我添加了详细的Python示例脚本;这些包括展示如何发起攻击和注册自定义回调以在攻击运行期间获得更全面信息的脚本。我还添加了Docker和Google Colab支持,允许用户容器化和运输攻击设置,以及协调和加速攻击的开发。
注意事项和成长空间
PrivacyRaven围绕可用性设计,旨在尽可能抽象掉数据和神经网络工程的繁琐性。然而,模型反转是一种相对脆弱的攻击,取决于微调某些参数,包括分类器和反转模型的输出维度以及反转模型的架构。因此,在可用性和模型反转保真度之间取得平衡被证明是一个挑战。
另一个困难源于模型反转攻击需要满足的众多假设才能产生令人满意的结果。一个假设是用户能够通过用大量数据点查询目标分类器来恢复目标分类器训练的类数。
例如,如果用户试图确定对象识别分类器训练的类数,用户可以用大量随机对象的图像查询分类器,并将该过程中识别的类添加到集合中。然而,如果训练类数很大,这可能并不总是有效;如果用户无法恢复所有类,反转的质量可能会受到影响,尽管Yang等人的论文没有分析对反转质量影响的程度。
此外,Yang等人没有明确说明其分类器和反转模型架构设计背后的原因。在进行实验时,作者使用了CelebA和MNIST数据集并调整了其中的图像大小。他们还为数据集使用了两个独立的反转架构,CelebA反转架构从长度为530的预测向量上采样到64 x 64图像,MNIST反转架构从长度为10的预测向量上采样到32 x 32图像。正如您可以想象的,泛化此攻击以使其可用于任意分类器是困难的,因为最佳反转架构随每个分类器而变化。
最后,作者专注于白盒场景中的模型反转,这不直接适用于PrivacyRaven的仅黑盒威胁模型。如前所述,PrivacyRaven假设用户除了其输出外对分类器一无所知;虽然一般模型反转过程大致相同,但黑盒场景要求用户做出更多假设,特别是在训练数据和分类器输出的维度上。每个关于维度的额外假设都需要考虑和解决,这种固有的定制需求使得为模型反转设计一个一刀切的API非常困难。
下一步
PrivacyRaven尚未为模型反转提供完全稳定的API,但我已经完成了论文的概念验证实现。模型反转API的一些设计决策仍需成熟,但计划是API支持白盒和黑盒模型反转攻击,并使模型反转和提取参数尽可能可定制而不牺牲可用性。我相信,有了这个工作的模型反转概念验证,模型反转API的开发应该是一个相对顺利的过程。
反转结果
概念验证产生的反转结果如下所示。此攻击使用扩展MNIST(EMNIST)数据查询MNIST训练的受害者分类器,以训练替代模型,然后可用于执行白盒反转攻击。模型反转训练过程运行了300个周期,批次大小为100,产生最终MSE损失为0.706。反转质量根据辅助集图像的方向发生显著变化。左侧的图像是来自MNIST集的辅助集图像样本,其标签在括号中;它们的重建在右侧。
例如,0的图像往往有相当准确的重建:
其他辅助集图像的重建看起来与它们相似但与标签矛盾。例如,以下图像似乎描绘了4,但实际上描绘了旋转90度的2。
其他图像也有差或模糊的重建,例如以下旋转的8和9图像。
总体而言,这些结果表明模型反转是一种脆弱的攻击,并不总是产生高质量的重建。然而,还必须考虑上述反转攻击仅使用对分类器的黑盒查询进行。回想一下,在PrivacyRaven当前的模型反转管道中,首先执行模型提取攻击以授予用户对目标分类器的白盒近似访问权限。由于在模型提取和反转过程中都会丢失信息,黑盒模型反转攻击的重建质量可能显著差于其白盒对应物。因此,反转模型即使在最严格的假设下也能为某些图像产生忠实重建的能力确实引起了深度学习分类器训练数据的重大隐私问题。
收获
我非常喜欢在PrivacyRaven上工作,并感谢Jim和Suha为我提供的支持和建议,以使我快速上手。我也感激有机会学习机器学习和安全的交叉性,特别是在隐私保障方面,并获得包括PyTorch在内的深度学习框架的宝贵经验。我在机器学习保障方面的经历激发了我对该领域的新兴趣,我将来肯定会进一步深入研究深度学习和隐私。