AAAI 2022:通过验证嵌入的外源特征防止模型窃取丨AI Drive

模型偷盗攻击可以逆向出一个和被部署的受害者模型具有相似功能的替代模型。训练一个具有良好表现的模型费时费力,因此模型偷盗会对模型所有者带来巨额损失,造成巨大威胁。

针对这种现象,本期 AI Drive,清华大学李一鸣分享其团队发布在 AAAI 2022 的成果:通过验证嵌入的外源特征防止模型窃取。


「AI Drive」是由 biendata 和 PaperWeekly 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果。我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义,从而产生更大的价值。

在本次报告中,他们将从模型所有权验证的角度讨论如何防御模型偷盗。具体的,该研究从原理上揭示了现有方法的缺陷,并提出了一种通过验证嵌入外源特征的防御方法。该方法在保证模型精度的同时,能成功验证模型偷盗攻击的存在,且不会引入新的安全威胁。


讲者介绍:李一鸣,清华大学四年级在读博士生,师从夏树涛和江勇教授。其研究方向为 AI 安全,主要包括后门学习、对抗学习和数据隐私保护。其在 ICCV、 ECCV、 ICLR、 AAAI、Pattern Recognition 等 AI 相关顶级会议和期刊发表学术论文多篇,曾受邀担任 AAAI 2022 会议高级程序委员会成员,NeurIPS、ICML、ICLR 等会议程序委员会成员,以及 IEEE TDSC、IEEE TCSVT、IEEE TII 等期刊审稿人。曾获清华大学‘未来学者’博士奖学金、腾讯犀牛鸟精英人才等荣誉。

本文将基于以下几个主要方向展开讲解:

  • 研究背景

  • 现有方法的回顾和分析

  • 本文所提方法

  • 实验结果

一、研究背景

顾名思义,模型窃取试图获得一个和第三方受害模型具有类似功能的替代模型。例如,攻击者窃取某个被部署的第三方商业模型,希望获得一个和它具有类似效果的替代模型。当然,替代模型和原始模型可能具有不同的结构和参数。


根据攻击者的访问权限,现有的模型窃取方法可以被大致分为三个类别,包括 Dataset-Accessible, model-Accessible Attacks 和 Query-only Attacks。
在第一类攻击中,攻击者可以访问模型的训练数据集,但只能调用模型的 API 来获得输出。在这种情况下,攻击者可以通过知识蒸馏等方式进行模型窃取。
在第二类攻击中,攻击者有受害者模型源文件的访问权限,这类攻击有可能会发生在使用第三方开源模型等情形中,例如使用第三方开源模型去 fine-turning 得到自己的模型。

在第三类攻击中,攻击者只能访问模型来获取其输出,这也是目前最难的一种攻击场景,它可以被用于窃取被部署的第三方商业模型。

目前也有一些工作开始关注如何去防御模型窃取,其主要是通过在受害者模型中引入一些随机性或者扰动的方式来增加模型窃取的成本,进而实现防御。

例如,防御者可以在模型的输出上加入一些随机扰动,来提升攻击者窃取一个模型需要的访问次数,或者降低获得的替代模型的正常精度。

在本次报告的工作中,我们从所有权验证的角度去重新探索如何防御模型窃取。针对某一个可疑的模型,我们验证其是否含有特定的行为。如果这个模型有特定行为,我们就认为这个模型是从受害者处窃取而来。

二、现有方法的回顾和分析

目前,仅有一项工作(Dataset Inference)是从所有权验证角度进行模型窃取的防御。具体的,该方法验证某一个可疑模型是否用到受害者模型的训练数据,进行所有权验证。本质上来说,该方法利用受害者模型训练数据集中的一些内源特征进行所有权验证。

我们注意到,这个方法依赖于一个潜在的假设:如果该第三方模型不是窃取得到的,那么该模型就不会学习到受害者模型训练数据集中包含的内源特征。而这个假设有可能是不成立的。

为了验证这个观点,我们做了一些简单的实验。具体的,我们把一个数据集随机的切割成两个互不相交的部分,在左边部分训练一个 VGG,右边部分训练一个 ResNet。同时,我们也通过对图片加上一些随机高斯噪声的方式,生成了一个左边部分的带噪声版本,并在其上训练一个 VGG。然后,我们使用 Dataset Inference 方法判断这些 VGG 是否从 ResNet 中窃取得到,以及该 ResNet 是否从 VGG 中窃取得到。在上表1中,p-value 越小越表明该方法认为这个模型是被窃取而来的。

