对抗样本对人工智能应用的威胁及防护

Posted by JY on June 30, 2020

1. 背景介绍

  • 研究者已发现在某些人工智能模型的输入上增加少量“干扰”,可在人类无法分辨区别的情况下使模型对输入的分类结果做出错误判断。这种经过处理后的输入样本通常被称为对抗样本

  • 寻找对抗样本可以归纳为下述问题:

    针对模型$F:x \rightarrow y$,其中x为模型的输入,y为模型的输出。对于原输入x,找到输入x’,使得模型的输出被最大化为目标标签y’,y’不等于y,且要求x与 x’的“距离”最小,此时训练的目标不再是模型的优化而是生成符合条件的细微扰动

    举例:

    输入一张车辆头部的影像,训练好的inceptionV3模型可以很好地识别出图片的所属分类为“sports car”。然后设计合适的反馈机制并逐步训练得到了一张人类看起来与原图并无区别的车辆头部影像,再次输入给inceptionV3模型,模型给出的识别结果却成了“mountain bike”。

    imgimg

  • 模型能够获得优质结果其实最取决于接近“无穷”量级的训练数据。因此在所有有效输入组成的整个数据搜索空间中,我们通过上述“训练”方式所能得到的模型就是一个在相对有限情况下有效的模型了。也正是因为这个局限性,给予了攻击者利用对抗样本去攻击模型的足够空间

2. 对抗样本防护技术

一般可分为主动防护方式和被动防护方式。主动防护方式是指通过技术加固,把神经网络本身的对抗样本防护能力进行提升;而被动防护方式则是独立于神经网络,通常置于神经网络输入之前,起到针对对抗样本的防护作用。

主动防护方式

网络蒸馏:将第一个深度神经网络输出的分类可能性结果输入到第二个网络中进行训练。通过这种方式,网络蒸馏可以从原有神经网络中提取知识来增进网络的鲁棒性。通过这种技术处理,降低了模型对小扰动的敏感度从而提升了对对抗样本的抵抗能力。(《Distillationas a defense to adversarial perturbations against deep neural networks》)

img

对抗训练:主要原理是将对抗样本同样作为训练数据对神经网络进行训练

Goodfellow在其论文《Explaining and harnessingadversarial example》、Ruitong Huang在其论文《Learning witha strong adversary》里在模型的训练过程中同时生成对抗样本,然后将生成的对抗样本添加到训练集中,以此方式进行对抗训练,在MNIST数据集上实现了防护。

Kurakin和Goodfellow在其论文《Adversarial machinelearning at scale》中使用一半的原始训练集图片和一半的对抗样本进行训练,在ImageNet数据集上体现了良好的防护效果。

Tramèr等人在其论文《Ensemble adversarial training: Attacks and defenses》中将来自使用不同训练方法得到的训练样本作为输入,来对抗黑盒对抗样本攻击的可迁移性。

分类器鲁棒化:使得分类器对微小扰动的判断结果不确定性增强

被动防护方式

对抗样本检测:通过串联一个检测器在神经网络来检测输入的合法性。通常是通过寻找对抗样本和正常样本的区别点来建立一个二分类器,分类器输出结果为该样本是否为对抗样本。(《Feature Squeezing:Detecting Adversarial Examples in Deep Neural Networks》)

img

输入重构:将恶意的对抗样本数据转化为非恶意的数据,即经过转化过后的数据将无法在对模型的分类结果产生误导。如将对抗样本图片重构为符合训练图片的分布状态、对对抗样本进行降噪处理等