本发明属于深度神经网络测试,具体涉及一种融合聚类算法和多样性的测试用例优先级排序方法。
背景技术:
1、在大数据和人工智能时代,深度神经网络(deep neural network,简称dnn)正在迅速发展,并已广泛应用于计算机视觉、自然语言处理和语音识别等各种领域。与传统的软件测试不同,dnn测试强调模型的性能和泛化能力,面临高维和随机输入带来的挑战。数据中的微小扰动可能会导致网络错误分类并产生错误结果,这可能会导致生命和财产的损失。深度神经网络的开发遵循以数据为中心的编程范式,在运行时内部对外界是封闭的,因此使用充足的测试用例来检测深度神经网络的错误行为至关重要。然而,大多数原始测试用例缺乏标签信息,对这些测试用例进行标记是一项成本高昂的工作,尤其是在一些专业领域,如医学成像和金融分析。
2、为了提高dnn测试的效率,以最小的代价检测出模型中的缺陷,研究人员提出了测试用例优先级排序方法。该方法旨在根据测试用例的某些指标,如错误揭示能力、测试用例的执行时间等,重新排列测试用例的执行顺序,在有限的标注预算内筛选出最具代表性、最有可能导致系统故障的测试用例。现如今,研究人员针对dnn模型测试已经提出了多种测试用例优先级排序方法,包括基于覆盖率的方法和基于预测不确定性的方法。
3、基于覆盖率的方法通常以神经元覆盖率指标为指导,选择能够覆盖更多不同神经元的测试用例。直觉上,具有更高神经元覆盖率的测试用例更有可能发现模型的缺陷。然而,在研究过程中发现,通常只需要几个测试用例就能达到很高的神经元覆盖率。此外,在传统软件领域,代码有清晰的运行逻辑,但在dnn中,运行逻辑通常是隐藏的。基于上述原因,有一些研究人员对神经元覆盖率指标提出了质疑。基于不确定性的方法通过测量测试用例与决策边界的距离,为测试用例分配不同的优先级,这种方法侧重于寻找边界附近的测试用例。然而,靠近边界的测试用例不一定会被错误分类,同时该方法也会忽略远离决策边界上的测试用例。
技术实现思路
1、针对于上述现有技术的不足,本发明的目的在于提供一种融合聚类算法和多样性的测试用例优先级排序方法,以解决现有技术中测试用例优先级排序方法存在的神经元覆盖率指标存疑和以及忽略远离决策边界测试用例的问题。本发明基于聚类算法实现对训练数据的聚类,结合两种不同的多样性指标对测试数据进行优先级排序。所提供的方法能够在有限资源下筛选出尽可能多揭露dnn模型故障的测试用例,从而在减少测试标记成本的同时,提高dnn的测试效率。
2、本发明为实现上述目的,采用如下技术方案:
3、本发明的一种融合聚类算法和多样性的测试用例优先级排序方法,包括如下步骤:
4、1)采用预训练的深度神经网络模型分别对训练集和构建的新测试集进行特征提取,得到训练集和测试集的数据特征集;
5、2)使用聚类算法对训练集提取的数据特征进行聚类分析,依据生成的聚类结果对测试集中的每个数据特征进行预测,得到每个测试样本所属的聚类;
6、3)根据聚类结果,计算每个测试样本的数据特征与其所属簇的质心之间的余弦相似度,作为衡量测试样本与训练集之间多样性的指标;
7、4)提取测试集中每个测试样本的特征向量,并根据聚类结果计算每个测试用例集群的标准差,作为衡量测试集自身多样性的指标;
8、5)对于步骤3)和步骤4)中计算得出的余弦相似度和集群标准差的值,利用最大-最小归一化方法处理数据,将两者的归一化结果按照不同的权重进行加权,得到最终的排序依据,进而生成最终的测试用例优先级排序列表。
9、进一步地,所述步骤1)具体包括:
10、11)对测试集中的每一个测试样本,分别使用fgsm和bim两种对抗攻击方法进行扰动,生成两个对抗样本集;
11、12)随机从两个对抗样本集中选取25%的对抗样本,并从原测试集中选取50%的测试样本,以构成具有不同数据分布的新测试集;
12、13)将训练集和新测试集中的测试用例输入到预先训练好的dnn模型中,提取全连接层的输出作为样本的数据特征,得到训练集和新测试集的数据特征集;
13、14)对比分析原始测试样本和对抗样本的特征变化,确保对抗样本能够有效揭露dnn模型存在的不确定性。
14、进一步地,所述步骤2)具体包括:
15、21)使用肘部法来确定最优聚类数,通过绘制聚类损失函数值与聚类数目的关系曲线,找到拐点作为最优聚类数;
16、22)采用k-means聚类算法对训练集提取的数据特征进行聚类分析,通过多次迭代优化聚类中心的位置,最终形成稳定的簇;
17、23)记录每个簇的中心向量,并保存每个样本所属的簇信息;
18、24)验证聚类结果的稳定性,通过不同初始条件重复聚类过程,确保最终聚类结果的可靠性;
19、25)利用聚类结果对测试特征集中所包含的每个数据特征进行预测,得到每个测试样本所属的聚类。
20、进一步地,所述步骤3)具体包括:
21、31)根据步骤21)和步骤22)中得到的簇的中心向量和聚类预测结果,计算每个测试样本的数据特征与其所属簇的质心之间的余弦相似度,衡量测试样本与所属簇之间的特征差异;
22、32)将所有测试样本的特征差异值进行统计分析,评估不同测试样本相对于各自簇中心的相似度分布情况,低相似度的测试样本可能代表模型在处理这些样本时的存在一些不确定性,在测试过程中需要给予更高的优先级;
23、33)针对相似度较低的样本,进一步分析其可能的错误分类风险,确定其在测试优先级排序中的重要性。
24、进一步地,所述步骤4)具体包括:
25、41)采用特征提取模型提取测试集中每个测试样本的特征向量,确保特征能够充分表征样本的多样性;
26、42)根据步骤2)中的聚类预测结果,计算每个测试用例集群的标准差,衡量集群内部样本的分散程度,并评估样本在聚类中的分布情况;
27、43)通过对比不同集群的标准差,识别出多样性较高的测试样本,这些样本由于其特征的多样性,可能更容易揭示模型的潜在缺陷。
28、进一步地,所述步骤5)具体包括:
29、51)根据步骤3)和步骤4)中计算得出的余弦相似度和标准差的值,利用最大-最小归一化方法将不同数量级的特征的数据规模进行统一,映射到[0,1]的取值范围,以确保数据处理的一致性;
30、52)将归一化后的余弦相似度和标准差按照预先设定的权重进行加权计算,得到每个测试样本的综合评分;
31、53)根据综合评分生成测试用例优先级排序列表,优先选择综合评分较高的测试样本进行测试,最大化测试资源的利用效率;
32、54)验证排序结果的有效性,通过实验评估排序方法在不同测试集上的性能表现,调整参数以获得最优测试效果。
33、本发明的有益效果:
34、本发明针对深度神经网络测试用例进行排序,首先采用已经训练完成的dnn模型分别对训练集和构建的新测试集进行特征提取,得到训练集和测试集的数据特征集;其次使用聚类算法对训练集提取的数据特征进行聚类分析,依据生成的聚类结果对测试集中的每个数据特征进行预测,得到每个测试样本所属的聚类;然后计算测试用例与聚类中心的余弦相似度和测试用例集的标准差,结合两种不同的多样性指标对测试数据进行优先级排序。
35、具体说,主要有如下一些优点:
36、1、本发明通过融合聚类算法和多样性分析,实现了对深度神经网络测试用例的高效优先级排序,聚类算法可以有效地对训练数据进行分类,而多样性分析则能够评估测试用例的多样性,提高测试用例选择的针对性,从而提升测试效率。
37、2、本发明采用了余弦相似度和标准差两种多样性指标对测试用例进行排序,确保了不仅考虑测试用例与训练数据的相似性,还关注测试用例之间的多样性。这样可以在有限的资源下,筛选出更多可能揭示dnn模型缺陷的测试用例,提高测试的覆盖率和有效性。
38、3、通过优先选择多样性高、具有潜在缺陷揭示能力的测试用例,本发明能够减少不必要的测试用例标记工作,降低测试成本。尤其在标记成本高昂的领域,如医疗影像和金融分析中,本发明的方法具有显著的经济效益。
39、4、本发明的方法不仅能够有效识别dnn模型中的缺陷,还能够指导模型的重新训练,从而提高模型的鲁棒性。通过优先标记高优先级的测试用例并重新训练模型,能够显著提升模型在实际应用中的稳定性和可靠性。
1.一种融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,步骤如下:
2.根据权利要求1所述的融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,所述步骤1)具体包括:
3.根据权利要求1所述的融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,所述步骤2)具体包括:
4.根据权利要求1所述的融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,所述步骤3)具体包括:
5.根据权利要求1所述的融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,所述步骤4)具体包括:
6.根据权利要求1所述的融合聚类算法和多样性的测试用例优先级排序方法,其特征在于,所述步骤5)具体包括:
