[论文解读]Test Selection for Deep Learning Systems

Test Selection for Deep Learning Systems

简介

论文标题

  • Test Selection for Deep Learning Systems
  • 深度学习系统的测试选择
  • 2019.4

贡献

  • 我们基于模型不确定性的概念,即对未见输入进行正确分类的置信度,提出了一组测试选择度量。我们考虑了多次dropout引起的方差(即在dropout情况下模型输出的分布),模型的预测概率,以及将两者结合起来的度量。
  • 我们证明了基于不确定性的度量显著挑战了DL模型,并且与错误分类有中到强的相关性(在真实数据上的相关性约为0.4,在真实数据和对抗性数据上的相关性约为0.6)。此外,我们的指标远远超过当前的技术水平(出人意料的充分性指标 SA)。
  • 我们还表明,模型的不确定性可以指导选择信息丰富的输入数据,即能够提高分类精度的数据。特别是,当基于选择的数据重新训练DL模型时,我们的最佳性能指标在一个数据集上的随机选择和意外充分性上实现了高达80%的改进,在另一个数据集上实现了高达29%的改进。

基于sa指标度量 基于dropout变异模型预测结果的方差度量 和基于KL距离的模型度量不确定性

论文总体说明一件事情:论文中的方法比LSA,DSA都要好,个人觉得SA方法依赖于训练集,不同的训练集计算出来的SA值可能相差很多

摘要

由于涉及到过多的计算和复杂性,深度学习模型的测试是具有挑战性的。因此,测试数据选择是以手动和特别的方式执行的。这就提出了如何自动选择候选测试数据来测试深度学习模型的问题。最近的研究集中在将测试选择度量从基于代码的软件测试(如覆盖率)调整到深度学习。然而,深度学习模型具有与代码不同的属性,例如反映训练数据属性的计算在整个网络中的分布、神经元权重的平衡和冗余(使用比所需多得多的神经元)。这种差异使得基于代码的指标不适合选择可能挑战模型的数据(可能引发错误分类)。因此,我们提出了一组基于模型不确定性(特定输入上的模型置信度)的测试选择度量。直观地说,我们对候选样本越不确定,这个样本就越有可能触发错误分类。同样,我们最不确定的样本也是最有信息量的,应该用来通过再培训来改进模型。我们在两个广泛使用的图像分类问题上对这些度量进行了评估,这些问题涉及真实数据和人工(对抗性)数据。我们表明,基于不确定性的指标具有很强的选择错误分类数据的能力,并在再培训过程中导致分类精度的显著提高:在一个数据集上,比随机选择和其他最先进的指标高出80%,而在另一个数据集上,增益高达29%。

初步

本质上,DL系统测试应该集中于识别不正确学习的属性,并产生可能使系统偏离其预期行为的数据。

经验表明,分类错误是由于特征空间的重叠和紧密定位区域而发生的不正确的学习属性。因此,位于学习类别及其边界之间的案例最有可能是错误学习的案例。有鉴于此,我们认为测试应该集中在具有接近模型边界的属性的数据上,而不是针对特定神经元的覆盖[21]或测试数据的多样性[10]。换句话说,我们应该将测试选择引向所学类的边界。

为了使测试选择切实可行,我们提出了一组测试选择度量(Kim等人称之为充分性度量)。[10])用于DL系统。我们基于模型不确定性(对特定输入的低置信度)的概念来定义这样的度量。直观地说,模型对候选样本的不确定性越大,它就越有可能犯错误分类。类似地,模型最不确定的样本应该是最具信息量的,并最大限度地增加模型可以学习的信息(应该用于模型改进-再培训)。正如Gal和Ghahramani[6]所建议的那样,**我们使用由多次dropout引起的方差来估计不确定性[**25],从网络中丢弃任意神经元(及其连接),并观察对其预测的影响。我们还使用实际模型的输出概率作为确定性度量,也可以将其与丢失方差相结合。

本文提到了一系列ML测试的多位学者的工作,有兴趣的可以看原文,或者是看综述,总体上是说明出基于覆盖的方式有一定缺陷,需要寻找边界的用例

动机

我们的工作旨在为DL模型的测试和(重新)训练定义数据选择度量。我们的主要动机是这项任务的难度和复杂性,这通常是通过手动和非系统的程序来执行的。因此,我们想回答以下两个问题:

  1. 我们如何选择测试数据来挑战(触发误分类)深度学习模型?
  2. 我们如何选择额外的训练数据来提高深度学习模型的性能(提高分类精度)?

当交替使用真实数据、对抗性数据以及真实和对抗性数据的混合时,我们进行研究以调查数据选择度量的能力。我们使用训练有素的模型(90%以上的准确率)进行研究,这些模型既很难挑战,也很难改进。

