【论文解读】Effective White-Box Testing of Deep Neural Networks with Adaptive Neuron-Selection Strategy

introduction

近年来,深度学习已迅速成为最成功的机器学习技术之一。随着计算能力和数据量的巨大增长,深度学习已广泛应用于各个领域比如语音和图像识别、自然语言处理、强化学习,音乐生成等,产生了许多重要的成果。一些安全关键领域,如自动驾驶汽车,也使用深度神经网络作为其核心组件。那么,问题是深度神经网络足够安全吗?答案是不是的。这些图片是美国自动驾驶汽车造成的车祸。这两起事故都是由物体检测失败引起的。为了防止这种现实世界的事故,对深度神经网络的测试需求正在迅速增加。

深度神经网络测试的目标是探索网络的不同状态并在深度神经网络在现实世界中引起任何问题之前检测到意外行为。与传统的软件测试一样,使用覆盖率指标来定义深度神经网络的状态。然而,传统软件测试的覆盖率指标,例如分支覆盖率和代码覆盖率,不足以区分不同的深度状态神经网络。因此,自从2017年,许多专门用于深度神经网络的覆盖率指标是一直被提出。例如17年在SOSP上DEEPXLORE这篇文章提出的神经元覆盖率NC,再到后来不断提出的Tok-K 神经元覆盖,KMNC,NBC等指标
在这里插入图片描述

key idea

局限

本文聚焦白盒测试,白盒测试测试的第一步是选择深度神经网络中的神经元。 然后,计算神经元相对于输入的梯度。 最后,往梯度上升的方向,修改原始输入以生成下一个输入, 这样有助于增加所选神经元的值。白盒测试的关键组成部分是如何很好地选择可能增加覆盖率的神经元。有一些研究提出了神经元选择策略。例如,DeepXplore 随机选择以前从未被覆盖的神经元,DLFuzz 提出了 4 种不同的神经元选择策略,包括选择最常被覆盖的神经元的策略和最不常覆盖的神经元等···。然而,现有的技术,如 DeepXplore 或 DLFuzz,无论网络、数据集或指标如何,都使用固定的神经元选择策略。
在这里插入图片描述
在这里插入图片描述

我们观察到使用固定的神经元选择策略可能会导致一些不好的结果。左边这 2 个图显示了使用不同覆盖率指标测试 LeNet-5 模型的结果。在NC指标上,用蓝色线绘制的 Fuzz策略比随机策略实现了更高的神经元覆盖率。但是在 top-k 神经元覆盖的情况下,随机方法优于 Fuzz方法。此外,当模型改变时时,这种不稳定性会变得更糟。比如VGG模型上,Fuzz方法再次优于随机策略,两条线之间的差距变得更大。这表明神经元选择策略应该针对给定的测试设置进行自适应调整。
在这里插入图片描述

核心思路

本文提出了一种名为 Adapt 的技术,它可以根据给定的覆盖度量、数据集和模型自适应地学习和生成神经元选择策略。为了实现 Adapt,首先通过参数化来定义神经元选择策略的空间,一个神经元选择策略被表示为一个实数向量,它对将对定义的特征进行加权。因此,找到一个好的神经元选择策略就相当于在这个系统中找到了一个好的实数向量。神经元选择是通过对它们进行评分来完成的。要对神经元进行评分,首先要做的是将神经元表示为特征向量。本文设计了 29 个原子特征,其中每个特征都是神经元上的布尔谓词。这些特征可以分为 17 个在测试过程中不会改变的恒定特征和 12 个随着测试的进行而不断变化的可变特征。比如我们可以看到:第一个特征是神经元位于前25%的层,第6个特征是池化层中的神经元,第18个特征表示该神经元从未被激活。这 29 个特征将用布尔向量表示神经元的不同状态。
在这里插入图片描述

基于特征向量和神经元选择策略,每个神经元可以用其特征向量和选择策略的点积进行评分。最后,如果我们选择前 k 个值得神经元。在接下来的例子中,神经元用 5 维布尔向量表示,策略是一个 5 维实数向量。每个神经元通过点积评分,如果我们选择 2 个神经元,则选择评分为 7 和 6 的神经元,也就是绿色的两个神经元。
在这里插入图片描述

