快捷搜索:  汽车  科技

深度学习系统测试技术(深度学习系统的多粒度测试标准)

深度学习系统测试技术(深度学习系统的多粒度测试标准)我们在设计覆盖标准时考虑了这些因素。让N = {n1,n2 . . .}是DNN的一组神经元。 设T = {x1,x2 . . .}是一组测试输入。 我们使用φ(x,n)来表示在给定的测试输入x∈T下返回神经元n∈N的输出的函数。让DNN具有l层并且Li表示第i层上的神经元集合。(1≤i≤l)。从概念上讲,与传统软件类似,DNN的行为可以分为两类,即主要功能行为和角落行为,两者都可能包含错误行为(见图1(b))。DNN.在我们的论文中,我们将DL系统视为包含一个或多个DNNs的任何软件系统。与开发人员使用确定性算法编程的传统软件不同,DNN由训练数据,所选特征和网络结构(例如,层的数量)。特别地,DNN由在层上组织的多个互连神经元组成:输入层,输出层和一个或多个隐藏层。每个神经元都是一个计算单元,通过将激活函数应用于其输入来计算其输出。在经典DNN中,每个神经元与下一层上的所有神经元完

深度学习系统测试技术(深度学习系统的多粒度测试标准)(1)

论文:Ma Lei Felix Juefei-Xu Fuyuan Zhang Jiyuan Sun Minhui Xue Bo Li Chunyang Chen et al. "Deepgauge: Multi-granularity testing criteria for deep learning systems." In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering pp. 120-131. ACM 2018.

论文摘要:

深度学习(DL)定义了一种新的数据驱动编程范例,该范例通过一组训练数据构建精心设计的神经元网络的内部系统逻辑。我们已经见证了DL在许多安全关键场景中被广泛采用。然而,大量研究表明,最先进的DL系统存在各种漏洞,当应用于实际应用时这些潜在的漏洞可能导致严重后果。目前,DL系统的测试充分性通常通过测试数据的准确性来测量。考虑到可访问的高质量测试数据的限制,测试数据的良好准确性性能很难为DL系统的测试充分性和通用性提供信心。与具有清晰可控逻辑和功能的传统软件系统不同,DL系统缺乏可解释性使得系统分析和缺陷检测变得困难,这可能会阻碍其实际部署。在本文中,我们提出了DeepGauge,这是一套针对DL系统的多粒度测试标准,旨在呈现测试平台的多方面描述。我们提出的测试标准的深入评估在两个众所周知的数据集,五个DL系统以及针对DL的四种最先进的对抗攻击技术上得到了证明。DeepGauge的潜在用途揭示了更通用和强大的DL系统的构建。

技术介绍:

深度学习(DL)系统已经在诸如语音处理,医学诊断,图像处理和机器人技术等各种应用中获得了极大的普及。作为一种深度学习系统的深度神经网络(DNN),是近期成功背后的关键驱动力。然而,基于DNN的软件系统,例如自动驾驶,经常表现出导致致命后果的错误行为。例如,由于自动驾驶车辆未能处理意外/角落驾驶条件,已经报告了几起事故。其中一个趋势研究领域是通过为基于图像和视频的DL系统生成对抗性测试示例来研究DL系统中的漏洞原因。然而,仍然缺乏的是一种系统的方法来衡量给定DL系统的测试充分性。我们知道即使是最全面的衡量标准也无法完全消除对抗性攻击带来的风险。然而,通过实施一套合适的测试标准,我们希望可以更好地测试DL系统,以促进构建更通用和更强大的深度学习系统。

1.深度神经网络架构

DNN.在我们的论文中,我们将DL系统视为包含一个或多个DNNs的任何软件系统。与开发人员使用确定性算法编程的传统软件不同,DNN由训练数据,所选特征和网络结构(例如,层的数量)。特别地,DNN由在层上组织的多个互连神经元组成:输入层,输出层和一个或多个隐藏层。每个神经元都是一个计算单元,通过将激活函数应用于其输入来计算其输出。在经典DNN中,每个神经元与下一层上的所有神经元完全连接,并且每个边缘具有权重,其指示神经元之间的连接的强度。总的来说,DNN可以被认为是将给定输入转换为输出的函数,并且该函数由来自其计算单元(即,神经元)的聚合效果决定,每个计算单元有助于整个计算过程。图1(a)显示了三层DNN的示例。

深度学习系统测试技术(深度学习系统的多粒度测试标准)(2)

图1(a)一个全连接的DNN的示例(b)DNNs的行为和定义的覆盖标准之间的关系

2. 用于测试DL系统的覆盖标准

从概念上讲,与传统软件类似,DNN的行为可以分为两类,即主要功能行为和角落行为,两者都可能包含错误行为(见图1(b))。

我们在设计覆盖标准时考虑了这些因素。让N = {n1,n2 . . .}是DNN的一组神经元。 设T = {x1,x2 . . .}是一组测试输入。 我们使用φ(x,n)来表示在给定的测试输入x∈T下返回神经元n∈N的输出的函数。让DNN具有l层并且Li表示第i层上的神经元集合。(1≤i≤l)。

在神经元级别,我们使用从训练确定的神经元n的输出值来表征其行为。由于DNN的内部逻辑主要由训练数据编程,因此直观地,DNN的每个神经元的功能(即,神经元输出)应遵循主要由训练数据确定的一些统计分布。从训练数据分析获得的神经元的输出分布将允许近似表征主要功能区域,其输出值通常由具有与训练数据类似的统计分布的输入数据触发,并且输出值很少发生的角落情况。然而,对于实际尺寸的DNN,获得每个神经元的精确输出分布将是计算密集的。在具有可扩展性的类似精神的同时,我们利用从训练数据获得的神经元输出值边界来近似主要功能区域和角区域区域。

特别地,对于神经元n,在其激活函数的值范围上分别将highn和lown作为其上下边界输出值,其中highn和lown从训练数据集分析得出。我们将[lown,highn]称为神经元n的主要功能区域。

2.1神经元级别的覆盖标准

主要函数区域定义:对于一个测试输入x∈T,给定xiff∀n∈N:φ(x,n)∈[lown,highn],我们说DNN位于其主要函数区域。

深度学习系统测试技术(深度学习系统的多粒度测试标准)(3)

深度学习系统测试技术(深度学习系统的多粒度测试标准)(4)

对于一组给定的测试输入T和某个确定的神经元n,这个公式度量了单个神经元的k重覆盖率。分子:T覆盖的维度;分母:单独的某个神经元n可能覆盖的总的维度。

那么对于整个DNN的k重神经元覆盖率可以定义为:

深度学习系统测试技术(深度学习系统的多粒度测试标准)(5)

对于一组给定的测试输入T和神经元n,分子:对整个DNN在测试集T下覆盖的维度求和;分母:|N|代表的是DNN的神经元的数目,所以分母表示整个DNN的维度总和。那么整体代表:在给定测试集T的情况下,覆盖神经元的维度和总维度的比值。

然而,对于神经元n,也存在φ(x,n)可以位于[lown,highn]之外的情况,即,φ(x,n)∈(-∞,lown)或φ(x,n) ∈(highn, ∞)。 我们将(-∞,lown)∪(highn, ∞)称为神经元n的角区域区域。

角落区域:对于测试输入x∈T,给定xiff∃n∈N:φ(x,n)∈(-∞,lown)∪(highn, ∞),我们说DNN位于其角落区域。

深度学习系统测试技术(深度学习系统的多粒度测试标准)(6)

UpperCornerNeuron是指在给定测试集T的情况下,T中存在x使得神经元n的输出在区间 (highn ∞)的神经元的数量之和;LowerCornerNeuron是指在给定测试集T的情况下,T中存在x使得神经元n的输出在区间 (−∞ lown)的神经元的数量之和。

(2)神经元边界覆盖率:神经元边界覆盖测量给定测试输入集T覆盖了多少个角落区域(上边界和下边界值)。它被定义为覆盖处于角落区域的神经元数量与总的神经元数量(2×| N |)的比率:

深度学习系统测试技术(深度学习系统的多粒度测试标准)(7)

(3)强神经元激活覆盖率:强神经元激活覆盖率测量给定测试输入T覆盖了多少个角落区域(上边界值highn)。它被定义为覆盖的上角落神经元的数量与总的神经元数量(| N |)的比率:

深度学习系统测试技术(深度学习系统的多粒度测试标准)(8)

2.2层级别的覆盖标准

对于给定的测试输入x和同一层上的神经元n1和n2,我们说如果φ(x,n1)>φ(x,n2),在给定测试输入为x的情况下n1比n2更活跃。对于第i层,我们使用 topk(x,i)表示给定x的该层上具有最大k输出的神经元。例如,在图1(a)中,假设φ(x,n1)和φ(x,n3)大于φ(x,n2),第1层的前2个神经元是n1和n3(用绿色表示的神经元))。

(1)Top-k神经元覆盖率:top-k神经元覆盖测量多少神经元曾经是每层上最活跃的k神经元。 它被定义为每层上的top-k神经元总数与DNN中神经元总数的比率:

深度学习系统测试技术(深度学习系统的多粒度测试标准)(9)

深度学习系统测试技术(深度学习系统的多粒度测试标准)(10)

总体而言,本研究做出了以下贡献:
  1. 我们提出的标准有助于理解DNNs以及不同层次和角度的测试数据质量。一般而言,我们发现缺陷可能潜在地分布在DNNs的主要功能区域以及角落区域。给定一组输入,我们的标准可以测量它覆盖主要功能和神经元的角落情况的程度,其中DL缺陷可能发生。我们的评估结果表明,给定DL的现有测试数据通常更倾向于测试主要功能区域,覆盖角区域的情况相对较少。
  2. 根据DNN的现有测试数据,我们通过使用4种众所周知的对抗性数据生成算法(快速梯度符号方法(FGSM),基本迭代法(BIM),基于雅可比的显着图攻击(JSMA)和Carlini / Wagner攻击(CW))生成新的对抗性测试数据,评估我们的覆盖标准作为指标来量化DNN上测试数据的缺陷检测能力的有用性。广泛的评估表明,我们的标准可以有效地捕捉原始测试数据和对抗样本之间的差异,其中DNN分别能够正确和不能正确识别,证明我们标准的更高覆盖率可能表明检测DNN缺陷的机会更高。
  3. 提出的各种标准在DNNs网络复杂性和分析数据集方面表现不同。总而言之,这些标准可能有助于我们获得测试DNN的见解。通过提供这些见解,我们希望软件工程和机器学习团队都能从应用新标准中受益,以评估DNN的测试质量,从而获得构建通用和强大DL系统的信心。
致谢

此文由南京大学软件学院2018级硕士李洁琼翻译转述。

猜您喜欢: