那我必推荐我们去年在 后门学习 领域写的survey。感谢大家的支持,目前这也是后门学习领域被引次数最多的综述。
在这篇survey中我们对现有的文章进行了分类和总结,并加入了很多我们的思考。同时,我们也在Github上维护了一个资源汇总的仓库:
后门学习(backdoor learning)是一个重要且正在蓬勃发展的领域。与对抗学习(adversarial learning)类似,后门学习也研究深度学习模型的安全性问题,其研究主要包括两大领域:后门攻击(backdoor attacks)及后门防御(backdoor defenses)。
顾名思义,后门攻击希望在模型的训练过程中通过某种方式在模型中埋藏后门(backdoor),埋藏好的后门通过攻击者预先设定的触发器(trigger)激发。在后门未被激发时,被攻击的模型具有和正常模型类似的表现;而当模型中埋藏的后门被攻击者激活时,模型的输出变为攻击者预先指定的标签(target label)以达到恶意的目的。后门攻击可以发生在训练过程非完全受控的很多场景中,例如使用第三方数据集、使用第三方平台进行训练、直接调用第三方模型,因此对模型的安全性造成了巨大威胁。
目前,对训练数据进行投毒是后门攻击中最直接,最常见的方法。 如下图所示,在基于投毒的后门攻击(poisoning-based attacks)中,攻击者通过预先设置的触发器(例如一个小的local patch)来修改一些训练样本。 这些经过修改的样本的标签讲被攻击者指定的目标标签替换,生成被投毒样本(poisoned samples)。这些被投毒样本与正常样本将会被同时用于训练,以得到带后门的模型。值得一提的是,触发器不一定是可见的,被投毒样品的真实标签也不一定与目标标签不同,这增加了后门攻击的隐蔽性。 当然,目前也有一些不基于投毒的后门攻击方法被提出,也取得了不错的效果。
相对于攻击来说,后门防御的类型要更为丰富与复杂。直观上来说,后门攻击就像是使用对应的钥匙开门,因此后门防御也可以从 触发器-后门不匹配、后门移除、触发器移除 这三种设计范式下进行思考与讨论。 General Idea如下图所示:
尽管存在很多相似之处,后门学习事实上与对抗学习之间仍然存在很大的区别。一般来说,对抗攻击关注的是模型预测过程的安全性问题,而后门攻击关注的是模型训练过程的安全性。此外,后门攻击与传统的数据投毒(data poisoning)[另一个关注模型训练过程安全性的研究领域]也有很大的区别:数据投毒的目的是为了降低模型的泛化性能(即希望训练好的模型在测试集上不能有良好的表现),而后门攻击在正常设定下具有和正常模型类似的表现。