可以看到,所有模型 p-value 均远小于 0.01。该结果表明,Dataset Inference 认为这些模型都是窃取而来。但我们知道,这些模型都是在不同的数据集以及不同的模型结构上训练而来,那么原则上来说他们不应该被认为是窃取而来的。

我们也注意到,在噪声数据集训练得到的模型,p-value 要大于干净的数据集上训练得到的模型。这是由于相比于原始的数据集中的分布,噪声数据集的潜在分布可能发生了一些变化,所以导致模型学到了不同的特征。

我们也注意到,Dataset Inference 与基于后门的模型水印方法有某些类似之处。因此,这类水印方法可能会成为一种潜在的防御措施。模型水印最初的目的是用来检测盗窃的行为,即直接拷贝模型,而不是用来防止模型窃取。

具体来说,这类方法首先使用后门攻击来对模型进行水印,然后根据模型的输出结果来进行所有权验证,也就是验证模型中是否存在特定的后门。但是这些防御措施都基于一个潜在的假设:训练时用到的触发器和偷盗得到的替代模型中的后门对应的潜在触发器是相同的。该假设在它原先的场景中是成立的,因为这偷盗和被偷盗模型本就是一个模型。

但在我们这个场景中,模型窃取会引入一些更加复杂的过程,例如蒸馏。在这种情况下,被窃取的替代模型中的后门可能会被改变,甚至是直接被移除,所以这些方法的效果有限。

我们做了一个简单的实验来验证这个观点。在上表中,ASR 越高,表示使用训练中的触发器的攻击效果越好,也就是说能够成功验证水印。我们可以看到,在被偷盗模型上,使用训练的触发器已经很难再激活后门,因此没有办法通过这种方式来进行所有权验证。

为了进一步去了解失败的原因,我们也使用有目标的通用对抗攻击,生成每个模型对应的潜在的触发器。

上图中,a 是我们训练中使用的触发器,蓝色的框就是触发器的位置,b 是用拷贝来的模型上生成的通用对抗扰动,c 是使用偷盗之后的替代模型生成的通用对抗扰动。

不难发现, b 的潜在触发器和训练中使用的触发器非常相似,但是窃取来的模型上得到的触发器就完全不同。

三、本文所提方法

基于之前的理解,在本文中,我们提出通过验证嵌入的外源特征来防御模型窃取。

在本文中我们考虑的是白盒环境下的防御,也就是说,防御者可以完全地去访问可疑模型的源文件,但是没有其任何训练信息。可能有人会觉得,白盒场景也许没有那么实用,因为谁会把模型交给你让你去测试,其实不然。

我们认为,在未来的生活中,可能会有一项立法,保证之后所有的模型在上线之前都需要首先通过比如 MD5 码等生成模型源文件对应的唯一身份标识,然后在类似于专利局的地方去注册。

这样一来,如果出了什么问题,无论是结果上还是别人控诉你偷盗,都会由特定的第三方执法机构要求模型所有者提供和身份标识相同的模型来进行验证。在这种场景下,其实白盒的验证方式是完全可行的。

这部分将介绍如何嵌入外源特征。

在讲具体的技术细节之前,我们先简单地定义一下内源特征和外源特征。所谓内源特征就是,如果某一个样本来源于某个特定数据集,那么它就已经含有该特征。类似的,外源特征就是指如果某个样本含有该特征,那么它就一定不来源于某个特定的数据集。

它们的定义很简单,但具体实现比较复杂,因为特征的定义本身复杂,再加上深度学习模型本身也是黑箱。

但我们知道,模型在训练的时候,其实会用到一些 Style 的特征,比如说纹理的细节等一些信息。举个例子,比如说这是一个 CIFAR-10 数据集,而样本包含一些油画的纹理,或者甚至是卡通的风格或水墨的风格,那么这个样本就一定不会来源于这个数据集。

基于这样的 motivation,我们通过使用 style transfer 的技术来进行外源特征的嵌入。具体来说,我们从原先的数据集中随机选择若干的样本,然后对 image 做 style transfer。和后门水印不一样的是,我们不会改变这些模型的 label,依旧使用这些样本的 ground truth label。

最终我们训练部署的模型的方式,就是使用刚才那些 style transfer 过的样本,和剩下的一些 benign samples 一起训练。这样得到部署好的模型里面就会含有外源特征的一些信息。

由于我们嵌入的外源特征没有显式的表达,这些特征本身对预测的影响也不大(因为我们不会修改样本的标签),所以说,我们没有办法像后门水印那样直接去验证模型的输出(是不是到了特定的类别),来进行所有权验证。

