论文导读《DeepCT: Tomographic Combinatorial Testing for Deep Learning Systems》

大创第一次讨论论文

DeepCT:深度学习系统的层析组合测试

思考

问题

已解决⭐

重点

在这里插入图片描述

目录

摘要

  • 提出了一套专门针对DL系统的组合测试标准,以及CT(组合测试)覆盖率指导的测试生成技术。
  • 初步评估结果表明CT确实是测试DL系统的有希望的方向。
  • 当前的深度学习的测试方法,都是基于神经元的激活覆盖率。本文就是以一种层析的方式断层检测模型某一层中神经元之间的相互作用。

简介

  1. DL测试的必要性和重要性。
  2. 面临的问题:运行时状态空间巨大导致测试困难
  3. CT可以系统地探索各种输入组合,这可以很好地权衡缺陷检测能力和尽最大努力测试搜索空间。
  4. 为了在测试套件尽可能小的情况下,又同时获得较好的CT覆盖率,CT通常采用的是将测试生成转换成约束解决问题。

层析组合的背景和动机

PER1:层析
在这里插入图片描述

CNNs是由简单的结构组合起来,逐渐随着层的增加复杂度,CNNs掌握的特征也越来越复杂

PER2:组合
在这里插入图片描述
图2:相邻两层之间的相互作用,用于(A)标准卷积,(B)局部连接卷积,(c)平铺卷积,以及最后(D)全连通情况(DNN)

很明显,每一层内都没有神经相互作用。
但当前层的神经元共同决定其下一层神经元间的逻辑的相互作用。

组合测试标准

定义

  1. CT : Combinatorial Testing ,组合测试
  • 系统地探索各种输入组合
  • 为了在CT覆盖率尽量大的同时最小化测试集大小,CT通常将测试生成问题转化为约束求解问题。
    传统软件组合测试:
    在这里插入图片描述
  1. t-way :t代表考虑的元组个数,2-way就是考虑二元祖的神经元之间的组合。 比如:模型N的Li层中,有四个神经元 {n1,n2,n3,n4},2-way 组合共六种{n1,n2},{n1,n3},{n1,n4},{n2,n3},{n2,n4},{n3,n4}

  2. Neuron-activation configuration :神经元激活配置,个数为:2^t
    举例:假设现在有一组神经元:N={n1,n2,n3},每个神经元有两个状态{0,1} ,分别对应未激活和激活。使用2-way组合测试,这组神经元共有三个组合方式:{n1,n2},{n1,n3},{n2,n3}则每个组合的Neuron-activation configuration有四个:(0,0),(0,1),(1,0),(1,1)

  3. 组合稀疏覆盖率
    在这里插入图片描述

  4. 稠密覆盖率
    在这里插入图片描述

  5. (p,t)-完备性
    在这里插入图片描述

深度学习的CT稳健性测试

  • d-locally-robust局部鲁棒性:
    在这里插入图片描述
    当满足x与x’的距离为d,x与x’的分类相同时,则DNN在x处d-local-robust。
    即对图片添加扰动但不会改变预测结果

  • robustness issue鲁棒性问题: 一个input x,在它的附近有一个 x’,如果x与x’经过DNN后分类不同,则x’为对抗样本,DNN在x处存在robustness issue。

  • 可以通过检查局部鲁棒性来分析对抗性鲁棒性。因此,本文其余部分着重于测试DNN的局部鲁棒性。

实验及结果

算法

  • 分析局部鲁棒性的一种方法是通过随机测试。常常无效,本文提出了组合测试技术。
  • 通过随机测试和DeepCT获得的CT覆盖率和检测到对抗性问题。
  • 具体来说,我们为每个种子测试随机生成10000个测试,并分析是否可以检测到健壮性问题。
  • 过程
  1. 给定一个种子测试集T,t-way和CT准则作为输入,初始化整个DNN的CT覆盖表
  2. 针对由CT覆盖层逐层引导的每个播种测试,开始生成测试迭代
    1. 对于每个候选层,分析覆盖率;
    2. 更新了覆盖率表,并计算未覆盖的CT目标;
    3. 检查生成的测试是否包含对抗性示例;
      1. 更新生成的测试工作集。

实验过程

  1. 共有1000个种子测试集,每个种子测试集使用随机测试方法生成出10000个样本
  2. 使用随机测试,在1000个种子测试集中,能够在DNN1上的194个种子测试和DNN2上的178个种子测试上检测到鲁棒性问题,其中共同存在的有106个,共计266个robustness issue。
  3. 过滤掉了266个测试,这些测试的鲁棒性问题已经可以通过随机测试检测到。 对于其余的734个测试,我们通过DeepCT(其中d = 0.15,并使用双向定义的CT标准)随机抽样50个测试,以进一步分析其稳健性,与通过随机测试生成的相应测试一致。
  4. 逐层迭代的生成测试样例
  • 在这734个种子测试集中,随机抽50个进一步分析d-local-robust。(表中是这50个测试集的结果,所以第一行的对抗样本为0个。)

结论

  • DNN在处理不同测试输入时的鲁棒性可能不同。

  • DNN决策边界附近的测试输入可能会更容易触发健壮性问题。

  • 作为第一次尝试,RT(随机测试)可以用于检测脆弱的测试输入。

  • CT并非穷举搜索输入空间的所有组合,而是专注于测试输入的交互,旨在减小测试对象的大小,同时获得令人满意的缺陷检测能力。本文启动了第一个研究,探索CT在测试DL系统中的实用性。 我们的结果表明,CT为测试DL系统提供了有希望的途径。 我们未来的工作将对定点CT对对抗性示例检测的效果进行更深入的研究,并为现实世界的DL系统合并更多可扩展的CT测试生成器。