《CAGFuzz: Coverage-Guided AdversarialGenerative Fuzzing Testing for Image-BasedDeep Learning System》

2021        A刊:TSE

1现存的对抗用例生成方法存在两个问题: 

1  可转移性差:将一个模型产生的对抗用例利用到另一个模型时,准确率提升效果差。即生成的对抗用例具有特定模型的属性。

2  测试判定标准:目前的判定标准如L2只注重像素的浅层特征。而包含高级语义信息的深层特征,如图像对象类别和场景语义,则被完全忽略。导致深层模型的准确率低。

2本文贡献:

1.设计了一种基于通用数据集的对抗例子生成器AEG,它可以在小扰动的情况下生成对抗例子。CycleGAN[23]的目标是将图像A转换成不同风格的图像B。基于CycleGAN,我们的目标是将图像B变换回图像A,得到与原始图像A相似的图像A’。因此,我们将这两个生成器与CycleGAN的相反函数结合起来作为我们的对抗示例生成器。由AEG生成的对抗算例可以对原算例进行小扰动。AEG基于通用数据集进行训练,不依赖于任何特定的DNN模型,比现有方法具有更高的可移植性。实验结果表明,AEG的可移动性增强,产生了对抗实例。它们不仅有效地提高了多个模型的精度,而且使目标模型的精度比典型的基于模型的方法DeepXplore提高了3.39%。

2.我们使用vgg -19网络[24]来提取原始例子和对抗例子的深度特征,并采用余弦相似度度量来确保对抗例子的深度特征尽可能与原始例子一致。同时,深度特征可以使CAGFuzz生成的对抗性实例在测试具有更深层次的神经网络时获得比其他方法更好的结果。

3.我们设计了一系列的实验来评估基于公共数据集的CAGFuzz方法。实验验证了CAGFuzz能够有效地提高所生成对抗实例的可移动性。同时,证明了CAGFuzz生成的对抗实例能够检测出目标DNN模型中隐藏的错误。此外,经AEG再训练的DNN模型的准确性也得到了显著提高。

3预知

3.1  对抗示例生成器(AEG)

3.2  VGG-19网络可以从图像中提取深度特征,可以用来识别图像之间的相似性。本文将最后一层全连通层的输出融合成特征向量,比较对抗示例与原始示例的相似度,并作为阈值对生成的对抗示例进行过滤。

4方法

4.1

        CAGFuzz方法的主要流程图如算法1所示。CAGFuzz的输入包括目标数据集(D)、公共DNN模型、最大迭代次数N、每个原始样本生成的对抗性样本数N1以及top-k参数K。输出是提高公共DNN模型覆盖率的生成的对抗性样本。

在模糊处理过程之前,我们需要处理数据集。将数据集划分为两个相等的子集(第1行),用于训练AEG(第2行)。所有样本都进行预处理(第3行),并存储在处理池中(第4行)。在每次迭代中(第5行),根据选择优先级从处理池中选择原始示例(第6-7行)。然后,为每个原始示例父级生成多个对抗性示例(第8行)。对于每一次生成,使用AEG对原始示例父级进行变异,生成对抗性示例数据(第9行)。分别提取原始示例父级和对抗性示例数据的深层特征,计算它们之间的余弦相似度(第10-11行)。最后,将由原始示例生成的所有对抗性示例按相似度从高到低排序,并选择其中的top-k作为目标示例(第13行)。计算并分析top-k对抗性示例的神经元覆盖率,以确定是否应该保存对抗性示例(第15行)。如果对抗性示例提高了公共DNN的神经元覆盖率,则将它们存储在处理池中,并指定选择优先级(第16-19行)。选择优先级解决方案在第3.3.1节中详细介绍。

 4.2训练对抗样例的生成

CycleGAN

4.3对抗用例生成

4.3.1种子优先级排序

4.3.2深度特征提取

        用VGG-19网络对对抗用例进行深层次特征提取

