基于关键决策逻辑设计测试覆盖率的网络模型测试方法与流程

专利2022-05-09  7


本发明涉及计算机软件测试领域的网络模型测试方法,具体是涉及了一种基于关键决策逻辑设计测试覆盖率的网络模型测试方法。



背景技术:

传统软件测试旨在检测现有行为和期望行为之间差异的任何活动。软件测试的一般步骤是先从待测软件的输入域中选择一组测试用例(<输入,输出>),然后将这些测试用例交给待测软件执行,比较待测软件的实际输出与预期输出是否相符,若不符合,表明待测软件存在缺陷,其中测试覆盖率衡量使用提供的测试输入可以评估多少测试目标程序。

与传统软件测试类似,深度神经网络模型的测试目标是检测神经网络(deepneuralnetwork,dnn)的决策逻辑来检测出模型中错误的预测,然而不像传统软件中有明确控制流图,神经网络的决策逻辑对人们来说是不透明的,很难根据神经网络的行为逻辑来设计合适的测试覆盖率。而神经网络的神经元输出在一定程度上能够揭示神经网络的行为,因此现有很多技术通过神经元输出来设计测试覆盖标准,现有的技术认为测试图片样本集对神经元输出的值域空间覆盖越大,则该测试图片样本集的覆盖率越高。

现有的技术主要是通过神经元的输出来衡量测试覆盖率,而神经元输出与dnn内部决策逻辑的关系十分不清晰,所以很难理解现有的测试覆盖率的意义以及其准确性,太粗糙的测试覆盖率将会丢失掉对一部分决策逻辑的测试,太精细的测试覆盖率会使得相近的决策逻辑将需要不同的大量样本来测试,增加测试的难度。



技术实现要素:

为了保障深度学习系统的安全与可靠性,需要对其进行安全检测,本发明提出了一种针对深度神经网络的测试覆盖率,该测试覆盖率与深度神经网络模型的决策逻辑结合更加紧密,使得该测试覆盖率更具有可解释性以及更有效。

本发明保障深度神经网络模型的安全与可靠性,能更好地针对深度神经网络模型进行安全测试。

如图1所示,本发明解决问题的技术方案如下:

s1:处理得到训练集中每个训练图片样本在深度神经网络模型中的关键决策路径;

所述的训练集是由众多训练图片样本及其对应的类别标签构成,所述的训练集内的所有训练图片样本已经按需划分为所需分类的各个类别标签。

s2:根据训练集中所有训练图片样本的关键决策路径综合处理成深度神经网络模型的关键决策图;

s3:根据关键决策图对测试集处理获得测试覆盖率,作为确定神经网络测试集的测试范围;

s4:利用测试覆盖率控制测试集对深度神经网络模型进行测试,以测试覆盖率作为当前测试集占总测试集的比例,获得用当前测试集对深度神经网络模型完备性衡量测试的结果。

本发明的深度神经网络模型由多层的神经元组成,神经元的参数由大量图片样本组成的训练集训练而得到。

所述的深度神经网络模型的层是指卷积层、全连接层、归一化层等网络层。

本发明所述的深度神经网络模型是针对图像进行处理。

2、根据权利要求1所述的一种基于关键决策逻辑设计测试覆盖率的网络模型测试方法,其特征在于:所述步骤s1中:

s11:将训练集每一张训练图片样本输入到深度神经网络模型中,将深度神经网络模型每一层的每个神经元的每个输出输入到逐层相关值推导的方法中处理计算获得每个神经元的每个输出的关于最终预测结果的相关值;

s12:将深度神经网络模型中各层的每个神经元的所有输出值对应的相关值累加起来,作为该神经元关于最终预测结果的相关值,从而获得每个神经元关于最终预测结果的相关值;

s13:预设设置相关值阈值,将相关值超过相关值阈值的神经元设置为关键决策神经元,再将深度神经网络模型中各层的关键决策神经元组合为该训练图片样本在深度神经网络模型上的关键决策路径;

s14:重复上述步骤s11~s13将训练集的所有训练图片样本输入到深度神经网络模型中,获得所有训练图片样本在该深度神经网络模型上的关键决策路径。

这样通过对深度神经网络模型的模型结构和模型参数进行分析,得到深度神经网络模型各层对最终分类结果影响力超过阈值的关键决策神经元;各层的关键决策神经元组合得到训练集中每个图片样本的关键决策路径,表征每个训练集样本的决策逻辑。

所述步骤s2具体为:

