《DeepRTest: A Vulnerability-Guided Robustness Testing and EnhancementFramework for Deep Neural Net》

时间:2022        CCF:QRS_C会

视角:

       1 与其它白盒测试相比,提高了DNN的鲁棒性。

        2 同时也提高了NC。

        3 生成更多的测试用例。

1 本文贡献

        1.1 DeepRTest通过引入错误分类来测试和提高dnn对各种攻击和扰动的对抗鲁棒性,创新性地暴露了dnn的弱点。

        1.2 基于联合优化的测试输入生成算法通过在分类边界附近生成高神经元覆盖率的测试输入,充分诱发被测试dnn的误分类。然后,基于生成的输入对DNN模型进行再训练,优化分类边界,修复漏洞,提高DNN对输入扰动的对抗鲁棒性。

        1.3 三个流行数据集的实验结果表明,与现有的四种白盒测试方法相比,DeepRTest实现了更高的神经元覆盖率和分类精度。更重要的是,DeepRTest可以平均提高dnn的对抗鲁棒性39%,比四种基线方法提高12.56%。

2 最近工作

2.1对抗性测试方法

        目的是通过检测对抗输入图像的分类精度来测试目标dnn的对抗鲁棒性。常用方法有:

2.1.1 FGSM:算法基于梯度对原始图像进行扰动,生成对抗实例。而FGSM只对图像进行一次扰动,限制了攻击效果。

2.1.2 PGD(投影梯度下降):是FGSM的扩展版本。该算法通过应用基于梯度的多步摄动实现更强的对抗性攻击。

2.1.3 图像增强:在训练计算机视觉(Computer Vision, CV)的dnn时,我们经常使用一些图像增强方法来提高图像中信息的可解释性或感知性来训练[21]。它通过变换像素值和位置来改变图像的对比度、亮度、缩放等,也可以实现对抗式测试。

2.2 覆盖率引导的测试方法

        盖率引导测试方法的目的是生成唯一的测试数据,使目标DNN对测试数据的神经元覆盖率高于对原始数据的覆盖率。提高目标DNN的神经元覆盖率,可以使测试覆盖更多的决策逻辑[8][10],指导测试过程更加全面和客观。

2.2.1 DeepXplore:是第一个深度学习系统的覆盖引导白盒测试方法。该算法创新性地引入了神经元覆盖来构建联合优化问题,并生成测试样本来发现错误行为。

2.2.2 DLFuzz:结合了dnn的模糊测试和对抗测试。与DeepXplore相比,设计的联合优化神经元选择策略带来了高质量的突变输入,实现了更高的神经元覆盖率,并暴露了更多的不正确行为。

2.2.3 DeepHunter:与前两种方法不同的是,它使用了基于批处理的策略进行变形突变,从而有效地生成大量测试输入,而不是优化策略。此外,它利用多个覆盖标准来指导测试的生成和错误行为的检测。

3 本文方法

        1.确定目标类:对DNN模型M0进行突变生成几个变异体{M1,M2,...,MK}。通过比较原始模型和突变模型对输入的分类结果,我们可以选择具有不同分类结果的输入作为接近分类边界的输入,并进一步将其移动到另一边。这些输入就是目标类。下图是模型变异的方法:

 测试输入生成算法:

        首先,我们需要选择被测试DNN分类边界附近的图像x作为输入样本。对于k+1个判定结果,除真实标签外,出现次数最多的标签作为目标标签,记为

        通过联合优化算法生成测试输入:利用联合优化函数生成小扰动,得到测试用例。对所有的种子都生成这样的测试用例后,就得到测试集。联合目标优化函数:

         Obj1: 最小化交叉熵函数,使得输出与目标标签越接近越好。(对于M0,预测种子x要么是真标签,要么是误判标签。预测变异用例x1,由于Obj2的存在,也有可能向非的标签生成。为什么忽略除外的其它标签,即使这些标签看起来没那么边缘。对于能使DNN产生误判的测试用例来说,它们都有提升鲁棒性的价值。Obj1中只讨论,那么当重新训练模型后,再测排名第二的Target,并没有提升它的鲁棒性)。用什么指标保证生成的测试用例是人眼不可查觉的扰动?

         Obj2: 找出m个神经元(利用DLFuzz中的三个策略。)1.最常激活的神经元。2.最少激活的神经元。3.处于激活边缘的神经元。使得这些神经元趋向于激活。

       在Step4中,为什么不增加NC就是无用的测试用例。 对于使得DNN误判的测试用例,也有增加模型鲁棒性的价值。对比DLFuzz:

 用在分类边界周围的种子x生成的测试用例,使得重新训练的分类边界将更接近于最优边界

DNN最优边界的概念:在深度神经网络(DNN)中,最优边界通常是指能够在训练数据上获得最佳分类效果的决策边界。最优边界通常是在训练数据上学习得到的。

4 实验结果

4.1 实验对象

 4.2 实验思路

1.测试输入生成和鲁棒性实验:对于一个测试数据集,从每一个类别中选择相同数量的种子组成数据集D。用测试方法i执行D生成对抗样本D_{A}^{i}。利用模型M在D_{A}^{i}上的分类准确率去度量面对攻击i的对抗鲁棒性。整合所有的D_{A}^{i},得到整合后的数据集D_{A}。模型M在D_{A}上的准确率作为对抗鲁棒性。

2.再训练和鲁棒性提升实验:随机选择D_{A}^{i}中的一些图像将他们分为“再训练数据集D_{retrain}^{i}”和“测试数据集D_{test}^{i}”。将M在D_{retrain}^{i}上再训练得到M_{retrain},比较M和M_{retrain}的分类准确率来评估对抗鲁棒性的提升。

 4.3 测试指标

4.3.1 NC的提升:

        DR都要更高

 

 4.3.2 更高的分类准确率:

        再训练后的模型对原始图像的准确率的提升

 4.3.3 更高的对抗鲁棒性:

        利用不同的对抗数据集再训练得到的准确率

 

 4.3.3 对抗防御能力的泛化:

        对于不同的对抗集合是否也有较高的准确率?

 

 5 有效性威胁

        本研究提出了一种基于漏洞引导的DNNs鲁棒性测试和增强方法DeepRTest,验证了其提高神经元覆盖率和增强对抗鲁棒性的有效性。内部效度:我们已经通过多个实验结果证明了DeepRTest的有效性,但是在训练过程中仍然存在不确定性。例如,在每次训练中,被测试dnn的参数波动可能会影响其分类边界,进而影响其预测性能。同时,图像阅读过程中的洗牌操作也会影响训练效果。外部效度:本研究选取了几个常用的dnn和典型的数据集进行实验。但是,由于各个dnn的网络结构和运行逻辑有很大的不同,DeepRTest对其他dnn的性能还需要进一步的探索。此外,实验结果表明,图像的大小、分类标签的数量等特征也会影响测试方法的性能。因此,DeepRTest在其他数据集上的性能需要更广泛的研究。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值