Press "Enter" to skip to content

《小王爱迁移》系列之36: ICSE 22 | 北大-清华-微软亚研:迈向更安全的迁移学习

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

冬去春来,又到了阳光灿烂的日子。此刻的你,是继续咬着笔头刻苦钻研,还是停下来享受几分春光的和煦?

 

迁移学习的研究热潮随着春天的到来而持续升温 :它继续在各个顶级会议(CVPR’22, NeurIPS’21, ICCV’21, AAAI’22)上大杀四方。自AlexNet于2012年开启了深度学习的研究趋势以来,深度迁移学习从最简单有效的 预训练-微调(Pre-train and Fine-tune) ,到如今方兴未艾的 领域自适应(Domain Adaptation, DA) ,再到近几年如火如荼的 领域泛化(Domain Generalization, DG)元学习(Meta-learning) ,迁移学习在见证了无数研究者的披荆斩棘的同时,其自身也经历着不平凡的发展历程。回顾计算机视觉和自然语言处理领域,我们感恩以ImageNet为首的众多大规模开源数据集、感激以ResNet和BERT为代表的众多预训练模型:是它们所开启的新时代让我们的研究生活变得更加丰富多彩、让人工智能更快地走进千家万户。

 

迁移学习已被广泛应用于生产和生活的各个方面(参考《迁移学习导论》第15章)。 这是一个机遇与挑战并存的时代 ,有很多问题依然悬而未决:我们应该如何更好地利用好迁移学习的能力来完成自己的任务?如何确保迁移学习模型不会被滥用?如何在保证效果的同时降低迁移模型的复杂性?如何进行安全的迁移学习、避免模型受到恶意攻击而对用户造成影响?这与我们之前介绍过的联邦迁移学习有所不同,并不需要考虑用户数据的隐私问题。

 

本文以笔者参与的最近被软件工程领域顶级会议 ICSE 2022 所接收的论文《ReMoS: Reducing Defect Inheritance in Transfer Learning via Relevant Model Slicing》为例,介绍又一充满前景的研究方向:安全迁移学习 (Safe transfer learning)。 ICSE一年仅接收100多篇论文。 论文一作为北京大学张子琪同学、通讯作者为清华大学李元春博士、北京大学郭耀教授。一句话概括:我们的研究成果表明,下游任务可以从预训练模型中继承容易受攻击的权重,为此,我们提出一个 ReMoS 方法,有选择性地筛选出那些对下游任务有用而不受攻击的权重,在 最多损失3%精度 的前提下,使得微调后的模型受攻击率减小:在CV(ResNet)和NLP(BERT和RoBERTa)的实验表明,CV任务上受攻击率有 63%到86% 的减小,NLP任务上有 40%到61% 的减小。

 

特别地,为了促进此领域的研究,我们特别在Github上迁移学习相关区域列出了此领域的重点论文,请大家持续关注: 安全迁移学习资料 。 也欢迎感兴趣的你一起贡献。同时,请大家持续关注我们一直更新的Github迁移学习项目: transferlearning

 

论文链接: https:// jd92.wang/assets/files/ icse22-remos.pdf

 

代码: https:// github.com/ziqi-zhang/R eMoS_artifact

 

问题的提出:安全迁移学习

 

何为安全迁移学习?简而言之,预训练模型已广泛存在于各个深度学习应用中,它们往往是开源的、任何人均可以进行直接访问获取。例如,Pytorch和Tensorflow均有自己的模型库(Pytorch Hub和Tensorflow Hub)以供开发者随时下载任何一个模型,着名的Huggingface也在自己的网站上提供了数万个预先训练的模型。然而,深度网络的复杂性导致其非常容易遭受各种各样的 攻击 ,特别地,预训练模型的结构和参数都对所有人均开放下载,这使得问题更加严重:

 

如果别有用心的人知道你的系统采用了XXNet预训练的网络作为基础模型,那幺他便很轻易地可以对你的迁移学习模型进行攻击。

 

为什幺?因为深度网络的受攻击特性具有 继承性 :预训练网络如果具有某方面的缺点,其也会直接被下游任务继承。正所谓“上梁不正下梁歪”,是也。

 

我们直接给出数据:以对抗攻击(Adversarial attack)和后门攻击(Backdoor attack)为例,在计算机视觉和自然语言处理的几大任务中, 受攻击性的继承率从52%到97%不等 ,即:如果你采用一个预训练模型,那幺它 至少有52%的概率 ,在你微调后依然容易受攻击!

 

因此,安全迁移学习的目的便是: 在最大限度保留预训练模型有用知识的前提下,最大限度地降低其从预训练模型中继承的受攻击性。

 

如下图所示,我们旨在最大限度保留与学生任务相关的知识,而减少那些受攻击的知识(红色叉)。当然,此事无法根除,故我们在右图中仍然保留一个叉。

 

已有的研究工作

 

首先,迁移学习模型可以被攻击吗?

 

