一种基于语义模块化的神经网络维护和测试方法及装置

文档序号:35345020发布日期:2023-09-07 18:37阅读:36来源:国知局
一种基于语义模块化的神经网络维护和测试方法及装置

本发明实施例涉及神经网络测试技术,尤其涉及一种基于语义模块化的神经网络维护和测试方法及装置。


背景技术:

1、深度神经网络(deep neural network,dnn)模型在工业界和学术界引起了越来越多的关注,并广泛应用到许多现代软件系统中。作为一种新的编程范式,神经网络模型采用预定义的函数、结构进行编程,其参数被自动学习以拟合给定的训练数据集。虽然一个神经网络模型可以实现各种功能,在不同情况下做出多种决策,但它的成千上万个堆叠的“微小函数”使人们很难解释它是如何做出决定的,这反过来又使模型的维护和测试具有挑战性。针对神经网络的维护和测试技术是深度学习领域中用来提高神经网络模型鲁棒性的核心技术之一。

2、目前,已有一些方法被提出,并用于神经网络的维护和测试,主流方法可以分为两大类:

3、方案一、基于神经元覆盖率的深度神经网络测试方法

4、pei等发表的文献“deepxplore:automated whitebox testing of deeplearning systems”首次将神经元覆盖(neuron coverage)作为度量指标,并提出了首个基于覆盖的神经网络白盒测试框架deepxplore。

5、该方案可归纳为图1所示流程,主要包括:1)生成测试输入:将没有标签的测试输入作为种子;2)准备待测试的神经网络:训练具有相同功能的多个神经网络;3)将测试输入数据输入神经网络,计算输出层和隐层中神经元的激活值和梯度。4)迭代地执行梯度上升来修改测试输入,以最大化目标函数,生成引起神经网络差异最大化的输入。

6、方案一的缺陷在于:1)该方案提出的测试覆盖指标仅停留在基于神经元粒度的初步阶段,但缺乏对神经元之间联结的进一步考量;2)缺乏对神经网络的语义分析,没有良好自我解释性,可扩展性差;3)测试数据生成效率较低,迁移性较差。

7、方案二、与传统软件测试融合的方法

8、传统的软件测试方法包括模糊测试、蜕变测试、变异测试等,这些测试方法主要用于检测神经网络内部缺陷,缓解测试预言(test oracle)、评估模型或数据集的质量等。这些方法在进行神经网络测试时,往往也需要结合神经元覆盖测试,因为其核心是对测试数据进行评估。

9、方案二的缺陷在于:1)当前的测试数据评估很难映射到模型内部的语义性,忽略了语义的模块性。2)神经网络与传统软件不同,内部语义缺乏理解,无法像对传统软件一样进行白盒或黑盒测试。3)局限于特定的测试输入和神经网络模型架构,不具备良好的扩展性。


技术实现思路

1、本发明提供一种基于语义模块化的神经网络维护和测试方法及装置,以降低神经网络模型维护任务的成本,提高神经网络的测试效率。

2、第一方面,本发明提供一种基于语义模块化的神经网络维护和测试方法,包括:

3、s1、给定一个深度神经网络dnn模型,根据设定的相似度阈值对dnn进行模块化,形成一个语义体系结构;

4、s2、根据语义体系结构对dnn模型进行模型重构,以得到重构后的dnn模型;

5、s3、根据语义体系结构对dnn模型进行模型改进,以得到改进后的dnn模型;

6、s4、将重构或改进后的dnn模型进一步模块化,以支持新的模型重构或改进任务,对经过模块化的神经网络模型在不同的样本进行测试,以判断模型的鲁棒性。

7、可选的,所述s1具体包括:

8、s11、将神经网络从第一层开始分别加入模块pk,每加入一层后根据模块中层的相似度计算模块pk当前的相似度;

9、s12、若模块pk当前的相似度大于或者等于所述设定的相似度阈值,则继续向模块pk中添加下一层网络,直至模块pk的相似度小于所述设定的相似度阈值;

10、s13、将剩下的层重复执行s11和s12,直至所有层全部模块化,形成完整的语义体系结构。

