点击上方“CVer”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文作者:周鸣一(论文一作)
https://zhuanlan.zhihu.com/p/123400870
本文已由原作者授权,不得擅自二次转载
本工作已经被CVPR2020收录为oral。审稿分数:1、1、2。
Motivation:我们的工作可以看作是机器学习的模型窃取
论文链接:https://arxiv.org/abs/2003.12703
github:https://github.com/zhoumingyi/DaST
模型窃取的应用有很多(比如说复制目标模型,然后就可以用这个模型生成对抗样本,并迁移到目标模型以完成黑盒对抗攻击),在安全领域有很大的研究价值。但是现在模型窃取的问题主要是需要大量的样本用来获取目标模型(被攻击的模型)的输出,然后根据这些输入-输出来训练一个替身(substitute)模型也可以称作影子(shadow)模型,使得这样的替身模型能够具有和目标模型相似的属性。这样导致的问题有两点:一个是对攻击者来说,目标模型的真实数据获取在某些应用下会非常困难。还有一个在于如果真实样本量不是非常大的情况下,攻击者需要重复利用样本来完成对模型的复制,但是这种重复地对目标模型的输出进行查询是容易被检测到的。所以如果能开发出一种不需要任何真实数据、对目标模型输出的查询为近似随机的模型窃取技术,就能提醒当前的机器学习开发者不要低估模型存在的安全风险。
方法简介:因此,我们针对这样的问题,提出了一种不需要真实数据的替身模型训练方法。如下图所示:
本方法借鉴了GAN的思路,通过一个生成器和一个替身模型进行对抗训练。生成器的目标在于生成让替身模型和目标模型分类结果不一致的数据,而替身模型的目标为模仿目标模型的输出。这就形成了一个相互博弈的系统。生成器为多分枝的结构,每一个分支代表一个类别,最后用生成器会加上一个类别控制的loss用来约束每个分支生成具有特定类别属性的数据。这样的好处为能控制生成器生成具有足够多样性的训练数据给替身模型。如果不加以控制,生成器只会生成具有单一或者部分属性的训练数据给替身模型,这也会造成传统GAN的模型塌缩的问题。替身模型如果在生成器能力足够强的情况下,能够有效复制目标模型的属性,这样就能对目标的功能进行窃取或者进行一系列的后续攻击。比如在对抗攻击任务中,就可以用替身模型和基于梯度的攻击生成方法(FGSM、PGD)生成对抗样本,并迁移到目标模型上完成攻击。
实验结果:得到了替身模型后,我们在对抗攻击上进行了实验。将我们的方法生成的替身模型同那些利用目标模型同样数据集训练的模型进行对比,而我们知道在利用替身模型进行黑盒对抗攻击的任务上,攻击的有效性很大程度上取决于样本的迁移能力,而这样的迁移能力也取决于替身模型与目标模型在一些属性上的相似性。在对抗攻击上的结果显示,该方法训练得到的替身模型在MNIST、CIFAR-10实验上取得了能媲美用完整数据集训练的替身模型的效果。我们还利用azure的MNIST example模型作为目标,在无法知道该目标所使用的结构和机器学习方法的情况下,我们的方法生成的替身模型取得了比用完整数据集训练的模型更好的攻击效果。这些实验结果代表着我们的方法在不需要真实数据的情况下,能获取在对抗攻击任务中能取得较好效果的替身模型。而我们的方法还有一个优势在于我们所用来获取目标模型输出的数据可以看作完全随机的。这样能使得攻击方法对目标的结果查询更难被检测到。
总结:在我们提出这个工作之前,就在ICLR2020投稿了一个前期的工作,那项工作和这片CVPR的很像,区别在于当时没有考虑采用不需要任何数据的模型窃取方法,只是利用了上述GAN的形式,生成器生成噪声给原图,让替身模型不断模仿目标模型,从而制造出与目标模型属性相似的替身模型,大幅提高对抗样本的迁移能力和攻击的成功率,那时候我自己觉得写得不好,导致了审稿人误解(包括AC也没理解对,这真是我问题很大)然后杯具,
ICLR的arxiv链接:https://arxiv.org/abs/2003.12760
审稿链接:https://openreview.net/forum?id=SJlVVAEKwS
所以我CVPR写法上改了很多,不再把这个方法作为一个新的对抗攻击类别(之前命名为对抗模仿攻击),而是作为一个对抗替身攻击的子类别,这样审稿人基本就能快速知道我们的攻击是如何生成的。这项工作并不是为了刷点,主要是介绍了一种在模型窃取中利用GAN的新方法,并且首先实现了不需要真实数据就能训练一个目标的替身,这样就能提醒当前的机器学习开发者认识到当前技术所面临的风险。而之前需要真实数据才能窃取目标信息的技术,可能会让开发者降低警惕,因为在某些任务上,真实的数据是很难获取的。审稿人的意见也是这篇文章的贡献主要为领域内的研究提供了很多insights,包括GAN的新利用(之前是通过GAN来直接生成攻击而我们是窃取模型),和对当前技术的思考。
一些思考:采用模型窃取进行对抗替身攻击方法和当前的主流对抗攻击技术的却别在于:现有的替身攻击需要的信息为目标模型的训练集或者一个该数据集下的预训练模型;现有的基于查询的攻击(比如decision-based attacks)所需要的信息为利用大量查询来生成一次攻击。而利用模型窃取进行替身攻击的方法可以看作两者的交叉结合,其仅需要在训练中利用大量的查询来生成一个替身模型,在实际应用中和替身攻击一样不需要目标的信息。这些攻击的方法其实互有优劣势。而模型窃取技术也在其他的安全领域中具有广泛应用,比如训练数据窃取、membership attacks、model inversion attacks等等,前景还是很广阔的。这片文章只是在一个应用中进行了验证。
展望:该方法在超大的数据集上进行扩展(比如imagenet)时会消耗大量的时间和存储,因为多分枝会到1000个分支,我们没有足够的计算设备和时间完成实验。虽然我们也在CIFAR-100上完成了100个类别的实验,效果也不错只是因为篇幅原因没有放上去(后续有时间放到github上),但是我们的代码至少需要4个2080ti的gpu训练1周多的时间完成。大家可以试想在imagenet上所需要的资源和时间。所以未来的发展可以为如何降低计算量或者避免多分枝的结构,而采用更节省空间和时间的结构。
重磅!CVer-论文写作与投稿 交流群已成立
扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满1300+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加微信群
▲长按关注CVer公众号
请给CVer一个在看!