Structural Coverage Criteria for Neural Networks Could Be Misleading
简介
论文标题
- Structural Coverage Criteria for Neural Networks Could Be Misleading
- 神经网络的结构覆盖标准可能具有误导性
- 2019
核心
- adversary-oriented search vs coverage-oriented search
摘要
软件工程界对基于DNN的系统的质量保证越来越感兴趣。在这个方向上一个新兴的热门话题是测试神经网络的结构覆盖标准,它的灵感来自于传统软件测试中使用的覆盖度量。在这篇短文中,我们认为这些标准可能具有误导性,因为神经网络和人类编写的程序之间存在根本差异。我们的初步探索表明:(1)敌意示例无处不在地分布在由这种覆盖标准定义的精细划分的空间中,而可用的自然样本非常稀疏,因此,(2)先前报道的高覆盖测试所猜测的故障检测“能力”更有可能是由于面向对手的搜索,而不是真正的“高”覆盖。
个人总结:
adversary-oriented search vs coverage-oriented search
adversary-oriented search : 面向对抗用例的搜索,例如Feature-Guided Black-Box Safety Testing of Deep Neural Networks这篇
coverage-oriented search: :面向高覆盖的搜索,例如DeepGauge
文章观点
- 结构覆盖标准对于对抗性输入可能太粗略,同时对于错误分类的自然输入可能太细.则: 敌意示例普遍分布在由给定的覆盖标准定义的精细划分的空间中
- 高覆盖率测试的故障检测“能力”,可能是由于adversary-oriented search,而不是coverage-oriented search
- 通过面向覆盖的输入生成发现的对抗性示例的数量可以很容易地被操纵
- adversary-oriented search和coverage-oriented search具有相似性,
- 对抗性扰动和覆盖扰动都利用了训练好的神经网络的结构信息,
- 改变的神经元的层越深,覆盖扰动和对抗性扰动之间的差异就越小.
- 一方面,这种相似性解释了为什么结构性覆盖在搜索敌对输入时是有效的。另一方面,这也可能意味着结构性覆盖不会对面向对手的搜索增加太多。
- 如果忽略了结构复盖标准的上下文,那么在测量神经网络健壮性时,结构复盖标准的使用可能会受到质疑
- 如果在友好的应用场景中使用DNN,则只需考虑可能出现在现实世界中的自然输入。在这种情况下,一个好的覆盖标准应该能够表征给定的自然输入集的故障检测能力.但当错误率从0.01%增加到10%时,覆盖率没有明显变化。
结论
- 虽然是初步的,但我们的实验和分析表明,以前提出的神经网络结构覆盖标准可能具有误导性。
- 在我们看来,一个有用的标准,如果在友好的背景下使用,应该能够区分相同大小的自然示例测试集,具有不同水平的错分率。
- 如果在攻防上下文中使用,它应该比面向对手的纯搜索更有效或更高效地生成对抗性示例。
- 这样的标准必须建立在对网络结构与对抗性例子和错误分类的自然输入的分布之间的关系的更深层次理解的基础上。
正文
然而,我们的初步探索表明,如果在不了解其基本原则和应用上下文的情况下使用这些拟议的结构覆盖标准,可能会产生误导。这是因为
- 人类编写的程序中缺陷的分布与DNN中的分布有根本的不同。如稍后所示,敌意示例普遍分布在由给定的覆盖标准定义的精细划分的空间中。另一方面,可用的自然投入的分布非常稀疏,更不用说罕见的分类错误的自然投入了。也就是说,这些结构覆盖标准对于对抗性输入可能太粗略,同时对于错误分类的自然输入可能太细。
- 以前报道的高覆盖率测试的故障检测“能力”更有可能是由于面向反例的搜索,而不是结构性覆盖。我们的探索还表明,通过面向覆盖的输入生成发现的对抗性示例的数量可以很容易地被操纵
- 我们最初的自然输入实验否认了测试集中错误分类的输入数量与其在相关神经网络上的结构复盖率之间的相关性。
对抗性输入的普及性
让我们考虑一个非常细粒度的标准,它是由每个神经元的激活状态的组合定义的,假设RELU是激活函数。该准则将具有n个神经元的网络的输入空间划分为 2 n 2^{n} 2n个多面体。在多面体区域,神经网络退化为线性分类器。
表一列出了包含对抗性示例的多面体的百分比(“对抗性”一栏)。N1到N10是在DeepCover评估中使用的10个MNIST训练的神经网络[12]。在实验中,我们从测试集中随机抽取了10,000个输入,对于每个输入,我们都在其对应的多面体中搜索了一个对抗性的例子。如果我们不局限于测试集,而是自由地接受每个随机选择的多面体的输入(列“随机”),那么百分比会更高。
表一中的高百分比毫不含糊地表明,敌意例子普遍分布在由MC/DC和DeepCT等复盖标准精细划分的空间中。在神经元输出覆盖范围中也观察到了类似的结果。这也与最近关于对抗性例子性质的研究是一致的[17]。这一观察结果直观地与神经网络结构复盖标准的有效性相矛盾。
对抗性扰动和覆盖扰动之间的相似性
我们倾向于用对抗性和覆盖率扰动之间的相似性来解释高覆盖率在寻找对抗性样本方面的影响。这里,在面向对手的搜索中计算敌意扰动,而覆盖扰动被添加到原始输入以生成用于覆盖相邻多面体的新输入。对抗性扰动和覆盖扰动都利用了训练好的神经网络的结构信息。
为了准确地说,对于具有RELU激活函数的深度神经网络,给定输入x,在输入x所属的多面体中具有n层的神经网络的线性行为可以写为: f ( X ) = w n T ( w n − 1 T ( … ( w 1 T x + b ) ) + b n − 1 ) + b n f(X)=\boldsymbol{w}_{n}^{T}\left(\boldsymbol{w}_{n-1}^{T}\left(\ldots\left(\boldsymbol{w}_{1}^{T} \boldsymbol{x}+b\right)\right)+\boldsymbol{b}_{n-1}\right)+\boldsymbol{b}_{n} f(X)=wnT(wn−1T(…(w1Tx+b))+bn−1)+bn,其中f(X)是logit,即Softmax层的输入。因此,对抗性扰动可以在梯度∇f(X)的方向上欺骗深度神经网络。如果对抗性攻击的目标标签是l,则对抗性扰动的梯度为 ∇ f ( x ) = w ( n , l ) ⋅ w n − 1 ⋯ w 1 \nabla f(\boldsymbol{x})=\boldsymbol{w}_{(n, l)} \cdot \boldsymbol{w}_{n-1} \cdots \boldsymbol{w}_{1} ∇f(x)=w(n,l)⋅wn−1⋯w1,其中 w ( n , l ) w(n,l) w(n,l)是最后一层的l个神经元的权向量。
为了提高覆盖率,需要改变神经元 n ( k , i ) n(k,i) n(k,i)的输出或激活状态的扰动。它是神经元输出 ∇ h ( X ) = w ( k , i ) ⋅ w k − 1 ⋅ ⋅ ⋅ w 1 ∇h(X)=w_{(k,i)}·w_{k−1}···w_1 ∇h(X)=w(k,i)⋅wk−1⋅⋅⋅w1的梯度,其中 w ( k , i ) w(k,i) w(k,i)是目标神经元的权向量。
从∇f(X)和∇h(X)的两个方程可以得出,改变的神经元的层越深,覆盖扰动和对抗性扰动之间的差异就越小。
一方面,这种相似性解释了为什么结构性覆盖在搜索敌对输入时是有效的。另一方面,这也可能意味着结构性覆盖不会对面向对手的搜索增加太多。
可操纵性的健壮性度量
结构覆盖标准的另一个建议用途是测量神经网络的健壮性[12]。也就是说,通过为神经网络生成高覆盖测试输入集合,在该集合中发现的对抗性输入越少,神经网络被认为越健壮。然而,正如前面所讨论的,对抗性例子是无处不在的,因此,在实现高覆盖率的过程中发现的对抗性例子的数量很大程度上取决于所使用的搜索方法。在下面的内容中,我们展示了这个测量可以很容易地被操纵。
以SS-Cover范围为例。表二显示了在DeepCover中使用的方法找到的对抗性例子的百分比。然而,使用不同的搜索方法,我们可以得到完全不同的结果。列‘max’使用最大化数值的技术显示对抗性例子的百分比。此方法在每个与DeepCover为SS-Cover覆盖生成的多面体相同的多面体中查找对抗性示例。因此,覆盖范围保持不变。
我们还计算了最大化技术(“L1max”列)找到的对抗性样本的平均L1范数,并与DeepCover(“L1DpCv”列)的结果进行了比较。结果证实了这两种方法发现的对抗性实例在扰动程度上是相似的。
表二表明,敌意例子的百分比可以被操纵得比DeepCover报告的要高得多。此外,两列之间的相关系数很小(0.0618)。同样的问题也发生在DeepCT身上。这一结果表明,如果忽略了结构复盖标准的上下文,那么在测量神经网络健壮性时,结构复盖标准的使用可能会受到质疑。
对错误分类的原始输入进行测试
如上所述,敌意的例子在DNN中无处不在。然而,到目前为止,还没有针对对抗性攻击的实用有效的防御方法[18]。幸运的是,如果在友好的应用场景中使用DNN,则只需考虑可能出现在现实世界中的自然输入。在这种情况下,一个好的覆盖标准应该能够表征给定的自然输入集的故障检测能力。
然而,我们所研究的所有现有的覆盖标准都只在产生高覆盖的人工输入的情况下进行了评估。如上所述,它们发现对抗性样本的能力可能是由于面向对抗性的搜索,而不一定与检测自然输入的错误分类的真实能力相对应。
直接评估这些覆盖标准的有效性是困难的,因为要公平地生成具有显著不同覆盖的相同大小的自然输入集是非常重要的。然而,如果神经元网络的覆盖标准与传统软件的覆盖标准类似,具有更多错误诱导输入的随机测试集将接触到更多未被注意到的角落情况,因此将具有更高的覆盖范围。因此,我们对不同错误率水平的自然输入集进行了实验,看看覆盖率如何随错误率的变化而变化。
表III给出了采用DeepGauge[10]的k-多截面准则的实验结果。该实验对MNIST数据集[19]使用了四个LENet-5网络的变体,对ImageNet数据集[20]使用了两个预先训练的网络(VGG-19和ResNet-50)。自然测试输入集的大小固定为5000。
当错误率从0.01%增加到10%时,覆盖率没有明显变化。DeepXplore的神经元覆盖标准也观察到了类似的结果[9]。这些结果表明,这种判据对于具有自然输入的DNN的故障检测可能是无效的。我们没有使用SS-COVER和DeepCT的标准进行实验,因为它们的粒度太细,无法让可用的自然输入实现有意义的覆盖。
类似的结果[9]。这些结果表明,这种判据对于具有自然输入的DNN的故障检测可能是无效的。我们没有使用SS-COVER和DeepCT的标准进行实验,因为它们的粒度太细,无法让可用的自然输入实现有意义的覆盖。