本发明涉及模型迁移测试,尤其涉及一种基于解释分析的深度神经网络模型迁移测试方法。
背景技术:
1、深度神经网络(deep neural network,dnn)建立了类似人脑神经元的分层结构,通过引入非线性的激活函数,将输入的数据逐层转换为高维特征,从而建立底层输入到高层语义的复杂映射关系,可基于大规模数据集学习特定能力,在某些特定任务上的准确性甚至已经超过了人类。以dnn为代表的深度学习技术在图像识别、语音识别和自然语言处理等应用领域取得了巨大进展,被广泛地应用到一些重要的现实任务中,例如自动驾驶、人脸识别、恶意软件检测和智慧医疗分析等。但是,dnn与传统软件不同,其结构复杂且内部复杂的逻辑关系基于训练过程所获取,缺乏传统软件的可解释性,即使进行了大量的测试,也难以获取测试数据对整个dnn模型的覆盖情况,无法对测试的有效性和充分性进行评估。在实际应用中,未经过充分测试的dnn模型可能会被未知输入触发在测试阶段未发现的错误,甚至引发严重事故。例如,近年来dnn故障所导致的交通事故频发,谷歌、特斯拉等公司的自动驾驶汽车都发生过严重的安全事故。
2、现有的dnn模型测试数据生成工作中,一部分方法需要获得dnn模型的内部状态,它们被称为白盒方法;另一部分工作只需要获得dnn模型在各种输入下对应的输出,而不需要关注其内部状态,它们被称为黑盒方法。现有基于白盒方式的测试数据生成方法依赖dnn模型的内部信息,添加的扰动较小,成功率高,但是通用性不佳。基于黑盒方式的测试数据生成方法通过基于搜索或随机的方式生成测试数据,虽然产生的测试数据通用性较强,但测试有效性较差。为更有效的测试深度学习系统并生成可在不同dnn模型之间迁移使用的测试数据,需要直观地分析和理解dnn模型的行为,但现有的白盒方法只关注模型参数信息与模型输出之间的关系,不对模型行为本身进行分析,在测试数据生成过程中,测试输入在输入空间中越过白盒源模型的决策边界之后便不再变化。这导致所生成的测试输入只对白盒源模型具有较高的有效性,无法有效测试黑盒目标模型。解释方法为理解dnn模型的行为提供了技术手段,可将其用于dnn模型的测试工作,以更有效的检测缺陷。
3、因此,提出一种基于解释分析的深度神经网络模型迁移测试方法,来解决现有技术存在的困难,是本领域技术人员亟需解决的问题。
技术实现思路
1、有鉴于此,本发明提供了一种基于解释分析的深度神经网络模型迁移测试方法,通过解释方法分析白盒源模型的内部信息并用于黑盒目标模型的测试数据生成,对测试数据进行更细粒度的元素级分析和修改,以生成可对未知黑盒目标dnn模型进行有效测试的测试数据。
2、为了实现上述目的,本发明采用如下技术方案:
3、一种基于解释分析的深度神经网络模型迁移测试方法,包括以下步骤:
4、s1.模型行为解释分析:获取测试数据t,将测试数据t和白盒源dnn模型sm输入解释方法,得到白盒源dnn模型sm对测试数据t的行为解释
5、s2.通用测试数据生成:利用白盒源dnn模型sm的行为解释选择测试数据t中的重要元素并组成重要元素集ie,利用反向传播优化器对测试数据t生成扰动集p,依次对测试数据t中的重要元素添加扰动生成通用测试数据t';
6、s3.迭代扰动:将通用测试数据t'和白盒源dnn模型sm输入解释方法,得到白盒源dnn模型sm对通用测试数据t'的行为解释重复s2-s3迭代对测试数据t添加扰动,达到预定的迭代伦次时停止扰动,将达到预定的迭代扰动后的测试数据输入待测目标黑盒dnn模型tm并输出测试结果,形成测试报告。
7、可选的,s1中将测试数据t和白盒源dnn模型sm输入解释方法,得到白盒源dnn模型sm对测试数据t进行预测的行为解释的具体内容为:
8、将测试数据t={e1,e2,…,en}和白盒源dnn模型sm输入解释方法;解释方法首先将测试数据t输入白盒源dnn模型sm进行预测,在预测过程中收集模型内部信息;再根据收集的模型内部信息对模型的预测行为进行分析;将分析结果形成模型行为解释并输出,其中ei为测试数据t中的一个元素;vi为ei对模型sm输出预测结果的贡献值。
9、可选的,s2中生成通用测试数据t'的具体内容为:
10、s21:根据白盒源dnn模型sm的行为解释对测试数据t中的各个元素进行贡献度分析,将对白盒源dnn模型sm预测结果起重要贡献的元素视为重要元素,并形成重要元素集
11、s22:将测试数据t输入反向传播优化器;
12、s23:反向传播优化器通过反向传播计算白盒源dnn模型sm对测试数据t的预测结果关于每个元素的梯度信息集g={g1,g2,…,gn},其中gi为g中关于元素ei的梯度信息;
13、s24:反向传播优化器根据梯度信息g,生成使白盒源dnn模型sm的输出偏离正确预测结果的扰动集p={p1,p2,…,pn},根据重要元素集ie对扰动集p中的扰动进行约简;
14、s25:依次对测试数据t中的元素ei添加扰动pi以生成通用测试数据t'={ei+pi|ei∈t};
15、s26:将扰动后的测试数据t'作为通用测试数据并输出。
16、可选的,s24中根据重要元素集ie对扰动集p中的扰动进行约简的具体计算方法如下:
17、
18、其中pi为对元素ei的扰动。
19、可选的,s3中迭代扰动的具体步骤为:
20、s31:再次执行模型行为解释分析阶段,将通用测试数据t'输入白盒源模型sm并使用解释方法计算模型行为解释
21、s32:再次执行通用测试数据生成阶段,使用反向传播优化器对通用测试数据t'生成扰动集p,并根据解释分析结果对通用测试数据t'中的重要元素添加扰动以更新通用测试数据t';
22、s33:判断是否达到预定的迭代次数,是则结束迭代并输出预定测试数据,否则将通用测试数据t'输入解释方法进行解释分析后重复s31-s33。
23、经由上述的技术方案可知,与现有技术相比,本发明提供了一种基于解释分析的深度神经网络模型迁移测试方法,具有以下有益效果:
24、(1)本发明有效分析测试数据中不同元素的贡献程度,并根据贡献程度选择不同元素添加扰动,使生成的测试数据能有效测试未知的其他功能类似结构未知的dnn模型。
25、(2)本发明首次使用解释方法对dnn模型行为进行解释,并以此制导dnn模型的测试数据生成。
26、(3)本发明使用迭代优化的方式迭代分析测试数据中的重要元素并对其添加扰动以生成更有效的测试数据。
27、(4)本发明将通过分析白盒源模型的内部信息来生成可迁移测试目标黑盒模型的测试数据。
1.一种基于解释分析的深度神经网络模型迁移测试方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于解释分析的深度神经网络模型迁移测试方法,其特征在于,
3.根据权利要求1所述的一种基于解释分析的深度神经网络模型迁移测试方法,其特征在于,
4.根据权利要求3所述的一种基于解释分析的深度神经网络模型迁移测试方法,其特征在于,
5.根据权利要求1所述的一种基于解释分析的深度神经网络模型迁移测试方法,其特征在于,