选择指标测试

令人惊讶的充分性指标 SA

Definition 4.1. Let DD be a DL model trained on a set TT of inputs. The Likelihood-based Surprise Adequacy (LSA) of the input xx wrt. DD is given by
LSA(x)=1ANL(T)xiTKH(αNL(x)αNL(xi)) L S A(x)=\frac{1}{\left|A_{N_{L}}(T)\right|} \sum_{x_{i} \in T} K_{H}\left(\alpha_{N_{L}}(x)-\alpha_{N_{L}}\left(x_{i}\right)\right)

Definition 4.2. Let DD be a DL model trained on a set TT of inputs. The Distance-based Surprise Adequacy (DSA) of the input xx wrt. DD is given by
DSA(x)=αN(x)αN(xa)αN(x)αN(xb) D S A(x)=\frac{\left\|\alpha_{N}(x)-\alpha_{N}\left(x_{a}\right)\right\|}{\left\|\alpha_{N}(x)-\alpha_{N}\left(x_{b}\right)\right\|}
where
xa=argmin{xiXD(xi)=D(x)}αN(x)αN(xi)xb=argmin{xjXD(xj)C\D(x)}αN(x)αN(xj) \begin{array}{l} x_{a}=\arg \min _{\left\{x_{i} \in X | D\left(x_{i}\right)=D(x)\right\}}\left\|\alpha_{N}(x)-\alpha_{N}\left(x_{i}\right)\right\| \\ x_{b}=\operatorname{argmin}_{\left\{x_{j} \in X | D\left(x_{j}\right) \in C \backslash D(x)\right\}}\left\|\alpha_{N}(x)-\alpha_{N}\left(x_{j}\right)\right\| \end{array}
and where D(x)D\left(x^{\prime}\right) is the predicted class of xx^{\prime} by DD and αN(x)\alpha_{N}\left(x^{\prime}\right) is the activation value vector of all neurons of DD when confronted to xx^{\prime}

这里可以看博客: sa中的lsadsa

模型不确定性度量

我们自己的选择度量的起点在于这样一个假设,即测试输入更具挑战性(即更有可能被错误分类),因为它们在所考虑的DL模型中产生了更多的不确定性(而不是惊喜)。

模型返回的类的预测概率是可以指示特定输入的挑战性程度的即时度量。实际上,人们可以直观地指出,更具挑战性的输入被归类为更低的概率,即模型输出的最高预测概率是低的。

定义4.3。设D是经过训练的DL模型。输入x 的最大概率分数为
MaxP(x)=maxi=1:Cpi(x) \operatorname{Max} P(x)=\max _{i=1: C} p_{i}(x)
其中CC是类数,pi(X)pi(X)是根据DDxx分类到ii的预测概率。

更准确地说,不确定性是通过抽样dropout模型并计算它们在x上产生的预测概率的方差来估计的。直观地说,虽然预测概率可以直观地表示为从x到类边界的距离,但丢弃方差表示由类边界的实际位置的不确定性引起的这些距离的方差。

类似概念在DeepMutation中也有

形式上,让D是一个原始的、训练有素的模型。让{M1Mk}\left\{M_{1} \ldots M_{k}\right\}是k个突变模型的集合,使得每个MjM_{j}是由D以概率(即丢失率)rr随机地dropout单个神经元。这里,我们考虑永久dropout,因为突变模型永远不能恢复其丢失的神经元。在给定输入x的情况下,我们表示 pij(x)p_{i}^{j}(x)MjMj输出的xxii类的预测概率。我们还用Pi(x)={pij(x)1jk}P_{i}(x)=\left\{p_{i}^{j}(x) | 1 \leq j \leq k\right\}表示所有突变体M1到Mk输出的xxii类的预测概率的多重集合。则Pi(x)P_{i}(x)的方差是将x归入I类时D的不确定度的一个很好的估计

就是所有突变体的px,注意区分大小p

根据我们的假设,不确定的输入更有可能被错误分类,我们定义了一个从丢弃方差导出的度量来评估输入x对D的挑战程度。这个方差得分是丢弃方差的宏观视图,因为它平均了在D上关于X 所有类的不确定性。

定义4.4。输入x的方差分数由下式给出
Var(x)=1Ci=0Cvar(Pi(x)) \operatorname{Var}(x)=\frac{1}{C} \sum_{i=0}^{C} \operatorname{var}\left(P_{i}(x)\right)
其中C是类数,var表示标准方差函数。

该度量的一个缺点是它没有考虑预测概率(因此,到类边界的实际距离)。为了克服这一点,我们提出了一个相对度量,它以D输出的最高概率对方差得分进行归一化。

