发明内容
本发明的目的在于提供一种基于激活值分布差异的对抗样本检测方法及系统,可以有效地检测出样本数据中的对抗样本。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一种基于激活值分布差异的对抗样本检测方法,包括以下步骤:
获取待检测样本,所述待检测样本为图像样本;
将待检测样本输入预先训练的图像分类器中,在图像分类器的每个神经网络层经激活函数激活后,得到对应的激活值;
基于待检测样本在各神经网络层的激活值分布进行分析,输出检测结果。
上述方案中,利用正常样本和对抗样本分别在神经网络中的激活值分布存在差异的原理,通过模拟待检测样本在神经网络中的激活值分布,并基于该分布进行分析,可以较为准确地检测出待检测样本是否为对抗样本。
在进一步优化的方案中,所述基于待检测样本在各神经网络层的激活值分布进行分析的步骤,包括:将每层的激活值对应输入至一个预先训练的二分类器中,二分类器将激活值映射为两个逻辑值;将所有的二分类器输出的逻辑值拼接成一个特征向量,并输入到另一个二分类器中,该二分类器的输出结果即为检测结果。
上述方案中,将每层的激活值对应输入至一个预先训练的二分类器中进行分类,得到两个逻辑值,就是在模拟待检测样本在神经网络中的激活值分布,再将所有的逻辑值拼接成一个特征向量并输入到一个二分类器进行分类,一方面实现了基于激活值分布的对抗样本检测,另一方面利用各层分类结果作为特征向量进行再分类具有降维效果,降低处理量,且提高分类结果的准确性,即提高检测结果的准确性。
另一方面,本发明实施例还提供了一种基于激活值分布差异的对抗样本检测系统,包括:
待检测样本获取模块,用于获取待检测样本,所述待检测样本为图像样本;
激活值分布获取模块,用于将待检测样本输入预先训练的图像分类器中,在图像分类器的每个神经网络层经激活函数激活后,得到对应的激活值;
分析模块,用于基于待检测样本在各神经网络层的激活值分布进行分析,输出检测结果。
再一方面,本发明实施例同时提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时,使处理器执行本发明任一实施例中所述方法中的步骤。
再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明任一实施例中所述方法。
与现有技术相比,本发明方法及系统,利用正常样本和对抗样本分别在神经网络中的激活值分布存在差异的原理,通过模拟待检测样本在神经网络中的激活值分布,并基于该分布进行分析,可以较为准确地检测出待检测样本是否为对抗样本,可以降低对抗样本对分类器的影响,使得分类器具有更加准确的分类效果。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在描述本发明之前,先对本发明所利用的原理进行简要阐述。
请参阅图1a、图1b、图1c,图1a中是一个简单的三层神经网络,共有A和B两个类别,VI代表的是某一层被激活的神经元,PI代表的是全体被激活的神经元,白色代表没有被激活,颜色越深则该神经元对整个模型的计算贡献越大。
图1a是正常样本进入该神经网络时,PI和LI的分布情况。可以看到,对于A类样本在该模型的识别过程中,第一层被激活的是①②③三个神经元,且贡献最大的是①号神经元,第二层被激活的是⑥⑦两个神经元,⑥号神经元贡献最大,以此促成了该神经网络识别为A类。而B类样本的识别中,第一层神经元被激活的是②③④,其中④号神经元贡献突出,第二层有⑦⑧两个神经元被激活,⑧号贡献最大,最终该神经网络识别为B类。
图1b是对抗样本经过神经网络的情况,正确标签是A类却被认为是B类,可以看到,该A类对抗样本与对应的A类正常样本的激活分布是有差异的,激活组成由①②③⑥⑦变成了①②③⑦⑧,且各层的激活分布也存在差异。正确标签A类第一层虽然也是①②③被激活,但是明显可以看出该对抗样本第一层被激活的神经元与正常样本相比,颜色存在差异,③号变成了贡献最大的神经元,①号神经元的作用被降低了。对于第二层,该对抗样本的激活组成由原来的⑥⑦转变为⑦⑧,贡献最大的则变为⑧号神经元,最终把本来是A的样本识别成为了B类。
图1c是B类对抗样本进入神经网络的情况,可以看出被预测成了A。虽然正常样本与对抗样本B类激活组成都是②③④⑦⑧,但是明显激活的程度不一样,这也造成了攻击成功。B类本身的第一层激活组成中④号贡献最大,而对抗样本则表现出③号贡献最为突出,削弱了④号的作用,且第二层中与正常样本表现出了完全相反的激活模式,最终导致了该神经网络将样本识别为A类。
由图1a、图1b、图1c可知,对抗样本与正常样本在激活函数后的分布存在很大的差异,特别是随着网络层层数的增加差异会逐渐被放大。因此,可以基于正常样本和对抗样本的激活值分布差异来实现对对抗样本进行检测。
请参阅图2及图3,基于上述原理,本实施例提供了一种基于激活值分布差异的对抗样本检测方法,包括以下步骤;
S101,获取待检测样本,所述待检测样本为图像样本。
本发明方法是针对于图像样本中的对抗样本进行检测,因此待检测样本可以通过相机进行采集获得。
S102,将待检测样本输入图像分类器中,在图像分类器的每个神经网络层经激活函数激活后,得到每个神经网络层对应输出的激活值。
待检测样本输入到图像分类器中后,进入到神经网络层中,待检测样本在神经网络层中被激活函数激活后,输出相应的激活值。
待检测样本可能是正常样本或对抗样本,因为神经元中激活函数对正常样本和对抗样本的激活程度不同,所以正常样本和对抗样本在图像分类器中被激活的程度也会存在分布差异,则图像分类器中各层输出的激活值也会存在较大的分布差异性。
本实施例中图像分类器采用卷积神经网络中的VGG16,VGG16具有13个卷积层、3个全连接层和5个池化层;在卷积层中,卷积核的尺寸为3*3,步长为1,填充方式padding=same,所有池化层均采用核参数2×2,步长stride=2,基于max函数求取最大值来压缩特征图。在其他实施例中,图像分类器可以采用其他卷积神经网络,当然也可以采用非卷积神经网络。
图像分类器是预先训练好的,本实施例中采用CIFAR-10数据集作为图像分类器训练过程使用的数据集。CIFAR-10数据集被广泛应用在深度学习图像识别模型研究中,是三通道的彩色图像,图像内容类别主体明确且单一,一张图像中就一个类别。图片尺寸为32×32,该数据集较MNIST数据集更加符合现实物理世界,并且MNIST的数据尺寸仅为28×28,CIFAR-10数据图像的噪声更大,且数据特征更加复杂。该数据集拥有鸟、马、猫、飞机、鹿、船、卡车、蛙、狗10个类别的数据图像,总数60000张,训练数据50000张,测试用的数据有10000张,CIFAR-10数据对于主体特征比较平均,对每个类别的数据数量都是6000张。CIFAR-10数据集并不是陈列好的图片而是八个文件,数据主体是用二进制存储的,为了方便使用和观察,需要将二进制的数据文件合成了3通道的图片。
损失函数选用softmax交叉熵。在训练过程中,首先使用softmax归一化函数将二分类器输出的逻辑值归化为0和1之间的概率值,然后计算其交叉熵损失函数,最后基于交叉熵损失函数计算总损失函数。
softmax交叉熵函数如下所示:
式(3-1)为softmax归一化函数,该函数能够将二分类器输出的逻辑值归化为0和1之间的概率值;式(3-2)为交叉熵损失函数,其中,m代表了一个batch的样本数量,n代表分类数量,yji指的是类别标签。第三个式(3-3)代表的是训练二分类器的过程中的总损失函数,总损失函数是多个损失函数的和。
激活函数采用rule激活函数,rule激活函数设置在每个神经网络层的输出端。当然地,也可以采用其他激活函数。为了避免激活函数本身带来的误差,优选每个神经网络层的激活函数相同。
为了尽可能防止过拟合的发生,实验中采用了随机剪裁图片进行数据增强,以及正则化和dropout,学习率的设置上采用了指数衰减策略。训练完成后,训练集的正确率为99%,测试集正确率为92%,如图4所示。
S103,将每层的激活值对应输入至一个预先训练的二分类器中,二分类器将激活值映射为两个逻辑值,也就是该二分类器对激活值的分类结果。
在激活函数的输出端接入一个二分类器,激活值从图像分类器的卷积层中输出后,导入到对应的二分类器中,二分类器是提前训练好的分类模型,将激活值映射到多维度(例如512维度)空间,然后再映射成两个逻辑值,两个逻辑值分别表示正常样本的概率和对抗样本的概率。
本实施例中,二分类器的结构包括输入层、隐藏层和输出层。其中,输入层用于输入激活值;隐藏层中包含512个神经元,用于将输入的激活值映射到512维空间然后再映射为两个逻辑值,隐藏层后设置有激活函数;输出层用于输出分类结果。激活值通过二分类器后,每个二分类器都会输出两个数值在0和1之间的逻辑值,一个表示为正常样本的概率,另一个表示为对抗样本的概率。
二分类器是预先训练好的,如图5所示。图像分类器的训练和二分类器的训练分别是独立进行的,且需要先训练得到图像分类器,因为二分类器的训练过程中需要依赖于训练好的图像分类器。
S104,将多个二分类器(即图像分类器中激活函数后接入的所有的二分类器)的输出值拼接形成一个特征向量,再将该特征向量输入到另一个二分类器中,该二分类器的输出结果即为检测结果。
上述步骤S103中的二分类是为了模拟各层激活值的差异性,上述步骤S104利用各层分类结果再进行分类是为了模拟整个待检测样本的差异,基于待检测样本在各神经网络层的激活值分布进行分析,输出检测结果。
另一方面,利用各层分类结果作为特征向量进行再分类也是为了降维考虑,毕竟如果要将所有的激活值拼接到一起做为样本进行最后的分类,该数据量会过于庞大,而且分类效果将无法达到预期的目标。
在图3所示的系统架构中,Input为图像分类器的输入,L(L1~Ln)为激活函数后输出的激活值,Output为图像分类器的输出,C(C1~Cn+1)为二分类器,所有二分类器的结构相同,Result为最终的二分类结果,即检测结果。各个卷积层中经激活函数后得到的激活值对应输入一个二分类器中,经二分类器分类后,n个二分类器的输出值拼接成一个向量,该向量输入二分类器Cn+1中,经Cn+1分类后得到的分类结果即为最终的检测结果。
请参阅图5,在本实施例中,二分类器通过以下步骤训练而得到:
S201,确定出二分类器的模型结构、激活函数及损失函数。
二分类器的模型结构包括输入层、隐藏层和输出层,隐藏层后接relu激活函数,损失函数也是采用softmax交叉熵。
S202,构造样本数据集,所述样本数据集包括对抗样本和与该对抗样本对应的正常样本。
此处也是采用CIFAR-10数据集作为原始数据集。请参阅图6,对于对抗样本的生成,先通过前述预先训练好的图像分类器对CIFAR-10数据集中的50000张图像进行分类,实验中,得到完全分类正确的为49700张,因此以这49700张图像作为原始正常样本。
然后以原始正常样本(49700张)为基础的,首先使用攻击算法对原始正常样本进行攻击处理,得到初级对抗样本;然后再使用前述图像分类器对初级对抗样本进行分类,只选取分类错误的初级对抗样本作为所述对抗样本。
由于对抗样本是只选取的分类错误的初级对抗样本,因此对抗样本的数量可能比原始正常样本的数量少,但是作为样本数据集的对抗样本和正常样本理应是对应的,因此对于正常样本的确定,不是直接以原始正常样本作为正常样本,而是在确定出对抗样本后,从原始正常样本(即最初的49700张图像)中抽选出与对抗样本对应的图像作为正常样本。
由于训练过程中容易出现过拟合情况,也就是在模型训练一段时间后会出现当训练集的损失函数出现下降的趋势时,与此相对的测试集的损失函数基本不变甚至有逐渐增加的趋势,这说明了模型过度拟合了样本数据集空间,并没有真正学习到样本对于标签的真实特征,模型的泛化能力不够。因此,可以加入一些有利于模型鲁棒性的措施,例如从数据的层面出发,采用随机翻转裁剪的方式增强数据集,在训练模型的时候随机遮住一些特征实际上更有利于模型的训练。除了数据增强可以泛化模型以外,还可以通过正则化惩罚权重参数,以及添加dropout层随机训练参数,这三种方法都可以减弱过拟合的发生,使模型更好得训练。
样本数据集中的样本一部分作为训练样本,另一部分作为测试样本,一般的,训练样本与测试样本的比值在5:1左右。
在生成对抗样本的过程中,对于攻击算法,可以采用FGSM、BIM、MIFGSM、DEEPFOOL、C&W等常规算法,可以只采用其中一种攻击算法,也可以多种攻击算法结合使用。
S203,基于所述样本数据集进行二分类器模型训练,也就是将所述样本数据集作为图像分类器的输入,将图像分类器的各神经网络层输出的激活值作为二分类器的输入,进行训练,得到具有区分正常样本和对抗样本能力的二分类器。
在训练过程中,先将样本输入已训练好的图像分类器中,得到图像分类器各层输出的激活值,各个激活值进入对应的二分类器模型中,得到分类结果(两个逻辑值),多个分类结果拼接成一个向量后进入另一个二分类器(Cn+1)中,经该二分类器分类后得到分类结果。训练过程中根据分类结果不断优化模型参数,最终得到分类效果较好的二分类器。图像分类器和n+1(n为图像分类器的神经网络层数,不包括输入层和输出层)个二分类器构成了检测装置(模型结构角度),对检测装置中的二分类器进行训练实质上也是对整个检测装置进行训练,使得整个检测装置具有较强的对抗样本识别能力。
请参阅图7a,展示了对抗样本与对应正常样本在VGG16中各神经网络层激活后的欧氏距离。图7a中,每层得到的5个欧氏距离中,从左至右依次对应的对抗样本分别是C&W、DEEPFOOL、FGSM(ε=8)、IFGSM(ε=8)、MIFGSM(ε=8)。BIM是IFGSM的另一种称呼,是同一种攻击方法,即迭代式的FGSM,也就是I-FGSM(Iterative FGSM)或BIM(Basic IterativeMethod)。从图中可以明显看到,各层后5种对抗样本生成方法生成的对抗样本与正常样本的激活值存在一定的欧式距离,即存在差异。尽管随着层数的变化和攻击方法的不同差异存在波动,但是这种差异显然在激活函数后是存在的,因此可以利用分类的方式对各层模拟这种差异。这也就是本检测器方法会在各激活函数后设立二分类器的原因。
请参阅图7b,展示了对抗样本与对应正常样本在VGG16中叠加激活层后的欧式距离。图7a是各单一激活层次后的两种样本的欧式距离,而图7b是对抗样本与正常样本叠加了本层与之前层次的激活值所组成的向量之间的欧式距离,可以明显看到5种对抗样本生成方法的对抗样本与正常样本的欧式距离随着层数的叠加在逐渐增大,这表明了对抗样本与正常样本在激活函数后总激活差异确实存在,并且这种差异会随着激活层数的增加而逐渐增长。因此在本文的检测方法中利用各层二分类的结果再进行二分类就是为了模拟这种总激活差异。
对训练后的二分类器的分类效果进行了实验验证,分别如下表1和表2所示。
表1
表1是测试集在训练好的二分类器上的正确率,FGSM、BIM、MIFGSM对抗样本生成算法的正确率与其扰动值的大小(ε)有很大关系,根据实验随着扰动的增大,检测率也随之增高,在二分类模型算法中两个类别是非此即彼的关系,当两个类别边界离的越远模型也就越容易拟合,相反离的越近,拟合难度也就越大,对距离远近影响最大的参数就是对抗算法给对抗样本施加的对抗扰动,因此扰动越大,对抗样本与相应的正常样本差距也就越大,二分类器测试集中的分类正确率也就越高。在扰动为6的测试集中,分类正确率都达到了93%以上,在扰动为8时,正确率甚至接近99%。对于扰动极小的DEEPFOOL方法生成的对抗样本,本方法也有87%的正确率,而C&W这种很难防御的对抗样本则达到了99%的正确率。这说明本文的对抗样本检测算法是能够在对抗样本防御中有效的防御对抗样本对于模型的攻击。
表2
FGSM、BIM、MIFGSM对于扰动参数的敏感性很高,表2展现了本检测方法在其它扰动值测试集上的正确率,即由某一固定扰动值的对抗样本组成的训练集所训练的二分类器在同种对抗样本其它扰动集上的检测率。其中T代表完全正确样本集的检测率,F代表完全对抗样本集的检测率。
从实验数据可以看出,采用小扰动对抗样本训练的二分类器,在检测对抗样本时对于大扰动的对抗样本有很高的检测率,且扰动越大检测越高。ε=2所训练的模型在ε=8的对抗样本上的检测率都达到了95%以上。
对于完全正常样本集的检测率,由于小扰动样本与正常样本差距很小,二分类器不能完全学习到分类边界,造成了一部分正常样本被误分类,但是随着扰动的增大,其所训练的模型检测率越高。ε=6时模型检测率全部达到了91%以上。
该二分类器采用了对抗样本作为先决条件,根据实验结果本检测方法能够在FGSM、BIM、MIFGSM对抗样本跨扰动大小上有一定的检测能力,即对于模型而言在对抗样本的扰动大小上具有一定的鲁棒性,并且确实在大扰动的对抗样本上拥有很强的检测能力,能够抵御一定范围内的对抗样本攻击。
为了验证本发明方法的有效性,进行了对比实验,将Feature Squeezing(简称FS)、MagNet、LID三种经典的对抗样本检测方法,与本文提出的检测方法进行对比实验,对比实验结果如表3所示。
表3
采用了FGSM、BIM、MIFGSM、DEEPFOOL、C&W五种攻击方法生成的完全对抗样本,T代表在正常集。可以看到本文的检测方法在正常样本集上的平均检测率要优于其它的方法。并且在对抗样本的检测中,本检测方法在FGSM、MIFGSM、DEEPFOOL生成的对抗样本集上都表现出了比另外两个检测方法更好的检测率,而在BIM和C&W类别生成的对抗样本集中,本文的方法与另外两个检测方法中最好的情况差别不大。因此,本文基于激活值分布的对抗样本检测方法展现了其较强的检测成功率。由表3可以说明,本发明方法对于各种方法生成的对抗样本的检测都具有较高的准确性。
如图8所示,本实施例同时提供了一种基于激活值分布差异的对抗样本检测系统,包括:
待检测样本获取模块21,用于获取待检测样本,所述待检测样本为图像样本;
激活值分布获取模块22,用于将待检测样本输入预先训练的图像分类器中,在图像分类器的每个神经网络层经激活函数激活后,得到对应的激活值;
分析模块23,用于基于待检测样本在各神经网络层的激活值分布进行分析,输出检测结果。
本系统是基于图2所示方法相同的发明构思而提出的,因此,对于各个模块的具体处理操作可以参见前面方法实施例的相关描述。例如,分析模块在基于待检测样本在各神经网络层的激活值分布进行分析时,执行以下操作:将每层的激活值对应输入至一个预先训练的二分类器中,二分类器将激活值映射为两个逻辑值;将所有的二分类器输出的逻辑值拼接成一个特征向量,并输入到另一个二分类器中,该二分类器的输出结果即为检测结果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。