1.一种基于神经元覆盖率的图像深度学习模型测试方法,其特征在于,包括以下步骤:(1)选取图像数据集;选取M个采用所述图像数据集预训练好的深度学习模型;
(2)搭建生成式对抗网络;生成式对抗网络的生成器将随机分布映射为扰动图,再将扰动图加到图像数据集中的原始样本上,生成生成样本;生成式对抗网络的判别器用于区分原始样本和生成样本;
所述的生成式对抗网络包括生成器、第一判别器、第二判别器以及第三判别器;
所述第一判别器用于识别原始样本和生成样本;
所述第二判别器基于梯度的类激活映射寻找原始样本和生成样本的注意力覆盖区域,统计注意力覆盖区域的位置、大小;
所述第三判别器计算生成样本在预训练好的深度学习模型上的神经元覆盖率,并判断其神经元覆盖率是否达到设定的阈值;
(3)针对M个预训练好的深度学习模型,以图像数据集作为训练集,基于神经元覆盖率和注意力机制训练生成式对抗网络,获得M个训练好的生成器;基于神经元覆盖率和注意力机制训练生成式对抗网络时,生成器与第一判别器以训练好的图像深度学习模型对原始样本和生成样本的分类概率的交叉熵作为损失函数;损失函数公式为:其中,D1(x)为原始样本在第一判别器的输出,D1(G(z))为生成样本在第一判别器的输出;
生成器与第二判别器的损失函数为:
其中,lf为损失函数,f(x)为原始样本的Grad‑CAM,f(G(z))为生成样本的Grad‑CAM;
生成器与第三判别器的损失函数为:
LNC=Re LU(NCov(x,N)‑Tc);
其中,NCov(x,N)为生成样本在训练好的图像深度学习模型上的神经元覆盖率;Tc为设定的神经元覆盖率的阈值,为超参数;
总损失函数为:
其中,λ和β为超参数;
以图像数据集作为训练集对生成式对抗网络进行训练,直至总损失函数收敛且生成样本的神经元覆盖率大于设定的阈值,结束训练;
(4)以图像数据集作为输入,分别采用M个训练好的生成器生成生成样本;将M个训练好的生成器所生成的生成样本汇总,获得测试深度学习模型的测试数据集;
(5)利用生成的测试数据集对待测图像深度学习模型进行测试。
2.根据权利要求1所述的基于神经元覆盖率的图像深度学习模型测试方法,其特征在于,基于梯度的类激活映射寻找样本的注意力覆盖区域,计算公式为:i
其中,A表示第i个特征图;
Sc为样本在训练好的深度学习模型中真实类标的分类得分;Z=c1×c2,为特征图的大小; 为第i个特征图第k行第j列的像素值。
3.根据权利要求1所述的基于神经元覆盖率的图像深度学习模型测试方法,其特征在于,计算样本在预训练好的深度学习模型上的神经元覆盖率,计算公式如下:其中:N={n1,n2,...},为预训练好的深度学习模型的一组神经元;T={x1,x2,...},为预训练好的深度学习模型的一组测试输入; 表示一个功能函数,该函数代表在给定输入x∈T、n∈N时所得到的输出值;high和low为超参数,sum(N)为神经元总个数。
4.根据权利要求1所述的基于神经元覆盖率的图像深度学习模型测试方法,其特征在于,所述的图像数据集为MNIST数据集、ImageNet数据集、CASIA数据集、GTSRB数据集或LFW数据集。
5.据权利要求1所述的基于神经元覆盖率的图像深度学习模型测试方法,其特征在于,步骤(5)包括:计算测试数据集在待测图像深度学习模型上的准确率,并进行异常指数的判定;计算公式为:AI=max(thre‑acc,0);
其中,AI是异常指数;acc是测试数据集在待测图像深度学习模型Mtest上的准确率;threi i是异常值的判断阈值;xtest是测试数据集中第i个测试数据,ytest是测试数据集中第i个测试数据的真实标签。
6.一种基于神经元覆盖率的图像深度学习模型测试装置,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,其特征在于,所述计算机处理器执行计算机程序时实现如权利要求1~5任一项所述的基于神经元覆盖率的图像深度学习模型测试方法。