DeepGini——对海量测试进行排序以增强深度神经网络的稳健性

论文《DeepGini: Prioritizing Massive Tests to Enhance the Robustness of Deep Neural Networks》提出了一种DNN测试优先级排序方法DeepGini,该方法不仅优于现有神经元覆盖技术,而且对提高DNN质量有帮助。

本文参考了这篇【论文转述】,侵删。

主要工作:

提出了DeepGini:一种基于DNN统计视角设计的测试优先级技术,可以将测量错误分类概率的问题简化为测量集合杂质的问题,使能够快速识别可能被错误分类的测试。

解决问题:

为了获得oracle信息,DNN测试通常需要花费大量人力来提前贴标签。

优势:

  1. 本文度量标准比现有神经元覆盖标准更易区分测试。

  2. 仅根据DNN输出向量对测试进行优先级排序。(不需要记录大量中间信息、了解DNN内部结构、查看DNN,因此更易于使用、更安全)

  3. 时间复杂度低于覆盖-附加方法,更具有扩展性。

  4. 使用DeepGini在前的测试集,优于使用该度量在后的测试集和使用覆盖范围度量在前的测试集。

该方法需要运行所有测试来获得输出。

方法描述:

用于衡量错误分类可能性的指标定义如下:

\xi(t)=1-\Sigma^N_{i=1}p^2_{t,i}

p^2_{t,i}:测试t属于分类i的可能性)

该度量的极值在各分类概率相等时取到(即如果DNN输出为每个类的概率是相同的,那么测试就会很容易被DNN错误分类)。

用快排对该指标进行排序;由于度量计算只需要用到输出向量,所以该方法基本不会对原有的DNN进行干涉。

DeepGini不仅提供了一种测试优先级的办法,同时还提供了一种在有限时间预算内增强DNN稳健性的技术(即能够指导DNN的重训练以帮助提升其准确性):

  1. 引入对抗,对每个模型,向测试集T中加入相同数量的对抗测试样本,并构造一个验证集V

  2. 用DeepGini对T进行优先级排序,将前1%,2%,...,10%的测试数据代回训练集,训练一个新的DNN(不加入更多的测试数据是因为已经无法再使得模型明显变化)

  3. 利用验证集V,度量新DNN的准确性

实验结果证明这一方法是有效的。

你可能感兴趣的:(TEST,FOR,AI,神经网络,深度学习,软件测试)