定义4.5。输入x的加权方差分数为
Varw(x)=(maxi=1:Cpi(x))1Var(x) \operatorname{Var}_{w}(x)=\left(\max _{i=1: C} p_{i}(x)\right)^{-1} \cdot \operatorname{Var}(x)
式中,pi(X)pi(X)是x到第i类的预测概率。

而x的方差和加权方差得分可以作为模型不确定性的定量度量。我们还提出了一个名义上的备选方案。我们关注的不是预测概率的方差,而是不同突变模型产生的实际类预测,即具有最高概率得分的类。我们构造了这k类预测的归一化直方图,并将它们的分布与一个理论上的、最坏情况下的、完全不确定的模型的分布进行了比较,在该模型中,类预测均匀分布在所有类上。因此,在这种最坏的情况下,预测输入x属于类别I的突变体的数量近似给定为kC\frac{k}{C}

为了将实际的类别预测分布与最坏情况下的分布进行比较,我们依赖于Kullback-Leibler(KL)散度的离散版本。当D的不确定性较高(即突变体经常不一致)时,KL发散度较低。

定义4.6。输入x的Kullback-Leibler分数为
KL(x)=i=1CHilnHiQi K L(x)=\sum_{i=1}^{C} H_{i} \ln \frac{H_{i}}{Q_{i}}

其中,ii是类别标签,HH是由原始模型DDkk个辍学突变体M1M1MkMk给出的xx的类别预测的归一化直方图或频率,Q是均匀分布即:,Qi=1CQ_{i}=\frac{1}{C}

实验设置

目标和方法

测试选择。我们的第一步是评估每个度量的充分性,以选择挑战给定DL模型D的测试输入。要实现这一点,我们将针对测试输入进行测试时的模型精度与这些输入的不确定性之间的关系可视化(我们按降序对不确定性进行排序)。通过观察这种关系,我们可以粗略地了解这两个变量之间的趋势。更准确地说,在对测试输入集进行排序后,我们将其划分为10个大小相等的子集,添加第一个子集计算了模型的精度。然后迭代地添加后续子集(从而获得更高比例的测试数据),并且每次报告所得到的精确值。对于LSA、DSA、方差和加权方差,得分越高,不确定性越大对于KL和概率,较低的分数意味着更多的不确定性。适当的度量应该对数据进行排序,以便在每次迭代时提高准确度,因为错误分类应该在迭代中较少发生

为了证实我们的观察并对我们的数据进行细粒度分析,我们直接评估指标和错误分类之间是否存在统计相关性。为此,我们将一个特定输入x的D预测的“正确性”编码为二元变量Bx(分类良好或分类错误)。对于每个度量,我们计算关于该度量的所有测试输入获得的分数与它们对应的二进制变量之间的相关性。我们使用三种类型的关联:肯德尔关联、距离关联和皮尔逊关联。

相关性表格没有粘贴过来,总之是论文中指标相关高,LSA,DSA相关差

Test Selection with Real Data

下图为各个指标与精度之间的关系

[论文解读]Test Selection for Deep Learning Systems

Test Selection with Adversarial Data

综合我们之前的所有发现,我们得出的结论是,我们的基于不确定性的度量能够区分真实的、分类良好的输入和所有(真实的和对立的)错误分类的输入。它可以更容易地实现这一点,因为错误分类的输入是人为的。然而,当他们(SA)只面对对抗性数据时,他们就会失去自己的能力。这很可能是因为,正如我们在图2中观察到的那样,在许多情况下,对抗性生成算法在它继续迭代修改的输入中迅速引入了大量不确定性。

[论文解读]Test Selection for Deep Learning Systems

图2.每个度量(Y轴)在FGSM算法迭代(X轴)上的变化。除DSA和LSA之外的所有指标都很好地捕获了对抗性数据生成过程

Training Data Selection

[论文解读]Test Selection for Deep Learning Systems

图3.固定原始测试数据集合上的验证准确性,并通过使用由不同度量选择的5000个数据(在每次迭代时)连续增加训练数据来实现。X轴表示迭代次数,而Y轴表示5次重复的中位数精度。Varwas、Var和KL与打破平局的P组合的增产效果最好,而随机、LSA和DSA的效果较差。

[论文解读]Test Selection for Deep Learning Systems

图4针对所有度量以及在再训练算法的第1、2、4、6、8和9次迭代的200个历元(X轴)上的验证精度(Y轴)。在每一次迭代中,基于不确定性的四个度量使得验证精度比随机挑选、LSA和DSA收敛得更快,特别是在中间迭代期间