本发明属于深度神经网络模糊测试方法,涉及一种基于决策边界引导的深度神经网络模型模糊测试方法。
背景技术:
1、近年来,以深度学习(deep learning,dl)为代表的人工智能技术快速发展,深度神经网络(deep neural network,dnn)模型越来越多地被部署在智能软件系统中,并广泛应用在工业生产、医疗诊断、社会生活、金融经济等各方面,尤其在工业物联网领域,深度学习技术可以应用于故障检测、预测维护、资源优化等多个方面。这些技术的应用提高了系统的智能化水平和自动化能力,极大提升了工业生产效率,然而,深度神经网络模型内部决策逻辑不是直接编程的结果,而是通过从训练集中学习得来,这些模型具有高度复杂的数据依赖性和内在的行为不确定性,样本中的任何微小扰动都有可能导致模型产生难以预测和理解的错误行为。dnn模型内部仍存在缺陷和鲁棒性的问题,非常容易受到微小输入变化或环境扰动的影响。因此,开发和部署深度神经网络模型时,确保其鲁棒性和可靠性变得尤为重要,这需要提高模型的泛化能力,并引入全面的测试和验证流程。
2、传统软件测试理论和技术经过几十年的研究和发展已经相对成熟,然而深度神经网络结构和传统软件截然不同,深度学习模型创造了一种以数据为核心的编程范式,在这种范式下,开发者主要负责设计和优化深度学习模型的架构,而模型的具体行为和决策逻辑则是通过大量的数据输入和相应的训练来形成,因此,传统软件的测试方法及度量指标无法直接被移植到深度神经网络上,亟需研究出一种高效的测试方法。模糊测试技术在传统软件测试中表现出较强的错误发现能力,能够在有限的测试数据上自动化产生大量的、具有高代码覆盖率的测试数据。同样,模糊测试方法也可以被应用于dnn模型的测试样本生成中,它通常以神经元覆盖率为覆盖标准,在原始测试集的基础上,依据变异策略对原始种子样本进行变异,然后,将产生的对抗样本输入到dnn模型中,试图发现原始测试集中无法暴露的错误,并且使得衍生测试集具有更高的覆盖率。这些研究表明,在针对dnn模型的测试中,获得的神经元覆盖率越高,探索的dnn内部逻辑就越丰富,这意味着更高的神经元覆盖率能够增加检测dnn模型中潜在缺陷的概率,然而仅依靠这些覆盖率作为引导,仍然存在神经元覆盖不充分,变异过程针对性弱的问题。
技术实现思路
1、本发明的目的是提供一种基于决策边界引导的深度神经网络模型模糊测试方法,解决了现有技术中存在的神经元覆盖率低、变异过程针对性弱的问题。
2、本发明所采用的技术方案是,基于决策边界引导的深度神经网络模型模糊测试方法,具体按照以下步骤实施:
3、步骤1、通过种子选择策略从初始种子集合中选出种子作为由决策边界引导的算法的输入;
4、步骤2、通过神经元选择策略选出靠近决策边界并且未被激活的神经元,形成神经元集合n;
5、步骤3、将神经元覆盖率和dnn模型预测差异作为联合优化目标函数,利用该联合优化目标函数来最大化原始样本和生成样本之间的预测差异,并利用梯度上升算法计算扰动,迭代生成对抗样本,以最大限度地激活步骤2所选择的神经元集合n中的神经元;
6、步骤4、将对抗样本与原始样本一同输入dnn模型中,以检验是否存在误识别现象,并保留被模型误识别的数据以用于模型的重训练。
7、本发明的特点还在于:
8、步骤1中,种子选择策略具体为:每次从种子库中选择预测概率最低的种子作为输入,用下式定义该选择策略:
9、
10、其中, p表示dnn对输入预测的概率, x表示dnn的一个输入, s是 x的预测类,是 x的真实标签。
11、步骤2中,神经元选择策略选择的是dnn模型最后两层的神经元,如果当前神经元相比较原始神经元更接近决策边界,则将该神经元加入神经元集合t中,之后将集合t中神经元激活值没有达到阈值的神经元加入到集合n,从而形成神经元集合n,具体的神经元选择策略如下式所示:
12、
13、其中, x表示dnn模型中的最后两层的神经元集合,表示神经元集合 x中的某一个神经元,表示初始种子的神经元 x的权重梯度,表示对抗样本的神经元 x的权重梯度,表示神经元 x的激活值,t表示判断神经元是否被激活的阈值。
14、利用神经元权重的梯度来量化输入样本与决策边界的接近程度,其通过从softmax层反向传播到目标层的偏微分损失函数获得的梯度来表示,具体的计算方式如下式所示:
15、
16、该公式描述了利用链式法则来计算目标层中某个神经元的权重相对于总损失 j的梯度,其中,j是总损失,指的是输入样本的预测结果和真实结果之间的交叉熵损失,表示点积和神经元偏置相加的结果,用于计算的输入,表示的激活值;
17、通过对所有目标层权重的梯度进行计算,然后将这些梯度作为元素来创建梯度向量 v, v的具体表达如下式所示:
18、
19、其中, i表示dnn模型倒数第二层的第 i个神经元, j表示dnn模型最后一层的第 j个神经元,表示倒数第二层的第 i个神经元和最后一层的第 j个神经元之间的权重。
20、步骤3中,联合优化目标函数 joint由两部分组成,一部分是最大化输入样本的神经元覆盖率,另一部分是最大化原始样本与生成样本之间的预测差异,具体如下式所示:
21、
22、其中, fi表示softmax层的输出, pi(x)表示输入样本真实标签值的损失,n表示通过神经元选择策略所确定的神经元集合,表示集合n中的某一个神经元,表示神经元 x的激活值,表示生成的扰动在l2距离的约束条件下,原始样本在迭代变异过程中逐步逼近以满足该联合优化目标函数的要求。
23、本发明的有益效果是:
24、(1)本发明提出了一种新的针对dnn的模糊测试方法,使用决策边界为引导,通过构建联合优化目标函数,利用梯度上升算法来计算扰动并迭代生成对抗样本,从而提高对抗样本的针对性,使其能够有效地被dnn错误识别;
25、(2)本发明设计了一种神经元选择策略,重点选择邻近决策边界的神经元并在每次迭代过程中不断激活它们,以最大限度地扩大神经元覆盖率,从而检测dnn模型的潜在缺陷;
26、(3)为了验证本发明方法的有效性,选取4个深度神经网络模型作为被测对象,涵盖2种不同的图像数据集,实验结果表明本发明方法能有效提高对抗样本的神经元覆盖率,同时产生更多的对抗样本数量,与deepxplore和dlfuzz方法相比,神经元覆盖率分别提升了7.4%和6.2%;相较于dlfuzz和gradfuzz方法,对抗样本的数量分别提升了110%和43%。此外,本发明方法还提高了深度神经网络模型的准确性和鲁棒性,与主流方法相比,本发明方法有更强的针对性,更高的测试效率。
1.基于决策边界引导的深度神经网络模型模糊测试方法,其特征在于,具体按照以下步骤实施:
2.根据权利要求1所述的基于决策边界引导的深度神经网络模型模糊测试方法,其特征在于,步骤1中,所述种子选择策略具体为:每次从种子库中选择预测概率最低的种子作为输入,用下式定义该选择策略:
3.根据权利要求1所述的基于决策边界引导的深度神经网络模型模糊测试方法,其特征在于,步骤2中,所述神经元选择策略选择的是dnn模型最后两层的神经元,如果当前神经元相比较原始神经元更接近决策边界,则将该神经元加入神经元集合t中,之后将集合t中神经元激活值没有达到阈值的神经元加入到集合n,从而形成神经元集合n,具体的神经元选择策略如下式所示:
4.根据权利要求3所述的基于决策边界引导的深度神经网络模型模糊测试方法,其特征在于,利用神经元权重的梯度来量化输入样本与决策边界的接近程度,其通过从softmax层反向传播到目标层的偏微分损失函数获得的梯度来表示,具体的计算方式如下式所示:
5.根据权利要求1所述的基于决策边界引导的深度神经网络模型模糊测试方法,其特征在于,步骤3中,所述联合优化目标函数joint由两部分组成,一部分是最大化输入样本的神经元覆盖率,另一部分是最大化原始样本与生成样本之间的预测差异,具体如下式所示: