发明内容
本发明的目的在于提供一种基于图像高阶引导编码重组的对抗样本恢复方法及系统,基于去噪自编码器的原理,可以降低甚至消除恢复后的对抗样本的攻击性,而且方法简单,恢复效果更好。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一种基于图像高阶引导编码重组的对抗样本恢复方法,包括以下步骤:
获取待恢复的对抗样本,所述对抗样本为图像样本;
将所述对抗样本输入预先训练好的编码器中,由该编码器将对抗样本编码为特征向量,并在该特征向量中引入高斯噪声;
将引入高斯噪声的特征向量归一化后输入预先训练好的解码器中,由该解码器将引入高斯噪声的特征向量解码为图像,输出得到恢复后的图像样本;
其中,所述编码器和解码器同时训练,编码器的输出作为解码器的输入,并在训练过程中引入图像分类器对解码器输出的图像样本进行分类,解码器输出的图像样本的损失为类别损失与图像损失之和,所述图像损失为输入图像和输出图像的回归损失;训练所采用的样本为正常样本。
上述方案中通过引入类别损失,可以更好地引导图片重构,得到更高质量的恢复图像。
在优化的方案中,所述解码器采用改进的U-net网络,在横向连接时直接复制后拼接到后面的向量,上采样过程中采取双线性插值的方法,第一层卷积结果与最后一次上采样结果做求和运算。
上述方案中通过采用改进的U-net网络,可以更加适应本文的图像重构任务,防止由于网络层数过多导致的训练过程中模型过拟合,致使模型无法达到泛化的要求。
另一方面,本发明实施例还提供了一种基于图像高阶引导编码重组的对抗样本恢复系统,包括:
样本收集模块,用于获取待恢复的对抗样本,所述对抗样本为图像样本;
噪声引入模块,用于将所述对抗样本输入预先训练好的编码器中,由该编码器将对抗样本编码为特征向量,并在该特征向量中引入高斯噪声;
图像恢复模块,用于将引入高斯噪声的特征向量归一化后输入预先训练好的解码器中,由该解码器将引入高斯噪声的特征向量解码为图像,输出得到恢复后的图像样本;
第一训练模块,用于同时训练编码器和解码器,编码器的输出作为解码器的输入,并在训练过程中引入预先训练好的图像分类器对解码器输出的图像样本进行分类,解码器输出的图像样本的损失为类别损失与图像损失之和,所述图像损失为输入图像和输出图像的回归损失;训练所采用的样本为正常样本。
再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明任一实施例中所述方法。
与现有技术相比,本发明方法及系统,不仅可以将对抗样本恢复为正常样本,降低对抗样本的攻击性,而且方法还特别简单,适于应用推广。具体的技术效果可见实施例中的相关描述。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
去噪自编码器的思路将对抗样本进行编码重组,去噪自编码器在输入的样本中会添加一定量的噪声,也就是营造一种残缺样本,让自编码重组器将残缺样本映射为正常样本,也就是利用部分特征去构造完全样本,这样在图像重构过程中利用噪声去模拟对抗样本的特征,从而使得训练好的图像重构器(包含编码器和解码器)可以不再对对抗噪点那么敏感,这种方法学习到的特征比一般的自编码器更具备鲁棒性。
如图1所示,为ComDefend方法系统结构图,与传统的去噪自编码器相比,噪声并不是加在样本图像中,而是在转换为特征向量之后再引入高斯噪声,然后由卷积网络将引入高斯噪声的特征向量解码为图像,该图像就是由原图像引入高斯噪声之后的重组图像。相比于传统的去噪自编码器,ComDefend方法可以得到更好的恢复效果。但是用户在使用中发现,ComDefend方法的恢复效果还是不够理想,需要进一步提高。
基于此,本发明提供了一种新的恢复方法,可以使得最终输出的重组图片具有更好的恢复效果。
具体地,请参阅图2,既可以理解为是本发明方法的流程图,也可以理解为是系统结构图。图2中的输入图片即为待恢复的对抗样本,获取对抗样本后,将其输入编码器,编码器采用普通的卷积网络,编码器将对抗样本编码为特征向量,并在该特征向量中引入高斯噪声。
引入高斯噪声的特征向量利用sigmoid函数(也可以采用其他函数)归一化后再输入解码器中,本实施例中解码器采用改进的U-net网络,由该解码器将引入高斯噪声的特征向量解码为图像,输出得到恢复后的图像样本,即图2中的重组图片。恢复后的图像样本即为干净样本(或称为正常样本)。
编码器采用了卷积网络,其结构如下表1所示。编码器结构中的激活函数都采用的是ELU,该激活函数保留了一定的负数值,卷积核的尺寸都是一样的采用3×3,像素填充padding为SAME填充,因此步长为2的卷积操作后,原先的特征图将会被缩小,有利于压缩特征空间。第9层采用了一个上采样的操作,将前面缩小的特征图放大到了之前的尺寸,采用的是双线性插值,最终输出的特征图的尺寸为32×32×32。
表1
层数 |
类型 |
输出通道 |
输入通道 |
步长 |
卷积核尺寸 |
1 |
Conv+ELU |
16 |
3 |
2 |
3×3 |
2 |
Conv+ELU |
32 |
16 |
1 |
3×3 |
3 |
Conv+ELU |
64 |
32 |
1 |
3×3 |
4 |
Conv+ELU |
128 |
64 |
1 |
3×3 |
5 |
Conv+ELU |
256 |
128 |
1 |
3×3 |
6 |
Conv+ELU |
256 |
256 |
1 |
3×3 |
7 |
Conv+ELU |
128 |
256 |
2 |
3×3 |
8 |
Conv+ELU |
64 |
128 |
1 |
3×3 |
9 |
Upsample+Conv |
32 |
64 |
1 |
3×3 |
解码器采用了U-net网络,U-net网络本身呈现出一种U形结构,是一种全卷积网络。全卷积网络是一种像素级别的分类识别模型,即对每个像素进行分类或回归,全卷积网络包含了下采样与上采样,U-net结构中加入了横向连接,保留了一部分向量直接融合到后面对称结构的计算部分。
本方案中不仅采用了U-net网络作为解码器,而且还对其进行了改进,目的是为了更加适应本文的图像重构任务,防止由于网络层数过多导致的训练过程中模型过拟合,致使模型无法达到泛化的要求。
如图3a所示,一般U-net网络结构包括了激活函数、卷积层、池化层,在横向连接的时候并不是完全将之前的特征向量融合到后面的层次,而是裁剪了一部分特征,然后再与后面对称结构的向量进行拼接。
如图3b所示,本方案中U-net网络结构减少了卷积的次数,为了保证更多特征被重组,在横向连接的时候并没有做裁剪的操作,而是直接复制后拼接到后面对称结构的向量中,激活函数采用了保留部分负值的ELU,上采样过程中,采取的是双线性插值的方法,第一层卷积结果与最后一次上采样结果做了求和运算。
如表2所示,本方案中的U-net网络结构中,卷积操作中卷积核的尺寸设置为3×3,像素填充padding全部为SAME,第一层和第七层中的卷积步长参数设置为2,其余各层卷积参数设置为1。结合padding参数,当步长为2时卷积特征图长宽尺寸将减小,步长为1的卷积特征图长宽尺寸不变,横向连接的拼接操作需要两个特征图长宽尺寸一致。
表2
表2中,Concat代表向量横向连接时对称结构的拼接操作,ADD为解码器输入向量与模型映射向量求和操作。解码器的卷积核也都是一样的,都采用3×3的卷积核,填充操作padding也都是SAME,最后的激活值选用的是sigmoid激活函数,目的是将向量归一化到0到1之间,与数据在编码器输入向量的归一化相同。
在投入实际应用之前,编码器和解码器都是预先训练好的,且编码器和解码器同时训练,编码器的输出作为解码器的输入。更具体讲,解码器的输入为引入高斯噪声后的特征向量且经过归一化处理。
请参阅图1,在ComDefend方法的损失计算时,从图1中可以看到LOSS1为编码器编码得到的中间向量与0向量的损失,即该损失函数是为了压缩一部分特征。图1中的LOSS2是输入图像与重组图像的图像损失。
请参阅图2,本方案中,训练过程的损失计算时,LOSS=LOSS1+LOSS2,其中LOSS1图像损失,LOSS2为类别损失。LOSS1为L1损失函数让重组图片往原始图片方向重构,图像分类器的加入为编码器和解码器的训练提供了一个类别损失,通过该损失函数值去引导图片重构。需要注意的是,图像分类器本身并不会参与训练更新迭代,仅仅只是为编码器和解码器做损失引导。
本实施例中,借用高阶误差来引导重组,消除潜在的特征差异,加速样本重构。高阶引导编码重组的目标函数为公式(1):
公式(1)中,
为高斯噪声,λ为类别损失系数,G为图像分类器,y
true表示正确的类别标签,即在训练过程中除了L1损失函数外,还加入了图像分类器的类别损失来引导图像重组。L1损失函数经常被用作输出与标签之间的回归任务,将两者做差以后求得差值绝对值的总和。公式(2)中Y
i表示标签,f(x
i)代表模型(解码器)的预测输出。
对于编码器和解码器训练所需要的样本,本实施例中采用CIFAR-10数据集。CIFAR-10数据集被广泛应用在深度学习图像识别模型研究中,是三通道的彩色图像,图像内容类别主体明确且单一,一张图像中就一个类别。图片尺寸为32×32,该数据集较MNIST数据集更加符合现实物理世界,并且MNIST的数据尺寸仅为28×28,CIFAR-10数据图像的噪声更大,且数据特征更加复杂。该数据集拥有鸟、马、猫、飞机、鹿、船、卡车、蛙、狗10个类别的数据图像,总数60000张,训练数据50000张,测试用的数据有10000张,CIFAR-10数据对于主体特征比较平均,对每个类别的数据数量都是6000张。CIFAR-10数据集并不是陈列好的图片而是八个文件,数据主体是用二进制存储的,为了方便使用和观察,需要将二进制的数据文件合成了3通道的图片。
需要注意的是,在训练时没有采样对抗样本,在测试时需要使用到对抗样本,为了验证本方案对于各种情况下的对抗样本的恢复能力,测试集中,采用了FGSM、BIM、MIFGSM、DEEPFOOL、C&W这5种攻击方法生成对抗样本。
如图4所示,对于对抗样本的生成,先通过预先训练好的图像分类器(也是引入类别损失时所引入的图像分类器)对CIFAR-10数据集中的50000张图像进行分类,实验中,得到完全分类正确的为49700张,因此以这49700张图像作为原始正常样本。然后以原始正常样本(49700张)为基础的,首先使用攻击算法对原始正常样本进行攻击处理,得到初级对抗样本;然后再使用前述图像分类器对初级对抗样本进行分类,只选取分类错误的初级对抗样本作为所述对抗样本。作为简单方式,对抗样本的生成也可以是直接基于CIFAR-10数据集采用攻击算法生成。
对于图像分类器的训练,也是采用CIFAR-10数据集。本实施例中图像分类器采用卷积神经网络中的VGG16,VGG16具有13个卷积层、3个全连接层和5个池化层;在卷积层中,卷积核的尺寸为3*3,步长为1,填充方式padding=same,所有池化层均采用核参数2×2,步长stride=2,基于max函数求取最大值来压缩特征图。在其他实施例中,图像分类器可以采用其他卷积神经网络,当然也可以采用非卷积神经网络。
为了尽可能防止过拟合的发生,实验中采用了随机剪裁图片进行数据增强,以及正则化和dropout,学习率的设置上采用了学习率衰减策略。训练完成后,训练集的正确率为99%,测试集正确率为92%,如图5所示。
本方案高阶引导编码重组恢复算法中含有两个超参数λ和
前者是类别损失的系数,能够调整图像分类器对于图像重组的影响,后者是高斯噪声的系数,系数越高噪声越大,为了找寻最合适的超参数,罗列了两组值进行试验。
表3
表3中,λ分别取为0.001、0.005、0.01、0.015与0.02,高斯噪声的系数
为20、30、40、50、60,通过这两组参数的组合训练编码解码器,表3的恢复率是求5种(FGSM、BIM、MIFGSM、DEEPFOOL、C&W)攻击方法生成的对抗样本恢复率的平均值,FGS类别攻击方法依然对扰动取了2、4、6、8这4个参数,即整个有14个恢复率参与平均值计算,最终可以看出当λ=0.01、
时平均恢复效果最好。
请参见图6a、6b、6c,图6a为原始对抗样本,图6b为加了高斯噪声的对抗样本,图6c为重组后输出的图像样本,可以很明显的看到图6b的图像相比图6a的图像噪点更突出,图6c的图像和图6b的图像相比要平滑许多。
请参见图7a和图7b,为当超参数λ=0.01、
时模型训练情况图,图7a是训练集损失函数与测试集损失函数曲线图,可以从图7a中看到,训练损失和测试损失在迭代进行过程中几乎是同步下降以及稳定。图7b为正确率图像,展现了两条正确率曲线,一条是测试集正确率曲线,另外一条是对抗样本正确率曲线,可以从图7b中看到,测试集实时正确率在0.8到0.9之间浮动,而对抗样本的正确率在0.7上下浮动,之所以波动较为频繁,除了实时训练时的测试集样本数量不大以外,还与L1损失函数后期波动较大有关。结合两个图,虽然损失函数图在趋于稳定之后依然有继续下降的趋势,但是正确率图中对抗样本的图像已然稳定,这说明对于编码重组器的训练在对抗样本重组上已经达到了饱和。
表3中对于相同λ值下,不同
值模型的平均恢复率,随着
增大恢复率会有先增加再降低,存在一定的波动,当
一定时,不同的λ下所训练的模型平均恢复率也是先增大再减小,但是差异性较大,因此当
取50时,不同λ值时编码解码器模型的恢复率如下表4所示。
表4
当
取50时,不同λ值编码重组模型恢复的对抗样本分类正确率如表4所示。当λ从0.001到0.01时,除了C&W方法,其它方法的对抗样本恢复之后的分类正确率大致都随着λ增加而增加。
对于FGSM、BIM、MIFGSM方法的对抗样本,在扰动较大时恢复后的正确率,在λ增大的方向上表现出一定的增加,扰动较小的对抗样本恢复后的正确率虽然也有增长,但是在该方向上增长的趋势不大。C&W方法的样本恢复情况在λ较小值上更优。
因此,在图像高阶引导编码重组方法中,当类别损失系数λ取值较大时会过度影响对抗样本重构,该值在一定范围之内可以起到促进对抗样本恢复的作用。并且对于FGSM、BIM、MIFGSM种类的对抗样本,大扰动的样本相比小扰动的样本对类别损失依赖度更高,C&W方法的对抗样本则对类别损失依赖度相对较小。
表5
当λ取0.01时,不同
值编码重组模型恢复的对抗样本分类正确率如表5所示。从总体上来看,FGSM、BIM、MIFGSM、DEEPFOOL这几种方法的对抗样本恢复后的分类正确率,随着
值由20增大到50时,表现出一定的增长。
在
值增大的方向上,FGSM、BIM、MIFGSM三种方法较大扰动上的对抗样本恢复正确率,拥有比小扰动对抗样本更大的增长趋势,小扰动下生成的对抗样本随着
值的增大,对抗样本恢复后的正确率波动较大。对于C&W方法,它生成的对抗样本恢复后的正确率值明显在
后有一个很大的下降,并且在
到
之间正确率的波动都很小。
因此,高斯噪声的加入使本文方法可以在一定程度上提高对抗样本的恢复能力。与λ相似,当FGSM、BIM、MIFGSM的对抗样本扰动较大时,
值的适当增大更有利于提升对抗样本恢复后的分类正确率,并且对于C&W方法生成的对抗样本而言,当
值较大时会对其恢复效果有所减弱。
实验中还验证了针对于不同方法生成的对抗样本的恢复正确率,结果如下表6所示。表6中可以看到,当λ=0.01,
时,FGSM生成的对抗样本恢复正确率要较低于其它样本,在FGS类方法的样本中扰动相对大一点的样本恢复的效果越好一点,小扰动的样本稍弱一些,并且基于迭代的MIFGSM和BIM在扰动为6以上都达到了0.8以上。对于C&W方法生成的对抗样本,恢复正确率从0直接提升到0.923。从表格的实验数据来看,该方法确实在对抗样本恢复方面具有一定的明显效果。
表6
对抗方法 |
分类正确率(FGSM、BIM、MIFGSMε=2/4/6/8) |
FGSM |
0.668/0.735/0.765/0.759 |
BIM |
0.691/0.780/0.815/0.825 |
MIFGSM |
0.695/0.795/0.817/0.816 |
DEEPFOOL |
0.769 |
C&W |
0.923 |
ComDefend方法对于对抗样本防御与本文编码重组方法具有相似的地方,两者都是只采用了正常样本训练,都从数据重构的思路去防御对抗样本的攻击,不同的地方在于对于解码器本文采用了U-net结构,且对于目标函数本发明方法加上了图像分类器的类别损失。为了验证本发明方法的优越性,对两种方法进行了对比实验,实验结果如表7所示。
表7
本文所提出的基于图像高阶引导编码重组的对抗样本恢复方法在结构上改进于ComDefend方法,对于对抗样本防御两者的主要思路都从数据重构的角度出发,都是只采用了正常样本训练,本文通过实验对比了两者的防御性能。
通过本文方法与ComDefend方法将获得的对抗样本测试集恢复后,利用分类器获取分类正确率用以评判两者对于对抗样本防御的性能。从表7中可以看到,在FGSM、BIM、MIFGSM、DEEPFOOL、C&W方法的对抗样本中,本文提出的基于图像高阶引导编码重组方法比ComDefend方法恢复后的分类正确率都要高。这说明了本文在ComDefend基础上所做的改进能够使得防御性能提升,拥有更好的防御对抗样本攻击的能力。
如图8所示,本发明实际提供了一种基于图像高阶引导编码重组的对抗样本恢复方法,包括以下步骤:
S101,同时训练编码器和解码器,编码器的输出作为解码器的输入,并在训练过程中引入图像分类器对解码器输出的图像样本进行分类,解码器输出的图像样本的损失为类别损失与图像损失之和,所述图像损失为输入图像和输出图像的回归损失。
即通过引入类别损失来提高恢复样本的效果。训练所采用的样本为正常样本,无需构造对抗样本,简化了训练流程。
由于训练过程相当于是准备过程,训练好之后实际应用中直接使用,因此在图8所示流程中用虚线表示。
S102,获取待恢复的对抗样本,所述对抗样本为图像样本。
S103,将所述对抗样本输入预先训练好的编码器中,由该编码器将对抗样本编码为特征向量,并在该特征向量中引入高斯噪声。编码器为CNN卷积网络。
S104,将引入高斯噪声的特征向量归一化后输入预先训练好的解码器中,由该解码器将引入高斯噪声的特征向量解码为图像,输出得到恢复后的图像样本。
更优地,解码器采用改进的U-net网络,且减少了卷积的次数,即在横向连接时直接复制后拼接到后面的向量,激活函数采用了保留部分负值的ELU,上采样过程中,采取的是双线性插值的方法,第一层卷积结果与最一次上采样结果做了求和运算。
如图9所示,同时提供了一种基于图像高阶引导编码重组的对抗样本恢复系统,包括:
样本收集模块21,用于获取待恢复的对抗样本,所述对抗样本为图像样本;
噪声引入模块22,用于将所述对抗样本输入预先训练好的编码器中,由该编码器将对抗样本编码为特征向量,并在该特征向量中引入高斯噪声;
图像恢复模块23,用于将引入高斯噪声的特征向量归一化后输入预先训练好的解码器中,由该解码器将引入高斯噪声的特征向量解码为图像,输出得到恢复后的图像样本。
由于系统中的编码器、解码器都是预先训练得到的,因此上述系统中还包括第一训练模块24和第二训练模块25,其中,第一训练模块用于同时训练编码器和解码器,且编码器的输出作为解码器的输入,训练所采用的样本为正常样本。第二训练模块用于训练得到图像分类器,所述图像分类器用于在训练编码器和解码器时,对解码器输出的图像样本进行分类,解码器输出的图像样的损失为类别损失与图像损失之和,图像损失为输入图像和输出图像的回归损失,类别损失即为引入图像分类器之后引入的损失。由于第一训练模块24和第二训练模块25只是在训练时才需要,所以在图9中用虚线框表示。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。