对预训练模型安全性的研究最早可以追溯到2018年。来自加州大学圣芭芭拉分校和芝加哥大学的研究者在系统安全顶级会议USENIX Security 2018上发表了 《With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning》 [1]的论文。文章展示了在可以访问目标数据的情况下,我们可以通过对输入进行扰动来攻击迁移学习模型。随后,发表于ACM CCS 2018的 《Model-reuse attacks on deep learning systems》 [2]再次验证了这个现象,并且通过生成语义重要性图来进一步攻击深度预训练模型。之后,加州大学戴维斯分校的学者在ICLR 2020上发表了一篇 《A target-agnostic attack on deep models: Exploiting security vulnerabilities of transfer learning》 [3]的论文。其成果表明,如果我们针对预训练网络的softmax层进行简单的反向最大值训练,其可以轻易被攻破,从而输入任意图像,其便会将其分类成我们想要的标签。

 

因此,迁移学习模型是不安全的、可以被攻击的。

 

那幺,如何预防此类攻击?

 

最简单、也是最直观的两种方式便是:

从头开始训练(Train from scratch),即抛弃掉预训练模型。这样显然不会被攻击,然而却损失了预训练带来的好处,使得训练时间变长、效果变差。
直接微调(Fine-tune),即正常进行微调。这样显然能够保证完全利用预训练模型的知识,但由于其过于保守,使得受攻击特性也得到了保留,完全无法进行防御。

还有其他办法吗?一种A+B的方式,我们称之为” Fix-after-transfer “,即在微调结束后,我们再引入一些成熟的防攻击方法从而消除模型的受攻击性。然而,此两阶段方法本身过于耗时,并且由于我们自己下游任务数据量的有限性,并不能很好地训练防御模型。

 

最近的一种方法被称之为” Fix-before-transfer “,指的是我们首先对下游任务模型进行训练,之后再通过与预训练模型进行联合训练来做知识迁移。例如,Renofeation [4]方法便加入了dropout、特征规范化、随机权重平均等技巧来使其模型不容易继承对抗攻击性。然而,此种方法也过于复杂,并不能对任意的深度网络都产生效果。

 

总结来看,我们需要什幺样的安全迁移方法?至少需要满足以下几个条件:有效性,即确实能起到防御作用、同时不降低模型性能;通用性,即针对绝大多数深度网络(例如CNN和Transformer结构)均能适用;以及高效性,即不会显着增加计算开销。

 

我们的方法:ReMoS

 

我们提出的方法叫做 ReMoS (Relevant Model Slicing) ,其从预训练模型中“有选择性地”选择出那些对下游任务有帮助的权重、同时将那些容易受攻击的权重遗忘,从而大大降低模型的受攻击性、且能保持预训练模型的精度优势。

 

我们的学习目标表示如下:

 

 

即在老师网络的权重 中将那些好的权重 筛选出来,从而最大化模型对于正常输入 (左边部分)和异常输入 (右边部分)的表现。其中 函数为迁移学习过程, 为学生数据集。

 

为了完成这一目标,我们设计了四个步骤,如下图所示。首先,覆盖频率筛选(Coverage frequency profiling)利用学生数据,将预训练模型中对于学生数据相关性高的神经元和权重都找出来;然后,序数分值计算(Ordinal score computation)则利用上一步得出的学生数据相关性和老师网络中的权重重要性,计算网络对于学习数据的综合重要性;接着,相关切片生成(Relevant slice generation)依据序数值,生成我们需要保留的那些权重;最后,针对这些权重进行保留,余下的则重新初始化进行训练。

 

我们将依次介绍这些步骤。

 

第1步:覆盖频率筛选

 

此步骤用于找出网络中与学生数据相关的那些神经元和权重。

 

如果一个神经元激活值大于一个给定的阈值 ,则我们称其为一个对学生任务有用的神经元。这些神经元的集合被称为神经元覆盖(Neuron coverage)。具体而言,对于一个 层网络(用 来表示每层的激活值),其神经元覆盖被计算为:

 

 

则,在整个数据集 上,其神经元覆盖被计算为:

 

 

对于权重,其权重覆盖(Weight coverage)为计算为这一权重所连接的两个神经元的覆盖之和:

 

 

如此,我们便计算得到了神经元和权重的覆盖。

 

第2步:序数分值计算

 

此步骤基于上一步得到的权重覆盖,与原始的预训练网络中权重与源任务的相关性综合计算,得到实际的学生网络权重。

 

首先,预训练网络如何评估其与源任务的相关性?答案是权重的大小(Magnitude)。通常来说,一个权重值越大,则其与教师任务(源任务)相关性越强,则这部分越有可能蕴含容易被攻击的权重。因此,我们的学习目标可以表示为学生任务的精度减去教师网络权重的大小:

 

 

然而,此步计算过程几乎无法进行。原因是两部分参与运算的量纲不一样:例如,MIT Indoor scenes数据集在ResNet-18网络上的覆盖值的范围为 ,但ResNet-18本身网络的权重范围为 。因此,两部分无法直接计算。

 