基于上述定义的神经元特征。本文设计了一个在线学习算法,可以在在测试过程中自适应地寻找神经元选择策略的算法。
整个过程分为两个大阶段,即测试阶段和学习阶段,学习阶段又分为两个阶段,即提取阶段和合并阶段。接下来第一阶段是测试阶段。在测试阶段,除了第一次迭代之外,使用在学习阶段生成的 m 个神经元选择策略来测试给定的深度神经网络。在测试阶段完成后,神经元选择策略和每个策略的覆盖神经元集被传递到学习阶段的提取阶段。
在这里插入图片描述

在提取阶段,从过去的几个测试结果中提取 k 个好的神经元选择策略,使用 2 个标准。第一个标准是收集共同实现最高覆盖率的神经元选择策略。在这个例子中,蓝色框中的 s2 和 s4 被提取出来,因为它们可以覆盖其他策略覆盖的所有神经元,1,2,3,4,5。如果第一标准的提取策略数量小于 k,则额外收集仅实现高覆盖率的策略。在该示例中,因为K=3,所以,额外有收集了 s2,因为它仅实现了最高覆盖率。在这里,s2 被收集两次,这将比下一阶段的其他策略具有更大的权重 。
在这里插入图片描述

在组合阶段,新的神经元选择策略分 4 个步骤生成。
首先,随机抽取2个策略。我们假设 s2 和 s4 被采样。第二步,通过混合采样策略生成新策略。S5 是通过混合 s2 和 s4 新生成的。可以看到 s5 的第一个和最后一个元素来自 s4,s5 的第二个元素来自 s2。然后第三步,添加一个小噪声进行探索,第四步,对生成的神经元选择策略进行归一化,使其每个元素保持在适当的范围内,最后就生成了新的神经元选择策略S5
在这里插入图片描述

重复刚刚这四个步骤以生成 m 个神经元选择策略,这里m=4,生成,S5,S6,S7,S8并返回到测试阶段。
P17 通过交替每个阶段来继续迭代,直到达到时间预算。随着测试的进行,学习阶段将根据测试结果微调策略以覆盖更多神经元。
在这里插入图片描述
在这里插入图片描述

实验部分

为了证明 Adapt 的有效性,本文设计了 8 个实验,一共是两个数据集,MNIST和Imagenet,每个数据集有 2 个覆盖指标nc和TOP KNC和 2 个模型。为LENET4,LENET5用了 20 张随机选择的图像,为VGG16和ResNet-50用了 10 张随机选择的图像。本文将 Adapt 与 5 种现有的测试技术进行了比较,分别是随机策略、DeepXplore策略、DLFuzz中的两个方法,以及作为灰盒测试代表的 TensorFuzz。

在这里插入图片描述

下面是实验结果,蓝色的是ADAPT, Adapt 在所有 8 个实验中都表现出显着增加的覆盖率。左 4 个图是实现的神经元覆盖率,右 4 个图显示实现的 top-k 神经元覆盖率。在所有 8 个图中, adapt 在寻找对抗性输入方面也非常有效。平均来说,Adapt成功地发现了4.9倍的对抗样本。与其他测试技术相比,Adapt 不仅能够找到数量更多的对抗性输入。还能够找到更多样的标签,就发现的标签数量而言,没有一种现有的技术可以打败adapt。如底部的维恩图所见,红色的是ADAPT发现的标签。Adapt 发现的标签几乎覆盖了其他测试技术发现的标签,
在这里插入图片描述
在这里插入图片描述

下面是ADAPT生成的对抗样本展示。
在这里插入图片描述

这些图表显示了在使用神经元覆盖率测试每个模型时在提取阶段收集的策略的重要特征。红色图显示所选神经元应具有的特征,蓝色图显示所选神经元不应具有的特征。有趣的是,第 4 个特征是所选神经元在测试 LeNet-4、LeNet-5 和 ResNet-50 时应该具有的最重要特征,但在出现时却变成了神经元不应该具有的最差特征到 VGG-19。同样,作为测试 VGG-19 的最佳特征的特征 2,成为神经元在测试其他模型时不应该具有的特征。 Adapt 的这些学习特征表明,神经元选择策略应该适应测试设置
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值