s21:对于训练集每同一个类别内的所有训练图片样本,对该类别内的所有训练图片样本的关键决策路径进行聚类和合并;

s22:统计深度神经网络模型中的各个神经元在步骤s21获得的聚类合并后的子类的关键决策路径中出现的频率,预先设置频率阈值,逐层选出出现频率大于频率阈值的神经元作为关键决策图神经元,将深度神经网络模型中各层的各个关键决策图神经元组合作为整个深度神经网络模型的关键决策图。

关键决策图是由每一层挑选出的关键决策图神经元组成,每一层选出的关键决策图神经元个数至少为1。

所述s21具体为:

将深度神经网络模型各层的所有神经元展开设置为同一个一维向量作为关键决策路径向量,关键决策路径向量中将出现在关键决策路径的神经元标记为1,而未出现在关键决策路径中的神经元标记为0;对于每个训练图片样本的关键决策路径均处理获得一个关键决策路径向量,将所有训练图片样本的关键决策路径向量共同输入到k-means聚类方法中聚类处理,将被聚类成同一子类的所有训练图片样本的关键决策路径合并成一个关键决策路径,作为该子类的关键决策路径。

这样对训练集中每个图片样本的关键决策路径进行抽象综合形成整个深度神经网络模型的关键决策图,表征深度神经网络模型的决策逻辑。

所述步骤s3中:

s31:针对测试集,按照和训练集相同处理方式计算得到测试集的关键决策路径;

s32:构建相似度度量,将测试集的关键决策路径和关键决策图比较获得相似度度量,根据相似度度量处理获得测试集的测试覆盖率。

首先根据输入的测试集中的测试图片样本计算各个测试图片样本的关键决策路径,将测试图片样本的关键决策路径与关键决策图对比相似度,得到测试图片样本相对于深度神经网络模型的测试覆盖率。

具体来说,其中第一种相似度度量为,根据输入测试集的关键决策路径与关键决策图的神经元求得相似度,第二种相似度度量为,根据输入测试集与训练集图在关键决策图的激活值差异求得相似度。

所述s32具体为:

s321:所述的测试覆盖率分为基于结构的神经元测试覆盖率和基于激活值的神经元测试覆盖率的两个测试覆盖率,分别处理获得两个测试覆盖率:

a、基于结构的神经元测试覆盖率

针对测试图片样本x的关键决策路径在深度神经网络模型每一层逐层和关键决策图比较计算相似度,作为测试图片样本x在深度神经网络模型的各层的相似度,将相似度的空间建立为[0,1],相似度计算方式如下:

其中,表示测试图片样本x的关键决策路径在深度神经网络模型第l层中所包含的所有神经元和关键决策图在第l层中包含的所有神经元之间的相似度,l表示深度神经网络模型的层数,为测试图片样本x的关键决策路径在深度神经网络模型第l层中所包含的所有神经元,表示的集合形式,为关键决策图在深度神经网络模型第l层中包含的所有神经元,表示的集合形式,∩为集合与操作,∪为集合或操作;

将相似度的空间等分为m个格子,根据所有测试图片样本的关键决策路径与关键决策图之间各层的相似度所占据的格子序数来度量获得基于结构的神经元测试覆盖率snpc,具体计算公式如下:

其中,x表示输入的测试集,x表示测试集中的一个测试图片样本,f(x)表示深度神经网络模型对测试图片样本x的类别,k为类别f(x)的聚类数,m为相似度的空间划分的总格子数,为关键决策图,为关键决策图的层数,也就是深度神经网络模型的层数,为测试图片样本x的关键决策路径和关键决策图之间在深度神经网络模型第l层的相似度所占据的格子序数,表示“任意”逻辑操作,∈表示“属于”逻辑操作,f表示深度神经网络模型,l为深度神经网络模型的总层数,n为测试集中的测试图片样本总数;gf(x)表示所有聚类对应的所有关键决策图的集合;

b、基于激活值的神经元测试覆盖率

首先将测试图片样本x在深度神经网络模型的各层的相似度叠加求取平均值,作为测试图片样本x和关键决策图之间的总相似度;

然后将测试集中所有测试图片样本x的总相似度中选取总相似度最高的测试图片样本x作为参考测试图片样本x′;

在获取参考测试图片样本x′之后,在关键决策图上根据激活值计算激活值的差距作为距离,公式如下:

其中,x表示测试图片样本的序数,l表示深度神经网络模型的总层数,为测试图片样本x的关键决策路径在深度神经网络模型的第l层中所包含的所有神经元,为关键决策图在深度神经网络模型第l层中包含的所有神经元,表示测试图片样本x的关键决策路径在关键决策图的深度神经网络模型第l层中所包含神经元上的的激活值,表示参考测试图片样本x′的关键决策路径在关键决策图的深度神经网络模型第l层中所包含神经元上的激活值;表示测试图片样本x和参考测试图片样本x′之间在深度神经网络模型第l层的激活值之差,即测试图片样本x和参考测试图片样本x′之间的距离;

根据距离范围建立一个距离空间,将距离空间等分为m个格子,根据每个测试图片样本x和参考测试图片样本x′之间的距离所占据的格子序数来度量获得基于激活值的神经元测试覆盖率anpc,具体计算公式如下:

其中,x表示输入的测试集,x表示测试集中的一个测试图片样本,f(x)表示深度神经网络模型对测试图片样本x的类别,k为类别f(x)的聚类数,m为相似度的空间划分的总格子数,为关键决策图,为深度神经网络模型的层数,为测试图片样本x的关键决策路径和关键决策图之间在深度神经网络模型第l层的距离所占据的格子序数,表示“任意”逻辑操作,∈表示“属于”逻辑操作,f表示深度神经网络模型,l为深度神经网络模型的总层数,n为测试集中的测试图片样本总数;gf(x)表示所有聚类对应的所有关键决策图的集合;

s322:以两个测试覆盖率中的较小者作为最终测试覆盖率。

根据关键决策图,本发明构建了两个测试覆盖率:基于结构的覆盖率标准(structure-basedneuronpathcoverage,snpc)和基于激活值的覆盖率标准(action-basedneuronpathcoverage,anpc),其中snpc是基于深度神经网络模型的控制流,anpc是基于深度神经网络模型的数据流。

本发明的有益效果是:

本发明基于关键决策路径与关键决策图的抽取,构建了两种测试覆盖率,在计算简单、使用效率高、存储代价小的基础上,提高了测试覆盖率的可解释性,并提升了对测试集测试覆盖率衡量的准确性。

附图说明

图1为本发明测试方法的流程图。

具体实施方式

现结合具体实施过程对本发明的技术方案作进一步说明。

如图1所示,结合cifar-10数据集为具体实例,本发明的实施例及其实施过程如下:

步骤s1,本发明提出了基于图片样本训练集训练而成的深度神经网络模型的表征关键决策决策逻辑的关键决策路径的抽取方法,计算得到深度神经网络模型对于训练集中每个图片样本的关键决策路径。

(1)本发明采用layer-wiserelevancepropagation(lrp)来处理获得一个训练图片样本输入深度神经网络模型后的内部决策表征结果。

将训练集每一张训练图片样本输入到深度神经网络模型中,将深度神经网络模型每一层的每个神经元的每个输出输入到逐层相关值推导的方法(layer-wiserelevancepropagation,lrp)中处理计算获得每个神经元的每个输出的关于最终预测结果的相关值。

本发明采用逐层相关值推导的方法(layer-wiserelevancepropagation,lrp)来计算每个神经元与最终决策结果的相关值,该计算过程是从深度神经网络模型的最后一层回推到输入层,这样深度神经网络模型中的每一层的每个神经元的输出值均计算得到一个关于最终预测结果的相关值。

将深度神经网络模型中各层的每个神经元的所有输出值对应的相关值累加起来,作为该神经元关于最终预测结果的相关值,从而获得每个神经元关于最终预测结果的相关值。

这些相关值代表了神经元对该训练图片样本分类过程的重要程度,其中相关值为负,则表示该神经元并没有为该预测结果提供支持,相关值为正,则表示该神经元促成了当前的预测结果,由于深度神经网络模型中每一层每个神经元均计算出这样的相关值,具体实施对深度神经网络模型中每层都挑选出相关值为正的神经元。

(2)对每层的所有神经元根据其相关值进行排序,并设定相关值阈值,取出各层相关值超越相关值阈值的部分神经元组成了关键决策路径。

具体实施中,求出当前层所有神经元相关值中正相关值的和s,预先设定参数a(范围0-1.0)为所取神经元的相关值阈值的系数,当该层所取神经元的相关值之和大于a*s时,已取的神经元即该层的关键决策神经元,将各层的关键决策神经元构成了关键决策路径。

(3)对cifar-10训练集中的所有训练图片样本进行关键决策路径的抽取,获得了所有训练集中训练图片样本的关键决策路径。

