CN116361190A - 一种基于神经元相关性指导的深度学习变异测试方法 - Google Patents
一种基于神经元相关性指导的深度学习变异测试方法 Download PDFInfo
- Publication number
- CN116361190A CN116361190A CN202310407514.8A CN202310407514A CN116361190A CN 116361190 A CN116361190 A CN 116361190A CN 202310407514 A CN202310407514 A CN 202310407514A CN 116361190 A CN116361190 A CN 116361190A
- Authority
- CN
- China
- Prior art keywords
- test
- neurons
- mutation
- deep learning
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 210000002569 neuron Anatomy 0.000 title claims abstract description 191
- 238000013135 deep learning Methods 0.000 title claims abstract description 62
- 238000010998 test method Methods 0.000 title claims abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 145
- 230000035772 mutation Effects 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000013136 deep learning model Methods 0.000 claims abstract description 29
- 230000006399 behavior Effects 0.000 claims abstract description 24
- 238000012549 training Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 19
- 230000004913 activation Effects 0.000 claims description 15
- 238000005457 optimization Methods 0.000 claims description 11
- 230000001537 neural effect Effects 0.000 claims description 10
- 238000009795 derivation Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 5
- 238000013441 quality evaluation Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000013528 artificial neural network Methods 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 4
- 238000010219 correlation analysis Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 239000003471 mutagenic agent Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000008555 neuronal activation Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000001303 quality assessment method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于神经元相关性指导的深度学习变异测试方法,对原始深度学习模型,首先通过在训练集上执行分层的相关性传播为模型中的神经元分配相关性;然后,采用基于神经元相关性指导的深度学习变异模型生成策略指导变异模型的生成;最后,通过计算测试集在变异模型上的变异分数来实现对测试集的质量评估。对不充分的测试集,进一步提出了一种基于梯度搜索的变异测试输入生成方法,以帮助改善测试集的质量。本发明作为一种深度学习变异测试技术,通过分析深度学习系统的活动及其内部神经元的行为,有助于指导生成更加有效的变异模型。同时,利用变异测试的结果指导测试输入的生成,可以进一步帮助对深度学习系统进行更加充分的测试。
Description
技术领域
本发明属于软件工程技术领域,具体涉及一种基于神经元相关性指导的深度学习变异测试方法。
背景技术
深度学习(DL)是近十年来人工智能领域取得的重要突破,在许多应用领域取得了巨大的进展,包括图像识别、语音识别、自然语言处理等。这些进步进一步推动了DL在自动驾驶、恶意软件检测、医疗诊断等安全关键系统中的广泛部署和采用。与传统软件一样,DL软件也存在许多缺陷和漏洞,在安全关键领域中,这些缺陷和漏洞可能会导致严重的后果和安全性问题,因此需要对DL系统进行充分的测试,以为其质量提供保证。
软件测试通过比较系统的实际行为和预期行为来提供对软件质量的客观评估,对DL系统进行测试的标准方法是收集并标记尽可能多的测试数据,并对其在测试数据上的性能进行检查。由于DL遵循数据驱动的编程范式,依据系统的决策输出进行评价的方式使其行为评估在很大程度上取决于测试数据的质量,一个不充分的测试集无法使得DL系统的可靠性得到保证。因此,评估测试数据的质量是DL系统测试中的一个关键问题。在传统软件的测试中,变异测试被认为是帮助发现有效测试、评估测试集的质量以及定位测试数据缺陷的重要技术之一,其通过设计相应的变异算子对原始程序的语法进行更改,以生成与原始程序差异极小的变异体来充分模拟被测软件的所有可能差异,并通过定义变异分数来反映测试集的质量,获得较高变异分数的测试集更有可能暴露原始程序中的故障,而变异分数较低的测试集需要进一步改进。与传统的软件系统相比,DL系统的行为不仅取决于源代码,还取决于训练数据、神经网络结构或各种超参数的调整。因此,DL变异算子具有不同的性质。目前,已经提出了许多方法将变异测试应用于DL系统,这些方法通过结合DL的特点,设计多种变异算子来生成变异模型,以来帮助测试数据质量的评估。
对一个给定的测试输入,DL系统中的信息根据连续层中神经元之间的连接权进行传播,一些神经元的活动相较于其他神经元可能与DL系统的行为具有更强的因果关系,从而会对系统做出正确决策具有更直接的相关性。现有的神经元级的变异算子通过修改随机选择的单个或指定百分比的神经元的权重值来生成变异体。这种方法确实能够在一定程度上将错误注入到DL模型中,并对测试集的质量评估有效。但通过这种方法产生的变异体,由于忽略了DL系统的整体行为,并不能很好地反映测试输入与系统所做决策之间的相关性,即使可以杀死更多的变异体,测试集和系统决策之间也是缺少联系的。
在MuNN的研究中表明,神经网络的变异分析具有较强的领域特征,因此可以通过根据神经网络的应用领域特征对其进行变异,从而更好地去评估测试样本的完整性。由于模型中与系统所做决策相关性较弱的神经元可以通过减少对神经网络决策边界的扰动,以更好地帮助测试数据的质量评估和探索DL难以触发的行为;而模型中与系统所做决策相关性较强的神经元可以帮助更好地检测DL中的错误行为和评估测试样本的完整性,因此,可以通过对这两类神经元进行改变来指导深度学习变异模型的生成,进一步更好地帮助DL测试。同时,目前较少的工作关注于如何利用变异测试的结果进一步指导测试用例的生成,以生成更多检测原始模型与变异体上不一致行为的测试输入。
发明内容
发明目的:为了解决上述问题,本发明提出了一种基于神经元相关性指导的深度学习变异测试方法,通过分析深度学习系统的活动及其内部神经元的行为,在神经元与系统决策之间建立相关性,并根据该相关性对神经网络中的神经元进行分类。通过对不同类别的神经元分别采取相应的变异策略以指导生成更加有效的变异体,进而更好地帮助深度学习系统评估测试数据集的质量。同时,对不充分的测试集,可以进一步通过提出的基于梯度搜索的变异测试输入生成算法指导生成更多的测试输入,以改善测试集的质量。
技术方案:一种基于神经元相关性指导的深度学习变异测试方法,包括以下步骤:
步骤1:对原始深度学习模型,通过在其相应的训练集上执行分层的相关性传播LRP,为原始深度学习模型中每层的神经元分配相关性分数;
步骤2:基于步骤1中为神经元分配的相关性分数,通过神经元级变异算子为原始深度学习模型生成变异模型;
步骤3:使用原始深度学习模型和变异模型执行待评估的测试集,并记录执行结果。
进一步地:所述步骤1中,对第i层中第j个神经元的相关性分数Rij,使用如下LRP规则来重新分配第i+1层神经元的相关性:
其中Ri+1,k表示第i+1层中第k个神经元的相关性分数;wijk表示第i层中第j个神经元和第i+1层中第k个神经元之间的连接权;φ(x,nij)表示第i层中第j个神经元的激活值;ε是避免分母为0的稳定项。
进一步地:所述步骤2具体为:
步骤2.1:基于相关性分数对原始深度学习模型中每层的神经元进行分类,其中,每层相关性分数前20%的神经元为重要神经元,每层中相关性分数后20%的神经元为平凡神经元,其余为普通神经元;
步骤2.2:使用神经元级变异算子对不同类别的神经元分别采取如下的变异策略,指导生成变异模型:
重要神经元:使用神经元级变异算子对单个重要神经元的50%的权值;
平凡神经元:使用神经元级变异算子对所有平凡神经元的权值进行改变;
普通神经元:使用神经元级变异算子对设定百分比数量的普通神经元的权值进行改变。
进一步地:所述步骤3中执行结果包括测试集的变异分数以及每个变异模型上未被杀死的类别。
进一步地:测试集T在变异模型集合M′上的变异分数定义如下:
其中,m∈M′表示任一变异模型,C表示测试集中测试数据的输出类别集合,KilledClass(T,m)表示m被T中的测试数据杀死的类别集合,|·|表示取集合“·”中元素数量。
进一步地:所述方法的步骤3之后还包括:
步骤4:若执行结果中测试集在变异模型上的变异分数为1,则测试集是充分的,变异测试完成;若测试集在变异模型上的变异分数不为1,则测试集是不充分的,执行步骤5;
步骤5:对变异模型上每个未被杀死的类别,通过基于梯度搜索的变异测试输入生成方法,进一步生成新的变异杀死输入补入测试集中,以帮助检测变异模型上的错误行为并改善测试集的质量。
进一步地:所述基于梯度搜索的变异测试输入生成方法是通过解决一个最大化变异杀死输入的数量和神经元覆盖的联合优化问题来实现的,所述联合优化问题的目标函数表达式如下:
其中cM和cm分别表示测试数据在原始深度学习模型M和变异模型m上的原始类别标签;cMa(a=0,...,b)表示置信度低于cM的前b类标签;cma(a=0,...,b)表示置信度低于的cm的前b类标签;na是被选择的第a个目标神经元,r是被选择的目标神经元数,λ是超参数。
进一步地:基于所述联合优化问题的目标函数,通过梯度搜索指导生成新的变异杀死输入,具体过程如下:
给定一个测试集T,对一个变异模型m,unKilledClass(T,m)表示m未被T中的测试数据杀死的类别集合;
对unKilledClass(T,m)中的每一个类别c,从T中筛选出在原始模型M上被正确预测为c的测试输入作为种子输入x;
在根据种子输入x构成其对应的目标函数后,通过对该目标函数进行梯度求导来指导测试输入的生成:在对x进行变异的过程中,迭代地将该目标函数的梯度求导作为扰动添加到x中获得中间输入x';在每次迭代后,分别获得x'在M和m上的预测结果cM和cm,如果cM与c相同且cm与c不相同,则x的变异过程停止,并将x'作为新生成的变异杀死输入补入测试集,否则继续x的变异过程直至达到预设的最大迭代次数。
进一步地:对种子输入x,优先选择相关性分数最高的r个未被覆盖的神经元作为目标神经元。
有益效果:本发明对现有的方法进行改进,通过分析深度学习系统的活动及其内部神经元的行为,来建立神经元与系统决策之间的相关性,并根据神经元的相关性分数将神经网络中每层上的神经元划分为不同的类别,通过对不同类别的神经元分别采取相应的变异策略来指导生成更加有效的变异模型,弥补了现有技术中由于忽略了深度学习系统的整体行为而不能较好地反映测试输入与系统所做决策之间的相关性的不足;由于在测试输入与系统决策之间建立了因果关系,在该方法中可以更好地通过观察原始模型和变异模型在测试集上的行为差异,来帮助深度学习测试数据的质量评估和探索深度学习难以触发的行为;同时,对不充分的测试集,可以通过提出的基于梯度搜索的测试生成方法来改善测试集的质量,从而进一步更好地帮助测试深度学习系统。
附图说明
图1为一种基于神经元相关性指导的深度学习变异测试方法的框架图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1所示,一种基于神经元相关性指导的深度学习变异测试方法,包括以下步骤:
步骤1:对原始深度学习模型,通过在其相应的训练集上执行分层的相关性传播LRP,为原始深度学习模型中每层的神经元分配相关性分数;
步骤2:基于步骤1中为神经元分配的相关性分数,通过神经元级变异算子为原始深度学习模型生成变异模型;
步骤3:使用原始深度学习模型和变异模型执行待评估的测试集,并记录执行结果。
所述步骤1中,分层的相关性传播(LRP)是一种适用于神经网络结构模型的解释技术,通过专门设计的局部传播规则,在神经网络中向后传播预测值f(x),它是一种反向传播技术。在LRP的传播过程中遵循着守恒的原则,即每个神经元接收神经网络输出的一部分,并将其等量地重新分布到上一层,直到到达输入层。在神经网络上应用LRP,主要包括向前计算和反向的相关性传播两个阶段。在向前计算的过程中,通过一个标准的向前传播过程,收集每层中神经元的激活值。然后,在相关性传播的过程中,通过使用相应的传播规则将获得的预测值f(x)在网络中向后传播,直到到达输入层。
为了实现对神经元的相关性分析,需要计算神经网络对训练集中每个测试输入x的决策值f(x)的分解,使用分层的相关性传播来遍历网络中的每一层,以分层的方式按层内每个神经元的贡献成比例的重新分配决策值,直到到达输入层。对全连接层i中第j个神经元的相关性Rij,使用如下LRP规则来重新分配第i+1层神经元的相关性:
其中Ri+1,k表示第i+1层中第k个神经元的相关性分数;wijk表示神经元j和神经元k之间的连接权;φ(x,nij)表示层i上的第j个神经元的激活值;ε是一个小的稳定项,避免分母为0。
所述步骤2中,首先,基于相关性分数对原始深度学习模型中每层的神经元进行分类,然后使用神经元级变异算子对不同类别的神经元分别采取不同的变异策略,指导生成变异模型。
其中神经元分类具体为:首先根据神经元的相关性分数将神经网络中每层上的神经元划分为不同的类别。由于在神经元相关性分析的过程中,具有更高权值和激活值的神经元将会被分配更高的相关性分数,其反映了神经元与DNN行为之间的相关性。因此,可以根据相关性分数将每层上的神经元划分为如下不同的类别:
重要神经元:每层中相关性分数前20%的神经元,这些神经元在神经网络的计算过程中具有显著的重要性,其激活值会对神经网络的输出结果产生重要影响;
平凡神经元:每层中相关性分数后20%的神经元,这些神经元在神经网络的计算过程中贡献较小,其激活值对神经网络的输出结果影响较弱;
普通神经元:每层中除重要神经元和平凡神经元之外的神经元,这些神经元在神经网络的计算过程中具有一定的重要性,但其激活值对神经网络的输出结果影响较中等。
其中使用神经元级变异算子对不同类别的神经元分别采取如下的变异策略指导生成变异模型:
重要神经元:重要神经元通常对于神经网络的功能实现起到关键作用,其激活值对网络的性能和表现具有决定性影响。因此,在对重要神经元进行变异时,通过使用神经元级变异算子对单个重要神经元的50%的权值进行改变来生成变异模型;
平凡神经元:平凡神经元通常对神经网络的功能实现不具有显著作用,其激活值对网络的性能和表现影响较小。因此,在对平凡神经元进行变异时,通过使用神经元级变异算子对所有平凡神经元的权值进行改变来生成变异模型;
普通神经元:普通神经元在神经网络的功能实现中起到一般性的作用,其激活值对网络的性能和表现产生一般性的影响。因此,在对普通神经元进行变异时,通过使用神经元级变异算子对指定百分比数量的普通神经元的权值进行改变来生成变异模型。
所述步骤3中,使用原始深度学习模型和变异模型执行待评估的测试集,并记录执行结果,以为深度学习系统的测试提供指导和反馈。其中,执行结果包括测试集的变异分数以及每个变异模型上未被杀死的类别。
在传统软件工程中,变异测试被认为是系统地评估和改善测试集测试能力的最重要的技术之一,其通过设计相应的变异算子将人工故障注入到被测软件中来创建变异体,并通过检测故障的情况来评估测试集的质量。与传统的软件系统相比,DL系统的行为不仅取决于源代码,还取决于训练数据、神经网络结构或各种超参数的调整。因此,DL变异算子具有不同的性质。Ma等人提出了一个DL变异测试框架DeepMutation,并设计了8个源级变异算子和8个模型级的变异算子。源级变异算子在模型训练之前将错误引入到DL的编程源,即训练数据和训练程序中,并通过对模型重训练来生成变异的模型,即变异体。模型级的变异算子不需要对模型进行重训练,其通过直接对训练后的模型中的权值、偏差、结构等进行改变来生成变异体。其中,在所提出的模型级变异算子中包含了5个神经元级变异算子:高斯模糊(GF)、神经元效应阻隔(NEB)、神经元激活逆转(NAI)、神经元交换(NS)、神经元权值打乱(WS),用于通过对训练后的原始深度学习模型中的神经元的权值进行改变以生成深度学习变异模型。神经元级变异算子的具体描述如下:
1)高斯模糊(GF):对神经元的权值进行高斯模糊,即在神经元的权值上添加一个符合高斯分布N(μ,σ2)的噪声。
2)神经元效应阻隔(NEB):将神经元与下一层的连接权设置为0,来消除该神经元对系统最终决策的影响。
3)神经元激活逆转(NAI):改变输入在神经元上的激活状态。通过在应用激活函数之前更改神经元输出值的符号来实现。
4)神经元交换(NS):将神经元的权值与同一层中随机选择的神经元的权值进行交换。
5)神经元权值打乱(WS):将神经元与前一层的连接权进行随机打乱。
在测试集的质量评估指标方面,针对深度学习中的分类问题,DeepMutation提出了适用于深度学习的变异杀死定义,其中考虑了测试输入在深度学习模型上的分类结果。对一个k分类问题,设C={c1,...,ck}表示测试数据的k个输出类别,M′表示生成的一组变异模型。给定一组测试输入T,对一个真实标签为ci∈C的测试数据t∈T,如果其被原始深度学习M模型正确地分类为ci,并且未被变异模型m∈M′正确地分类为ci,则认为变异模型m的类别ci被杀死了。设KilledClass(T,m)表示m被T中的测试数据杀死的类别集合。基于此,测试集T在变异模型M上的变异分数定义如下:
在所述步骤3之后,还包括:
步骤4:若执行结果中测试集在变异模型上的变异分数为1,则测试集是充分的,变异测试完成;若测试集在变异模型上的变异分数不为1,则测试集是不充分的,执行步骤5;
步骤5:对变异模型上每个未被杀死的类别,通过基于梯度搜索的变异测试输入生成方法,进一步生成新的变异杀死输入补入测试集中,以帮助检测变异模型上的错误行为并改善测试集的质量。
所述步骤5中基于梯度搜索的变异测试输入生成方法是通过解决一个最大化变异杀死输入的数量和神经元覆盖的联合优化问题来实现的,目标是在改善不充分测试集的同时触发更多DL系统的逻辑和错误行为。
所述联合优化问题的目标函数定义如下:
该联合优化问题的第一个目标是生成更多检测原始深度学习模型和变异模型上不一致行为的变异杀死输入,即被原始深度学习模型和变异模型分类为不同类别的测试输入。该目标的目标函数定义如下:
其中cM和cm分别表示测试数据在原始深度学习模型和变异模型上的原始类别标签;cMa(a=0,...,b)表示置信度低于cM的前b类标签;cma(a=0,...,b)表示置信度低于的cm的前b类标签。最大化这一部分的目的是为了指导测试输入在变异模型上跨越原始类别的决策边界,并位于其前b个其他类别的决策空间中,同时保证测试输入在原始深度学习模型上仍位于当前类别的决策空间中。这种变异后的输入更有可能被变异模型错误分类,同时继续保持其在原始深度学习模型上的正常分类,从而成为一个能够区分原始深度学习模型和变异模型的变异杀死输入。
优化问题的第二个目标是生成最大化神经元覆盖的测试输入。通过反复挑选未被覆盖的神经元,并修改输入使该神经元的输出位于激活阈值之上来实现这一目标。该目标的目标函数定义如下:
其中,na是其中一个被选择的目标神经元,每次将会有r个神经元被选出用于指导测试输入的生成。
通过联合最大化上述两个目标,定义最终的目标函数为:
其中λ是用于平衡两个目标的超参数。最大化这一部分的目的是激活更多未被激活的神经元,从而更好地探测原始深度学习模型中的潜在缺陷。
基于联合优化问题的目标函数,通过梯度搜索指导生成变异杀死输入的过程,具体为:
给定一个测试集T,对一个变异模型m,unKilledClass(T,m)表示m未被T杀死的类别集合。对unKilledClass(T,m)中的每一个类别c,从T中筛选出在原始深度学习模型M上被正确预测为c的测试输入作为种子输入x。在根据x构成其目标函数后,通过对该目标函数进行梯度求导来指导测试输入的变异。在对x进行变异的过程中,通过迭代地将该目标函数的梯度求导作为扰动添加到x中获得中间输入x'。在每次迭代后,需要分别获得x'在M和m上的预测结果cM和cm,如果cM与c相同且cm与c不相同,则种子输入x的变异过程停止,并将x'作为新生成的变异杀死输入补入测试集。
第二个目标中的被选择的目标神经元为优先挑选的相关性分数高且未被覆盖的神经元。对每个种子输入x,将会有r个神经元通过该策略被选出用于指导测试输入的变异。
下面通过具体的实例来说明本发明的具体实施步骤:
选择了MNIST数据集作为评估的对象。MNIST是一个公开可用的手写数字图像数据集,由0到9的数字图像构成,共包含70000张图像,其中包括60000张训练数据和10000张测试数据。使用MNIST数据集训练了模型lenet5,该模型被广泛用于深度学习的测试。表1中展示了模型结构的细节以及模型在训练集和测试集上的准确率。
表1深度学习模型结构
1、执行分层的相关性传播:对训练得到的原始深度学习模型,通过在训练集上执行LRP,为其每层上的神经元分配相关性分数。在相关性传播的过程中,通过对系统最终的决策进行分解,并以每个神经元及其连接的程度成比例的为每层的神经元分配相关性分数,每层中具有较高权值和激活值的神经元将会被分配更高的相关性分数,其反映了神经元与DNN决策行为之间的相关性。
为了实现神经元的相关性分析,需要计算原始深度学习模型对训练集中每个测试输入x的决策值f(x)的分解,使用分层的相关性传播来遍历网络中的每一层,以分层的方式按层内每个神经元的贡献成比例的重新分配决策值,直到到达输入层。最终,每个神经元的相关性分数被计算为在训练集中每个测试输入上获得的相关性分数之和,并根据计算得到的相关性分数对每层中的神经元进行排序。
2、模型变异:首先,根据神经元的相关性分数将神经网络中每层上的神经元划分为不同的类别。每层中相关性分数前20%的神经元被分类为重要神经元,相关性分数后20%的神经元被分类为平凡神经元,其余神经元被分类为普通神经元。然后,使用每个神经元级变异算子对不同类别的神经元分别采取相应的变异策略指导生成变异模型。对重要神经元,通过使用神经元级变异算子对单个重要神经元的50%的权值进行改变来生成变异模型,重复生成过程20次,共生成20个变异模型;对平凡神经元,通过使用神经元级变异算子对所有平凡神经元的权值进行改变来生成变异模型,重复生成过程20次,共生成20个变异模型;对普通神经元,通过使用神经元级变异算子对1%的普通神经元的权值进行改变生成变异模型,重复生成过程20次,共生成20个变异模型。因此,对原始模型使用每个变异算子生成了60个变异模型,共生成了300个(60*5)变异模型。
3、测试执行:在原始模型和变异模型上执行待评估测数据集,并记录执行结果。进一步得到相应的变异分析结果,其中记录了待测数据集的变异分数以及每个变异体上未被杀死的类别。
4、测试生成:对变异模型上每个未被杀死的类别,通过提出的基于梯度搜索的变异测试输入生成方法进一步生成新的变异杀死输入,以帮助检测变异模型上的错误行为。在执行该生成算法时,设置参数b、r、λ分别为5,5,0.5。对每个种子输入,设置其最大的迭代次数(即对每个种子输入进行变异的最大次数)为10次。如果在10次变异中没有生成新的变异杀死输入,则对下一个种子输入进行变异去生成测试输入。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:包括以下步骤:
步骤1:对原始深度学习模型,通过在其相应的训练集上执行分层的相关性传播LRP,为原始深度学习模型中每层的神经元分配相关性分数;
步骤2:基于步骤1中为神经元分配的相关性分数,通过神经元级变异算子为原始深度学习模型生成变异模型;
步骤3:使用原始深度学习模型和变异模型执行待评估的测试集,并记录执行结果。
3.根据权利要求1所述的一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:所述步骤2具体为:
步骤2.1:基于相关性分数对原始深度学习模型中每层的神经元进行分类,其中,每层相关性分数前20%的神经元为重要神经元,每层中相关性分数后20%的神经元为平凡神经元,其余为普通神经元;
步骤2.2:使用神经元级变异算子对不同类别的神经元分别采取如下的变异策略,指导生成变异模型:
重要神经元:使用神经元级变异算子对单个重要神经元的50%的权值;
平凡神经元:使用神经元级变异算子对所有平凡神经元的权值进行改变;
普通神经元:使用神经元级变异算子对设定百分比数量的普通神经元的权值进行改变。
4.根据权利要求1所述的一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:所述步骤3中执行结果包括测试集的变异分数以及每个变异模型上未被杀死的类别。
6.根据权利要求5所述的一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:所述方法的步骤3之后还包括:
步骤4:若执行结果中测试集在变异模型上的变异分数为1,则测试集是充分的,变异测试完成;若测试集在变异模型上的变异分数不为1,则测试集是不充分的,执行步骤5;
步骤5:对变异模型上每个未被杀死的类别,通过基于梯度搜索的变异测试输入生成方法,进一步生成新的变异杀死输入补入测试集中,以帮助检测变异模型上的错误行为并改善测试集的质量。
8.根据权利要求7所述的一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:基于所述联合优化问题的目标函数,通过梯度搜索指导生成新的变异杀死输入,具体过程如下:
给定一个测试集T,对一个变异模型m,unKilledClass(T,m)表示m未被T中的测试数据杀死的类别集合;
对unKilledClass(T,m)中的每一个类别c,从T中筛选出在原始模型M上被正确预测为c的测试输入作为种子输入x;
在根据种子输入x构成其对应的目标函数后,通过对该目标函数进行梯度求导来指导测试输入的生成:在对x进行变异的过程中,迭代地将该目标函数的梯度求导作为扰动添加到x中获得中间输入x';在每次迭代后,分别获得x'在M和m上的预测结果cM和cm,如果cM与c相同且cm与c不相同,则x的变异过程停止,并将x'作为新生成的变异杀死输入补入测试集,否则继续x的变异过程直至达到预设的最大迭代次数。
9.根据权利要求8所述的一种基于神经元相关性指导的深度学习变异测试方法,其特征在于:对种子输入x,优先选择相关性分数最高的r个未被覆盖的神经元作为目标神经元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310407514.8A CN116361190B (zh) | 2023-04-17 | 2023-04-17 | 一种基于神经元相关性指导的深度学习变异测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310407514.8A CN116361190B (zh) | 2023-04-17 | 2023-04-17 | 一种基于神经元相关性指导的深度学习变异测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116361190A true CN116361190A (zh) | 2023-06-30 |
CN116361190B CN116361190B (zh) | 2023-12-05 |
Family
ID=86937801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310407514.8A Active CN116361190B (zh) | 2023-04-17 | 2023-04-17 | 一种基于神经元相关性指导的深度学习变异测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116361190B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007306919A (ja) * | 2004-07-22 | 2007-11-29 | Eisai R & D Management Co Ltd | Lrp4/Corinドーパミン産生ニューロン前駆細胞マーカー |
CN110543411A (zh) * | 2018-05-29 | 2019-12-06 | 南京大学 | 一种演化环境下变异测试强度需求预测方法 |
CN112346956A (zh) * | 2019-08-07 | 2021-02-09 | 南京慕测信息科技有限公司 | 一种针对深度学习程序进行神经元变异的测试方法 |
CN112463638A (zh) * | 2020-12-11 | 2021-03-09 | 清华大学深圳国际研究生院 | 基于神经网络的模糊测试方法及计算机可读存储介质 |
CN113762335A (zh) * | 2021-07-27 | 2021-12-07 | 北京交通大学 | 一种基于不确定性的智能系统测试数据生成方法 |
US20220019675A1 (en) * | 2020-07-15 | 2022-01-20 | Industry Academy Cooperation Foundation Of Sejong University | Apparatus and method for determining vulnerability of deep learning model |
CN114048817A (zh) * | 2021-11-16 | 2022-02-15 | 浙江工业大学 | 一种基于变异策略的深度学习输入集优先级测试方法 |
CN115204253A (zh) * | 2022-05-30 | 2022-10-18 | 广东石油化工学院 | 基于分层变分条件转移神经元的跨域小样本学习方法 |
CN115392434A (zh) * | 2022-08-10 | 2022-11-25 | 浙江工业大学 | 一种基于图结构变异测试的深度模型加固方法 |
KR20220159762A (ko) * | 2021-05-26 | 2022-12-05 | 인하대학교 산학협력단 | 유전 알고리즘을 이용한 인공 신경망 모델 구축방법 및 이를 이용한 변수 최적화 방법 |
CN115757103A (zh) * | 2022-11-03 | 2023-03-07 | 北京航空航天大学 | 基于树结构的神经网络测试用例生成方法 |
CN115757112A (zh) * | 2022-11-11 | 2023-03-07 | 广州中平智能科技有限公司 | 基于变异分析的测试子集构建方法及相关设备 |
CN115905861A (zh) * | 2022-11-01 | 2023-04-04 | 浙江工业大学 | 一种基于多级算子变异的强化学习框架安全性检测方法 |
-
2023
- 2023-04-17 CN CN202310407514.8A patent/CN116361190B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007306919A (ja) * | 2004-07-22 | 2007-11-29 | Eisai R & D Management Co Ltd | Lrp4/Corinドーパミン産生ニューロン前駆細胞マーカー |
CN110543411A (zh) * | 2018-05-29 | 2019-12-06 | 南京大学 | 一种演化环境下变异测试强度需求预测方法 |
CN112346956A (zh) * | 2019-08-07 | 2021-02-09 | 南京慕测信息科技有限公司 | 一种针对深度学习程序进行神经元变异的测试方法 |
US20220019675A1 (en) * | 2020-07-15 | 2022-01-20 | Industry Academy Cooperation Foundation Of Sejong University | Apparatus and method for determining vulnerability of deep learning model |
CN112463638A (zh) * | 2020-12-11 | 2021-03-09 | 清华大学深圳国际研究生院 | 基于神经网络的模糊测试方法及计算机可读存储介质 |
KR20220159762A (ko) * | 2021-05-26 | 2022-12-05 | 인하대학교 산학협력단 | 유전 알고리즘을 이용한 인공 신경망 모델 구축방법 및 이를 이용한 변수 최적화 방법 |
CN113762335A (zh) * | 2021-07-27 | 2021-12-07 | 北京交通大学 | 一种基于不确定性的智能系统测试数据生成方法 |
CN114048817A (zh) * | 2021-11-16 | 2022-02-15 | 浙江工业大学 | 一种基于变异策略的深度学习输入集优先级测试方法 |
CN115204253A (zh) * | 2022-05-30 | 2022-10-18 | 广东石油化工学院 | 基于分层变分条件转移神经元的跨域小样本学习方法 |
CN115392434A (zh) * | 2022-08-10 | 2022-11-25 | 浙江工业大学 | 一种基于图结构变异测试的深度模型加固方法 |
CN115905861A (zh) * | 2022-11-01 | 2023-04-04 | 浙江工业大学 | 一种基于多级算子变异的强化学习框架安全性检测方法 |
CN115757103A (zh) * | 2022-11-03 | 2023-03-07 | 北京航空航天大学 | 基于树结构的神经网络测试用例生成方法 |
CN115757112A (zh) * | 2022-11-11 | 2023-03-07 | 广州中平智能科技有限公司 | 基于变异分析的测试子集构建方法及相关设备 |
Non-Patent Citations (5)
Title |
---|
ZHANG, ZHIYI: "DeepMnist:A method of white box testing based on hierarchy", 《IEEE INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY COMPANION》, pages 712 - 717 * |
尹志杰: "一种基于神经网络基函数的新型遗传算法", 计算机仿真, no. 12, pages 118 - 120 * |
李宁;谢振华;谢俊元;陈世福;: "SEFNN:一种基于结构进化的前馈神经网络设计算法", 计算机研究与发展, no. 10, pages 37 - 42 * |
王赞;闫明;刘爽;陈俊洁;张栋迪;吴卓;陈翔;: "深度神经网络测试研究综述", 软件学报, no. 05, pages 19 - 39 * |
陶传奇; 包盼盼; 黄志球; 周宇; 张智轶: "编程现场上下文深度感知的代码行推荐", 《软件学报》, pages 3351 - 3371 * |
Also Published As
Publication number | Publication date |
---|---|
CN116361190B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Deepmutation++: A mutation testing framework for deep learning systems | |
Jahangirova et al. | An empirical evaluation of mutation operators for deep learning systems | |
Dola et al. | Distribution-aware testing of neural networks using generative models | |
Lanubile et al. | Comparing models for identifying fault-prone software components. | |
Wong et al. | Using an RBF neural network to locate program bugs | |
Chandrasekaran et al. | A combinatorial approach to explaining image classifiers | |
Xie et al. | Coverage-guided fuzzing for feedforward neural networks | |
You et al. | Regression fuzzing for deep learning systems | |
Shen et al. | Boundary sampling to boost mutation testing for deep learning models | |
EP3735636B1 (en) | Artificial intelligence enabled output space exploration for guided test case generation | |
Shukla et al. | A review on software defect prediction | |
Tao et al. | DLRegion: coverage-guided fuzz testing of deep neural networks with region-based neuron selection strategies | |
CN116361190B (zh) | 一种基于神经元相关性指导的深度学习变异测试方法 | |
Berend | Distribution awareness for AI system testing | |
Lomio et al. | Fault Prediction based on Software Metrics and SonarQube Rules. Machine or Deep Learning? | |
Zhu et al. | Discovering boundary values of feature-based machine learning classifiers through exploratory datamorphic testing | |
Chen et al. | Application of machine learning on software quality assurance and testing: A chronological survey | |
Wu et al. | Genmunn: A mutation-based approach to repair deep neural network models | |
Pravin et al. | An efficient programming rule extraction and detection of violations in software source code using neural networks | |
CN114297053A (zh) | 一种基于多层感知机平滑的软件程序安全检测方法 | |
Matcha et al. | Using Deep Learning Classifiers to Identify Candidate Classes for Unit Testing in Object-Oriented Systems. | |
Jiang | Research on software defect prediction technology based on deep learning | |
Chandrasekaran | Testing Artificial Intelligence-Based Software Systems | |
Yi et al. | A Coverage-Guided Fuzzing Framework based on Genetic Algorithm for Neural Networks | |
Teofili et al. | CERTEM: explaining and debugging black-box entity resolution systems with CERTA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |