1.一种面向深度学习模型的动态测试方法,其特征在于,包括如下步骤:S1、获取图片数据集与深度学习模型;
S2、将图片数据集划分为训练集和测试集,利用训练集中的训练样本训练深度学习模型得到分类模型;
S3、从测试集中随机选取图片作为测试种子样本;
S4、将测试种子样本输入分类模型中,若分类模型输出的分类结果与测试种子样本的标签不一致,则将测试种子样本作为测试样本输出,否则进入步骤S5;
S5、基于测试种子样本在分类模型中的交叉熵损失和神经元覆盖率计算梯度,包括:S51、统计测试种子样本的激活神经元数量并按下式计算神经元覆盖率;
其中,n代表神经元,x代表测试种子样本,T代表测试种子样本的集合,N为分类模型中所有神经元的集合,||代表集合里的神经元个数,out(n,x)是返回x在神经元n中的输出值的函数,t为阈值;
S52、基于测试种子样本在分类模型中的交叉熵损失和神经元覆盖率计算损失函数loss3;
loss3=loss2+λ*NC(T,x)其中,λ为参数,λ的取值范围为[0,1];
所述的loss2的计算公式如下:
其中,Hx是测试种子样本x的交叉熵,yx是测试种子样本x的标签,y′x是测试种子样本x的预测标签;a代表测试种子样本的个数;
Hz(yz,y′z)的计算公式如下:
其中, 是测试种子样本x被预测标签为j的概率, 是测试种子样本x的标签为j的概率;
S53、基于损失函数loss3计算梯度grad:其中,所述的 为loss3对x求梯度, 为loss3对x求偏导;
S6、根据梯度上升算法修改测试种子样本得到修改后的测试种子样本;
S7、循环执行步骤S4~S6,直到所有测试种子样本都成为测试样本并输出;
S8、利用测试样本对模型进行训练提高模型鲁棒性或利用测试样本评判模型的分类性能。
2.根据权利要求1所述的面向深度学习模型的动态测试方法,其特征在于,所述的图片数据集为MNIST数据集、Imagenet数据集或Driving数据集;所述的深度学习模型为LeNet深度学习模型、VGG19深度学习模型、Dave‑dropout模型或ResNet50深度学习模型。
3.根据权利要求1所述的面向深度学习模型的动态测试方法,其特征在于,所述将图片数据集划分为训练集和测试集,利用训练集中的训练样本训练深度学习模型得到分类模型,具体过程为:S21、将图片数据集按预设比例划分为训练集和测试集,通过one‑hot编码将图片数据集中每个样本的标签转化为一维向量;
S22、构建损失函数loss1;
′
其中,Hi(yi,yi)是训练样本i的交叉熵,b是训练集中训练样本的个数;
训练样本i的交叉熵的计算公式如下:
′
其中,yi是样本i的标签,yi 是样本i的预测标签; 是样本i被预测标签为j的概率,是样本i的标签为j的概率;
S23、以损失函数最小化为目标对深度学习模型进行训练得到分类模型。
4.根据权利要求3所述的面向深度学习模型的动态测试方法,其特征在于,步骤S23中所述的训练采用小批量梯度下降法训练,并采用十折交叉验证。
5.根据权利要求1所述的面向深度学习模型的动态测试方法,其特征在于,所述的λ的取值范围为0.6≥λ≥0.4。
6.根据权利要求1所述的面向深度学习模型的动态测试方法,其特征在于,根据梯度上升算法修改测试种子样本的具体过程为:修改后的测试种子样本x’=x+s*grad,其中s为迭代步长,s的取值范围为[0,100]。
7.根据权利要求1所述的面向深度学习模型的动态测试方法,其特征在于,步骤S8中所述的模型为人脸识别模型或汽车自动驾驶模型。
8.一种面向深度学习模型的动态测试方法的装置,其特征在于,所述装置包括:获取模块,用于获取图片数据集与深度学习模型;
训练模块,用于将图片数据集划分为训练集和测试集,利用训练集中的训练样本训练深度学习模型得到分类模型;
获取测试种子样本模块,用于从测试集中随机选取图片作为测试种子样本;
检测模块,用于检测分类模型能否正确预测测试种子样本的标签,包括:将测试种子样本输入分类模型中,若分类模型输出的分类结果与测试种子样本的标签不一致,则将测试种子样本作为测试样本输出;
生成模块,用于计算梯度基于测试种子样本在分类模型中的交叉熵损失和神经元覆盖率计算梯度,并根据根据梯度上升算法修改测试种子样本得到修改后的测试种子样本,其中梯度计算过程为:统计测试种子样本的激活神经元数量并按下式计算神经元覆盖率;
其中,n代表神经元,x代表测试种子样本,T代表测试种子样本的集合,N为分类模型中所有神经元的集合,||代表集合里的神经元个数,out(n,x)是返回x在神经元n中的输出值的函数,t为阈值;
基于测试种子样本在分类模型中的交叉熵损失和神经元覆盖率计算损失函数loss3;
loss3=loss2+λ*NC(T,x)其中,λ为参数,λ的取值范围为[0,1];
所述的loss2的计算公式如下:
其中,Hx是测试种子样本x的交叉熵,yx是测试种子样本x的标签,y′x是测试种子样本x的预测标签;a代表测试种子样本的个数;
Hz(yz,y′z)的计算公式如下:
其中, 是测试种子样本x被预测标签为j的概率, 是测试种子样本x的标签为j的概率;
基于损失函数loss3计算梯度grad:
其中,所述的 为loss3对x求梯度, 为loss3对x求偏导;
测试模块,用于利用测试样本评判模型的分类性能。