本周阅读论文《TestRank: Bringing Order into Unlabeled Test Instances for Deep Learning Tasks》,阅读笔记如下。
主要工作:
提出了一种测试优先级技术TestRank,根据错误揭示功能排序未标记的测试实例。
该技术同时利用测试实例的固有属性和上下文属性:首先在测试实例和训练样本上构建相似性图,然后进行基于图的半监督学习,提取上下文特征。然后对于特定的测试实例,将从图神经网络(GNN)中提取的上下文特征和使用DL模型本身获得的内在特征结合起来,以预测其揭示bug的概率。最后按概率值的降序排列优先级。
贡献:
-
TestRank是第一个考虑目标DL模型的上下文属性的测试优先级技术。 -
在标记和未标记的样本上都构建相似性图,并构建图神经网络来学习为这些未标记的实例提取有用的上下文属性。同时,还提供了近似技术以降低计算复杂性。 -
提出了一个神经网络,将未标记测试实例的内在属性和上下文属性合并,用于估计错误揭示能力。
相关概念:
-
内在属性(内):目标DL模型分配给此输入的输出响应。例如,来自目标DL模型的输入输出预测分布(反映属于每个类的输入的概率)。 -
上下文属性(外):历史执行的标记输入及分类正确性。是对固有属性的补充。
?
如上图所示,当数据接近决策边界时(蓝色部分),分类器对数据是不确定的,可能会错误分类。
现有研究提出了多种选择近边界实例的方法,例如,置信度/不确定性/意外分数等指标。
但是,第一,近边界实例不一定是 bug;第二,没有考虑远离决策边界的错误(即远程错误,如图中红色区域),因为DL模型通常为这些输入输出高置信度(或低不确定性),但是这些 Bug 可能是由有限的模型容量、训练数据不足或其他因素导致的。
未标记的数据周围有一些已标记的数据(例如,训练集、历史测试预言),并且它们的分类结果(正确/错误分类)是已知的。如果未标记的实例接近已错误分类的数据,则在本地连续性属性下,此实例可能也是模型错误。这种属性使我们能够从相邻的标记数据中提取未标记实例的上下文属性。
本文思想:
使用上下文信息帮助定位近边界错误和远程错误(因为有局部连续性属性)。
方法:
-
内在属性提取:收集softmax层之间的向量作为内在属性e_m。
-
上下文属性提取:使用特征提取器将原始数据空间映射到具有良好局部连续性的更受限的特征空间。然后根据获得的特征向量创建相似度图(𝑘-最近邻图)。最后使用图神经网络 (GNN) 模型从相似度图中提取每个实例的上下文属性e_c。 -
Bug揭示能力估计:使用多层感知器(MLP)将e_m和e_c组合。MLP 的输出预测每个未标记测试实例的最终错误揭示能力,然后根据能力排序,并在给定的标记预算下选择排名靠前的测试实例。
?
※上下文信息:一组标记的输入和相应的二进制标志(0或1,表示是否正确预测)。
|