4.3.3余弦相似度计算

        余弦相似度用于衡量对抗例子和原始例子之间的差异。

 其中xi和yi对应特征向量X和y的每个维数。为了控制对抗例子的大小,提高对抗例子的突变质量,我们选择余弦相似度由高到低排序的top-k个对抗例子作为合适的例子继续后续步骤。

 4.4覆盖率引导的对抗用例选择

        如果生成的对抗性示例不能生成待测试的DNN的新覆盖,这些对抗性示例只能简单地扩展数据集,而不能有效地检测DNN的潜在错误。更糟糕的是,这些对抗性例子中的突变可能会将其他有意义的例子淹没在模糊队列中,从而显著降低模糊效应。因此,神经元覆盖率反馈被用来决定是否应该将新生成的对抗样例放入处理池中进行进一步的突变。

        在每一轮的生成和相似度筛选之后,将所有有效的对抗例子作为DNN的输入,进行神经元覆盖分析的测试。如果对抗例子产生更高的神经元覆盖率,我们将设置对抗例子的优先级,并将它们存储在处理池中,以备进一步的突变。

5实验

RQ1:CAGFuzz生成的对抗性实例是否比现有模型生成的对抗性实例具有更高的可移动性?

RQ2:CAGFuzz能在目标网络中发现潜在的错误吗?

RQ3:CAGFuzz能否通过在训练集中加入对抗例子来提高目标网络的准确性?

5.1回答RQ1:CAGFuzz生成的对抗性实例是否比现有模型生成的对抗性实例具有更高的可移动性?

        CAGFuzz不用基于特定模型进行生成。即使其它方法生成的针对特定模型的对抗用例使得再训练后的模型的准确率更高,但这些对抗用例无法再训练其它模型使得其准确率更高。而  CAGFuzz在两个数据集上的所有模型的准确率都要更高。因此证明  CAGFuzz的可迁移性更强。

5.2回答RQ2:CAGFuzz能在目标网络中发现潜在的错误吗?

        对2000个正确分类的图像进行变异,生成新的2000个对抗样本。使得模型出错的对抗样本数量如表5:(采用与5.1相同的模型进行实验)

        CAGFuzz是黑盒,而PGD是白盒,必须对神经网络内部邮件清晰的认知。而CAGFuzz适合不开源的商业深度学习系统。

5.3回答RQ3:CAGFuzz能否通过在训练集中加入对抗例子来提高目标网络的准确性?


        此外,我们在实验中添加了两种最先进的数据增强方法CutMix和ELSR作为基线,以充分评价CAGFuzz相对于现有数据增强方法的先进性。图8的实验结果表明,与CutMix和ELSR相比,CAGFuzz在模型上可以获得更高的精度。这可以说明CAGFuzz的优势,即基于CutMix和ELSR的模型无法抵抗CAGFuzz生成的对抗样本的影响,但对于经过CAGFuzz再训练的模型则不是这样。需要注意的是,CutMix、ELSR和CAGFuzz的训练过程是不同的。CutMix和ELSR同时训练目标模型并生成样本,CAGFuzz在生成对抗样本后对模型进行训练。因此,与图10不同,图8只是显示了最终精度的比较。 

         在训练过程中,我们进一步分析了再训练模型和原模型的准确性,并从验证准确性变化的角度评估了CAGFuzz生成的对抗实例的有效性。图9显示了这些模型在训练过程中验证精度的变化。保持各模型原有的结构参数和学习率不变,使用上述新的训练数据集进行再训练。在训练过程中,比较同一历元的验证精度和原始验证精度。可以发现,在同一时代下,所有重新训练的模型的验证精度都高于其对应的原始模型。再训练模型的收敛速度也明显加快。此外,从图中可以看出,重新训练后的模型更加稳定,在训练过程中变化幅度更小。此外,我们可以观察到,重新训练后的模型与原始模型的趋势基本一致,这意味着在不影响模型内部结构和逻辑的情况下,可以大大提高这些模型的准确性。例如,在图9d中,当历元= 6时,原始模型的精度突然下降,而重新训练的模型同时也遵循相同的模式。在图9f中,原始模型和重新训练模型的精度均呈现出三级上升曲线。

        为了进一步验证我们的方法,我们在MNIST和CIFAR-10数据集上预先训练这些模型。我们通过增加相同数量的生成对抗例子来进一步扩展训练数据,并在5个epoch内训练DNN。对比结果如图10所示。可以发现,在对模型进行再训练时,CAGFuzz有时具有较低的初始精度。随着时间的增加,模型的精度迅速提高,基于CAGFuzz的最终精度大多高于其他方法。⊳回答RQ3。虽然不同的DNN有不同的性能,但总的来说,利用CAGFuzz生成的对抗性示例对DNN进行再训练可以提高DNN的准确性,这也同时体现在再训练模型中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值