步骤s2,在获得训练集中每个图片样本的关键决策路径后,本发明提出基于所有图片样本训练集关键决策路径的形成深度神经网络模型的关键决策图的抽象综合方法,将所有的图片样本关键决策路径抽象综合成关键决策图,能够提高效率。抽象聚合路径主要分成两步。

(1)类内聚类合并:

对于一个训练集中类内的训练图片样本,认为深度神经网络模型对于相近的训练图片样本有相似的决策路径,根据关键决策路径来聚合相近的训练图片样本,来生成几个具有代表性的合并关键决策路径,减少比较次数,同时实现准确率和效率。

本发明采用k-means聚类方法,根据训练图片样本的关键决策路径,将训练集内每个类别的所有训练图片样本再聚类成k个子类。具体为:

将深度神经网络模型各层的所有神经元展开设置为同一个一维向量作为关键决策路径向量,关键决策路径向量中将出现在关键决策路径的神经元标记为1,而未出现在关键决策路径中的神经元标记为0,即作为关键决策神经元的神经元标记为1,不作为关键决策神经元的神经元标记为0;

这样对于每个训练图片样本的关键决策路径均处理获得一个关键决策路径向量,将所有训练图片样本的关键决策路径向量共同输入到k-means聚类方法中聚类处理,将被聚类成同一子类的所有训练图片样本的关键决策路径合并成一个关键决策路径,作为该子类的关键决策路径。

k-means聚类方法会使得关键决策路径距离更近的各个训练图片样本聚到一类,意味着被聚类成一类的这些训练图片样本的决策逻辑相近,训练集内每个类别内被聚类成同一子类的所有训练图片样本的关键决策路径合并成一个关键决策路径,作为该子类的关键决策路径。

在cifar-10数据集训练集上,本发明将每个训练集每个类别中的训练图片样本聚类为4子类。

(2)路径合并:

是要将数据集训练集每个类别的每个聚类的所有的关键决策路径合并成一条抽象关键决策路径,最后这些抽象关键决策路径组成模型的关键决策图。

首先针对每个类别的每个聚类,对各层的各个神经元在该聚类内所有训练集的训练图片样本的关键决策路径中出现的频率进行统计,设计一个频率阈值b,当该神经元出现的频率超过阈值b时,该神经元入选为该聚类的抽象关键决策路径,其中频率阈值b决定了最终聚类关键决策路径的宽度,最后训练集的每个类别获得多个聚类各自对应的抽象关键决策路径,这些所有类别下所有聚类的抽象关键决策路径组成了深度神经网络模型的关键决策图。

例如ciar-10数据集训练集中10个类别每个类别聚为4个子类,每个聚类都有一条抽象关键决策路径,在cifar-10数据集训练集中共抽取了40条抽象关键决策路径,而这40条抽象关键决策路径共同组成了模型的关键决策图。

关键决策图代表深度神经网络模型从训练集中学到的决策逻辑,深度学习测试目标是检测出触发未知逻辑或者错误逻辑的样本,用各个聚类后的关键决策路径去表征模型所学到的决策逻辑,实际上,dnn中路径的数量十分庞大,很难用路径本身是否相同去衡量决策逻辑是否相同,本发明选择用关键决策路径之间的距离来表征与模型所学到决策逻辑之间的一致程度。

步骤s3中:

s31:针对测试集,按照和训练集相同处理方式计算得到测试集的关键决策路径;

s32:构建相似度度量,将测试集的关键决策路径和关键决策图比较获得相似度度量,根据相似度度量处理获得测试集的测试覆盖率。

s321:测试覆盖率分为基于结构的神经元测试覆盖率和基于激活值的神经元测试覆盖率的两个测试覆盖率,分别处理获得两个测试覆盖率:

a、基于结构的神经元测试覆盖率

通过测试图片样本的关键决策路径与关键决策图之间的相似度来衡量深度神经网络模型决策逻辑的差异,由于路径是由各层的神经元组成,针对测试图片样本x的关键决策路径在深度神经网络模型每一层逐层和关键决策图比较计算相似度,作为测试图片样本x在深度神经网络模型的各层的相似度,将相似度的空间建立为[0,1],相似度计算方式如下:

其中,j为相似度,表示测试图片样本x的关键决策路径在深度神经网络模型第l层中所包含的所有神经元和关键决策图在第l层中包含的所有神经元之间的相似度,即测试图片样本x的关键决策路径和关键决策图之间在深度神经网络模型第l层的相似度l表示深度神经网络模型的层数,表示测试图片样本x的关键决策路径,为关键决策图,为测试图片样本x的关键决策路径在深度神经网络模型第l层中所包含的所有神经元,表示的集合形式,为关键决策图在深度神经网络模型第l层中包含的所有神经元,表示的集合形式,∩为集合与操作,∪为集合或操作;

将相似度的空间等分为m个格子,例如划分为[0,0.1)、[0.1,0.2)、…、[0.9,1]。根据所有测试图片样本的关键决策路径与关键决策图之间各层的相似度所占据的格子序数来度量获得基于结构的神经元测试覆盖率snpc,具体计算公式如下:

其中,x表示输入的测试集,x表示测试集中的一个测试图片样本,f(x)表示深度神经网络模型对测试图片样本x的类别,k为类别f(x)的聚类数,m为相似度的空间划分的总格子数,为关键决策图,为关键决策图的层数,为测试图片样本x的关键决策路径和关键决策图之间在深度神经网络模型第l层的相似度所占据的格子序数,表示“任意”逻辑操作,∈表示“属于”逻辑操作,f表示深度神经网络模型,l为深度神经网络模型的总层数,n为测试集中的测试图片样本总数;gf(x)表示所有聚类对应的所有关键决策图的集合。

b、基于激活值的神经元测试覆盖率

首先将a获得的测试图片样本x在深度神经网络模型的各层的相似度叠加求取平均值,作为测试图片样本x和关键决策图之间的总相似度;

然后将测试集中所有测试图片样本x的总相似度中选取总相似度最高的测试图片样本x作为参考测试图片样本x′,通过上述总相似度度量计算出与关键决策图相似度最高的测试图片样本的关键决策路径;

在获取参考测试图片样本x′之后,在关键决策图上根据激活值计算激活值的差距作为距离,公式如下:

其中,x表示测试图片样本的序数,l表示深度神经网络模型的总层数,表示测试图片样本x的关键决策路径,为关键决策图,为测试图片样本x的关键决策路径在深度神经网络模型的第l层中所包含的所有神经元,为关键决策图在深度神经网络模型第l层中包含的所有神经元,表示测试图片样本x的关键决策路径在关键决策图的深度神经网络模型第l层中所包含神经元上的的激活值,表示参考测试图片样本x′的关键决策路径在关键决策图的深度神经网络模型第l层中所包含神经元上的激活值;表示测试图片样本x和参考测试图片样本x′之间在深度神经网络模型第l层的激活值之差,即测试图片样本x和参考测试图片样本x′之间的距离;

根据距离范围建立一个距离空间,将距离空间等分为m个格子,根据每个测试图片样本x和参考测试图片样本x′之间的距离所占据的格子序数来度量获得基于激活值的神经元测试覆盖率anpc,具体计算公式如下:

其中,x表示输入的测试集,x表示测试集中的一个测试图片样本,f(x)表示深度神经网络模型对测试图片样本x的类别,k为类别f(x)的聚类数,m为相似度的空间划分的总格子数,为关键决策图,为深度神经网络模型的层数,为测试图片样本x的关键决策路径和关键决策图之间在深度神经网络模型第l层的距离所占据的格子序数,表示“任意”逻辑操作,∈表示“属于”逻辑操作,f表示深度神经网络模型,l为深度神经网络模型的总层数,n为测试集中的测试图片样本总数;gf(x)表示所有聚类对应的所有关键决策图的集合。

s322:以两个测试覆盖率中的较小者作为最终测试覆盖率。

基于结构的神经元测试覆盖率snpc是基于对分类贡献大的神经元的相似度,而很多情况下很难仅根据贡献大的神经元来区分决策逻辑,因为相同神经元在不同输入时对分类所做出的贡献也可能差异很多,而本发明再计算基于激活值的神经元测试覆盖率,基于激活值的神经元测试覆盖率anpc在具有激活值后对测试图片样本决策逻辑的覆盖范围有更好的度量,更为细致地解决了上述问题。

从计算的方式中可看出,基于结构的神经元测试覆盖率snpc在计算相似度时依赖路径的相似度,而基于激活值的神经元测试覆盖率anpc是基于神经元激活值来计算图片样本之间距离。

本发明综合融合基于结构的神经元测试覆盖率snpc和基于激活值的神经元测试覆盖率anpc,取长补短,获得了更加准确有效的测试覆盖率。

转载请注明原文地址:https://doc.8miu.com/read-250318.html

最新回复(0)