论文《DeepGini: Prioritizing Massive Tests to Enhance the Robustness of Deep Neural Networks》提出了一种DNN测试优先级排序方法DeepGini,该方法不仅优于现有神经元覆盖技术,而且对提高DNN质量有帮助。
本文参考了这篇【论文转述】,侵删。
主要工作:
提出了DeepGini:一种基于DNN统计视角设计的测试优先级技术,可以将测量错误分类概率的问题简化为测量集合杂质的问题,使能够快速识别可能被错误分类的测试。
解决问题:
为了获得oracle信息,DNN测试通常需要花费大量人力来提前贴标签。
优势:
-
本文度量标准比现有神经元覆盖标准更易区分测试。
-
仅根据DNN输出向量对测试进行优先级排序。(不需要记录大量中间信息、了解DNN内部结构、查看DNN,因此更易于使用、更安全)
-
时间复杂度低于覆盖-附加方法,更具有扩展性。
-
使用DeepGini在前的测试集,优于使用该度量在后的测试集和使用覆盖范围度量在前的测试集。
该方法需要运行所有测试来获得输出。
方法描述:
用于衡量错误分类可能性的指标定义如下:
(:测试t属于分类i的可能性)
该度量的极值在各分类概率相等时取到(即如果DNN输出为每个类的概率是相同的,那么测试就会很容易被DNN错误分类)。
用快排对该指标进行排序;由于度量计算只需要用到输出向量,所以该方法基本不会对原有的DNN进行干涉。
DeepGini不仅提供了一种测试优先级的办法,同时还提供了一种在有限时间预算内增强DNN稳健性的技术(即能够指导DNN的重训练以帮助提升其准确性):
-
引入对抗,对每个模型,向测试集T中加入相同数量的对抗测试样本,并构造一个验证集V
-
用DeepGini对T进行优先级排序,将前1%,2%,...,10%的测试数据代回训练集,训练一个新的DNN(不加入更多的测试数据是因为已经无法再使得模型明显变化)
-
利用验证集V,度量新DNN的准确性
实验结果证明这一方法是有效的。