因此,我们需要额外去训练一个二元分类器,来判断可疑模型是否包含有外源特征的信息。

具体来说,我们首先得到一个包含有外源特征的 watermarked model。然后,用原先干净的数据集去训练一个 benign model。我们使用模型对 transfer 后图片的梯度作为特征进行分类器的训练。如果从 watermarked model 计算得来,其标签为+1,如果是从 benign model 中得来则为-1,以此去训练 Meta-Classifier。

当元分类器学好之后,给定一个 transfer 后的 image,我们可以直接通过其预测结果来进行 verification。如果预测结果是 1,那么判断模型是偷盗来的,否则就不是。

但是这种方法有很大的局限性,其效果会受到样本选择的随机性带来的负面影响。简单来说,如果选不同的样本,它的结果可能会不一样,会有这种不确定性和随机性。

为了解决这个问题,我们设计了一个基于假设检验的方式来提升验证的可信度,简单来说就是验证 suspicious 模型上分类为 1 的概率,是不是显著大于 benign 模型。如果是,则判断该模型是偷盗而来的。具体实现上,我们从原先训练中使用到 transfer 的 image dataset 中随便选 m 个 sample 做配对样本 T 检验。同时计算 Δμ 和 p-value,Δμ 越大且 p 越小,模型是偷盗来的可能性就越大。

四、实验结果

如上图表 3 和表 4 所述,我们的防御方法确实在任何情况下几乎都达到了最佳性能。

从验证角度来说,前三类都是偷盗场景,因此 Δμ 越大越好, p 越小越好。victim 也是一样,毕竟上文所说的直接拷贝模型也是一种偷盗行为。

最下面那个有所不同,它表示的意思是模型并非偷盗而来。在这种情况下,Δμ 越小,p-value 越大越好。

上文说到在训练 watermarking model 的时候,我们会引入一些被 transfer 的图片。在上图右侧部分的结果表明,这样的策略对模型的正常精度不会有特别大的影响。这主要是因为样本的标签没有改变,整个过程某种意义上说很像一种 data augmentation,其不会对模型的性能有很大的负面影响。

本方法的也会受到了一些关键的超参数的影响,主要包括转换率(训练数据集里面含有被 transfer 的图片的比例),以及验证过程中采样 m 的大小。

如上图所示,转化率越大、采样数量越多,验证效果就会越好。

同时,我们也研究了使用不同的 style image 时我们的方法会不会依旧有效的问题。得出的结论是,其实在使用不同的 style image 时,都能获得比较好的验证效果。当然偶尔它会有一定的波动,这也是比较正常的。

在这里我们也讨论了多重偷盗场景下我们方法的有效性。在该场景中,有两个主要的类型,第一个类型就是每次偷盗用的都是同样的方法,第二种类型是偷盗会使用不同的方法,不同的模型结构。

从表格 7 的结果中我们很容易看到,在这两种情况下,我们的方法都能够有一定的验证效果。当然,第一类多重偷盗的防御更加容易,而第二类会更难。我们会在后续的工作中讨论如何防御这种偷盗行为。

其实,还有一点就是,verification 的时候我们用的是训练的时候用到那些 transformed images。所以很多人可能会怀疑,这个方法本身是不是跟 membership inference 是一样的。

为了回应这个疑问,本质上我们需要讨论在验证的时候是不是真的只是用到了某些特定的训练样本,而不是外源特征来进行验证。

这里给到一个实验,之前是基于训练集构造的 transformedimages,现在从干净的测试集里面去随便选 m 张 images 出来,去进行 style transfer,再去做验证。不难发现两者的验证效果是类似的,这说明我们的方法本质上并不是一个 membership inference,它确实只是在验证有没有含有外源特征的一些信息。

总而言之,本次解读首先回顾了现有方法的一些缺陷,从所有权验证的角度去探索这个问题,最后提出了新的方法,获得了较好的效果。

当然,我们的方法某种意义上说,也可以被认为是 data poisoning 这种恶意方法的一种良性使用。

欢迎查阅我们的 paper 和 codes 来获取更多的细节。

Paper 地址:researchgate.net/publication/356717751_Defending_against_Model_Stealing_via_Verifying_Embedded_External_Features

Code 地址:github.com/zlh-thu/StealingVerification

你可能感兴趣的:(AAAI 2022:通过验证嵌入的外源特征防止模型窃取丨AI Drive)