11、可选的,层相似度的计算公式为:

12、

13、模块相似度的公式如为:

14、

15、其中,li,lj为神经网络的层,为每个层的神经元的激活值表示的矩阵,为li,lj之间相似度可,pk表示一个模块,m表示模块层数,l1,l2,···lm为模块pk的层,simmodule(pk)为模块pk的相似度。

16、可选的,所述s2包括:

17、根据所述语义体系结构,从神经网络中去除冗余的网络层,以得到简化的神经网络;

18、对简化的神经网络执行压缩算法,以得到重构的深度神经网络模型。

19、可选的,去除冗余层的方式为保留神经网络的第一层作为接口层,并去除表示转换的其余层。

20、可选的,对简化的神经网络执行压缩算法,包括:

21、比较模块输出形状以及当前模块下一层输入的形状,如果形状相同,则直接将两模块连结;如果形状不同,在两层中添加一个缝纫层将两个模块连结起来。

22、可选的,所述s3包括:

23、根据语义体系结构拆分dnn模型为多个模块,根据模块在数据集上的偏差大小,定位关键模块,从而进行模型增强或修复。

24、第二方面,本发明提供一种基于语义模块化的神经网络维护和测试模型,包括:

25、语义体系结构形成模块,用于给定一个深度神经网络dnn模型,根据设定的相似度阈值对dnn进行模块化,形成一个语义体系结构;

26、模型重构模块,用于根据语义体系结构对dnn模型进行模型重构,以得到重构后的dnn模型;

27、模型改进模块,用于根据语义体系结构对dnn模型进行模型改进,以得到改进后的dnn模型;

28、测试模块,用于将重构或改进后的dnn模型进一步模块化,以支持新的模型重构或改进任务,对经过模块化的神经网络模型在不同的样本进行测试,以判断模型的鲁棒性。

29、本发明的有益效果:

30、1、本发明使用语义模块化的方法完成神经网络的维护和测试,弥补了现有方法的不足,在更大程度上考虑了模型内部的语义,有利于提高模型鲁棒性和适应能力。

31、2、采用本发明的技术方案,可以比最先进的模型压缩技术的运行时效率提高14.8%,并且将实现拟合敌对的样本并修复性能不佳的模型所需要训练的神经元比例降低至不到20%,同时实现相似的模型预测性能,训练性能提高32.85%,且大大提高了测试效率,证明了本发明在模型维护和测试方面的有效性和实用性。



技术特征:

1.一种基于语义模块化的神经网络维护和测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述s1具体包括:

3.根据权利要求2所述的方法,其特征在于,层相似度的计算公式为:

4.根据权利要求1所述的方法,其特征在于,所述s2包括:

5.根据权利要求4所述的方法,其特征在于,去除冗余层的方式为保留神经网络的第一层作为接口层,并去除表示转换的其余层。

6.根据权利要求5所述的方法,其特征在于,对简化的神经网络执行压缩算法,包括:

7.根据权利要求1所述的方法,其特征在于,所述s3包括:

8.一种基于语义模块化的神经网络维护和测试模型,其特征在于,用于执行权利要求1-7任一项所述的一种基于语义模块化的神经网络维护和测试方法,包括:


技术总结
本发明公开了一种基于语义模块化的神经网络维护和测试方法及装置。其中,该方法包括:给定一个深度神经网络DNN模型,根据设定的相似度阈值对DNN进行模块化,形成一个语义体系结构;根据语义体系结构对DNN模型进行模型重构,以得到重构后的DNN模型;根据语义体系结构对DNN模型进行模型改进,以得到改进后的DNN模型;将重构或改进后的DNN模型进一步模块化,以支持新的模型重构或改进任务,对经过模块化的神经网络模型在不同的样本进行测试,以判断模型的鲁棒性。本发明通过使用语义模块化的方法完成神经网络的维护和测试,弥补了现有方法的不足,有利于提高模型鲁棒性和适应能力。

技术研发人员:李杰,任潇宁,薛吟兴
受保护的技术使用者:中国科学技术大学苏州高等研究院
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1