为了克服此挑战,我们提出了用序数(Ordinal)来代替值大小的计算方法。具体操作方式为:将所计算的值按照升序进行排列,以序数来代替值,进行计算。则两部分的值分别为表示为一个 函数:预训练网络的权重大小被表示为 ,覆盖的大小被表示为: 。二者之间便可直接进行计算,得到序数分值(Ordinal score):

 

 

第3步:相关切片生成

 

此步骤根据上一步生成的序数分值进行相关权重筛选。我们对序数分值进行排序,那些分值较大的权重则为与学生任务密切相关、又不容易受攻击的权重:

 

 

例如,在方法的示意图中,我们取排名靠前的9个权重为相关切片,则其余最小的3个权重被重新初始化。

 

第4步:微调

 

这是最后一步。此步骤为传统的微调方式:如果在切片 中的权重,则直接从预训练模型中继承;否则重新初始化。

 

通过以上步骤,我们便可以得到不容易受攻击的微调后的学生网络。

 

讨论

 

值得注意的是,ReMoS方法并未显着增加学生网络的计算量,因为我们只需要在第一步时对整个学生数据集做一次前向传播,此外并不涉及其他的反向传播,因此其效率可以得到保证。另外,此方法针对绝大多数神经网络结构均是有效的,因此可以适用于大多数任务。我们将在后面的实验中对此进行验证。

 

实验验证

 

我们在两大领域的任务中利用不同的网络进行验证:

计算机视觉任务:针对ResNet-18和ResNet-50这两个经典网络,在MIT Indoor Scenes, Caltech-UCSD Birds, 102 Category Flowers, Stanford 40 Actions, 和 Stanford Dogs这5个数据集;
自然语言处理任务:针对BERT和RoBERTa两个经典网络,在SST-2,IMDB,以及QNLI三个数据集。

为了衡量方法的有效性,我们采用两个指标综合评价:

准确率ACC:首当其冲,评价学生任务上的有效性,此指标越高越好;
攻击继承率DIR(Defect Inheritance Rate): 衡量学生网络从教师网络中继承的受攻击性,此指标越低越好。

有效性

 

我们通过人工设定攻击模拟、生成对抗样本等方式做了一系列实验,均能证明ReMoS方法的有效性。

 

以下是CV任务的一些结果图:

 

以下是NLP任务的一些结果:

 

我们看到,在CV和NLP不同数据上,我们的方法最多牺牲3%的精度,同时能带来最多的DIR减小(CV任务上63%到86%的DIR减小,NLP任务上40%到61%的DIR减小),说明其效果非常显着。

 

效率

 

我们在两个数据集上验证方法的效率。从下图可以看到,ReMoS方法 几乎不会显着增加计算量 ,其收敛速度与fine-tune基本一致,显着好于从头开始训练。

 

可解释性

 

我们画出了剪枝之后权重的分布图,可以明显地看到,普通的fine-tune的权重没什幺明显变换,都分布在1附近;我们的方法可以剪掉那些比较大的权重。另外,右边的图画出了剪枝之后的权重和网络层的关系。此结果说明随着网络层数据的加深,网络越来越与学生任务相关,因此,在深层的权重大部分被重新初始化了。这一发现也符合深度网络可迁移性的结论(深度网络的可迁移性) [5,6]。

 

总结

 

本文提出了安全迁移学习这一研究方向的重要性,并介绍了我们在这一方向上最新的研究进展。相信随着深度迁移学习变得越来越大众化,安全迁移学习这一方向会愈加重要。我们相信今后这一方向会出现更多更好的研究成果。当然,也希望大家在之前的传统迁移学习方向上继续埋头“刷榜”的同时,能够跳出来,对安全性多一些思考。

 

重要的事情再说一遍:为了促进此领域的研究,我们特别在Github上迁移学习相关区域列出了此领域的重点论文,请大家持续关注: 安全迁移学习资料 。也欢迎感兴趣的你一起贡献。同时,请大家持续关注我们一直更新的Github迁移学习项目: transferlearning

 

References

 

[1] Wang B, Yao Y, Viswanath B, et al. With great training comes great vulnerability: Practical attacks against transfer learning[C]//27th {USENIX} Security Symposium ({USENIX} Security 18). 2018: 1281-1297.

 

[2] Ji Y, Zhang X, Ji S, et al. Model-reuse attacks on deep learning systems[C]//Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. 2018: 349-363.

 

[3] Rezaei S, Liu X. A target-agnostic attack on deep models: Exploiting security vulnerabilities of transfer learning[C]. ICLR 2020.

 

[4] Chin T W, Zhang C, Marculescu D. Renofeation: A Simple Transfer Learning Method for Improved Adversarial Robustness[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 3243-3252.

 

[5] Yosinski J, Clune J, Bengio Y, et al. How transferable are features in deep neural networks? NIPS 2014.

 

[6] Neyshabur B, Sedghi H, Zhang C. What is being transferred in transfer learning? NeurIPS 2020.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。