CN116795665A - 一种工业互联网应用场景下深度学习框架的差分测试方法和系统 - Google Patents
一种工业互联网应用场景下深度学习框架的差分测试方法和系统 Download PDFInfo
- Publication number
- CN116795665A CN116795665A CN202210225034.5A CN202210225034A CN116795665A CN 116795665 A CN116795665 A CN 116795665A CN 202210225034 A CN202210225034 A CN 202210225034A CN 116795665 A CN116795665 A CN 116795665A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- model
- mutation
- framework
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 131
- 238000010998 test method Methods 0.000 title claims abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 135
- 230000035772 mutation Effects 0.000 claims abstract description 87
- 238000013136 deep learning model Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000000605 extraction Methods 0.000 claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 10
- 238000013145 classification model Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims description 2
- 238000002474 experimental method Methods 0.000 claims description 2
- 230000001186 cumulative effect Effects 0.000 claims 1
- 230000007547 defect Effects 0.000 abstract description 12
- 238000001514 detection method Methods 0.000 abstract description 6
- 239000013598 vector Substances 0.000 description 11
- 210000002569 neuron Anatomy 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 2
- 235000005979 Citrus limon Nutrition 0.000 description 2
- 244000131522 Citrus pyriformis Species 0.000 description 2
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- PSFDQSOCUJVVGF-UHFFFAOYSA-N harman Chemical compound C12=CC=CC=C2NC2=C1C=CN=C2C PSFDQSOCUJVVGF-UHFFFAOYSA-N 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003471 mutagenic agent Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明涉及一种工业互联网应用场景下深度学习框架的差分测试方法和系统,包括测试用例变异、输出结果提取、和不一致问题判定三个部分。本发明通过对工业互联网应用场景下常见的深度学习模型变异算子进行筛选,寻找一组针对深度学习框架差分测试的高效变异算子集,通过对深度学习框架进行差分测试,利用分类结果对差分结果进行准确的不一致判定。与已有的深度学习框架结果不一致检测方法相比,本发明能够更全面、准确地检测深度学习框架中由于缺陷导致的结果不一致问题。
Description
技术领域
本发明涉及一种工业互联网应用场景下深度学习框架的差分测试方法和系统,属于计算机软件测试技术领域。
背景技术
随着工业互联网应用场景的快速拓展,工业互联网平台设备层、边缘层、平台层、应用层等各类应用场景,正在推动传统生产模式向实时动态感知、科学决策和优化迭代的智能化生产模式转变,其使用的海量数据和高效算力支撑都依赖于人工智能优化的深度学习框架。通过使用深度学习框架,可以构建设备、产品、系统和服务全面连接的数据共享网络,切实提高工业互联网生产领域的自学习、自决策、自适应等智慧特性。
深度学习框架很大程度上降低了构建工业互联网平台的技术门槛。近年来,Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等最流行的深度学习框架,已经广泛应用于医疗、金融、零售、安防、交通、能源等相关联的工业互联网领域。然而,工业互联网平台中的深度学习系统可能存在软件缺陷,并显示出缺乏鲁棒性的问题(Kurakin A,Goodfellow I J,Bengio S.Adversarial examples in the physical world[C]//Adversarial examples in the physical world.2016.),并且可能引起现实事故从而威胁到生产、生活的安全。与传统的软件系统相比,工业互联网平台中的深度学习系统通常包含更复杂的组件,例如硬件基础设施、软件基础设施、深度学习框架、模型、用于训练的源程序以及训练和测试语料库(Guo Q,Chen S,Xie X,et al.An empirical study towardscharacterizing deep learning development and deployment across differentframeworks and platforms[C]//2019 34th IEEE/ACM International Conference onAutomated Software Engineering(ASE).2019:810–822.)。典型的深度学习系统的结构主要由应用层、框架层和基础设施层组成,其中每个组件都可能引入错误(Islam M J,NguyenG,Pan R,et al.A comprehensive study on deep learning bug characteristics[C]//Proceedings of the 2019 27th ACM Joint Meeting on European SoftwareEngineering Conference and Symposium on the Foundations of SoftwareEngineering.2019:510–520.)。深度学习框架作为工业互联网平台中的深度学习系统的基础函数库,直接影响着深度学习系统的行为,其潜在的软件缺陷会影响基于其构建的数百万个应用程序(庞涛.开源深度学习框架发展现状与趋势研究[J].互联网天地,2018,4:46–54.),因此保证深度学习框架的正确性至关重要。目前,大多数对深度学习系统质量保证的研究都是在上层应用层面的测试方法(Zhang J M,Harman M,Ma L,et al.Machinelearning testing:Survey,landscapes and horizons[J].IEEE Transactions onSoftware Engineering,IEEE,2020.),例如,通过产生对抗样本来测试深度学习模型,或测量深度学习模型的测试充分性。然而,很少有研究关注深度学习系统中框架层面的验证与测试。
区别于传统软件测试,深度学习框架的测试用例是深度学习模型及相应输入数据的组合。由于模型结构复杂且输入数据需要人工标注,这种测试用例难以大量获取,而只选择开源的深度学习模型和数据集来测试深度学习框架不足以涵盖所有框架行为,导致部分代码位置无法被测试。此外,由于深度学习模型的可解释性较差,难以获取给定输入实例深度学习框架的预期输出,因此缺少用于识别潜在缺陷的测试断言。深度学习框架测试面临着上述挑战,如何更好地对深度学习框架进行测试以保证深度学习框架的正确性,进而为工业互联网平台的深度学习系统提供可靠的软件基础,是本发明所要解决的问题。
当前有少数的学术研究对表克隆问题给予了关注,并针对深度学习框架测试提出了不同的方法。现有的深度学习框架测试方法主要集中在利用差分测试技术来检测相同实例在不同深度学习框架上推理结果的不一致问题上。例如,现有工作CRADLE(Pham H V,Lutellier T,Qi W,et al.CRADLE:cross-backend validation to detect and localizebugs in deep learning libraries[C]//2019 IEEE/ACM 41st InternationalConference on Software Engineering(ICSE).IEEE,2019:1027-1038.)提出将差分测试技术应用在深度学习框架测试中,并提出两种用于衡量结果不一致程度的指标作为测试断言,以便更准确地检测相同实例在不同框架上执行结果不一致的问题。Audee(Guo Q,XieX,Li Y,et al.Audee:Automated Testing for Deep Learning Frameworks[C]//202035th IEEE/ACM International Conference on Automated Software Engineering(ASE).IEEE,2020:486-498.)提出通过对模型层参数、模型权重和输入数据的这几个维度进行变异的方式,对深度学习框架测试用例进行扩充,从而对深度学习框架进行更充分的测试。LEMON(Wang Z,Yan M,Chen J,et al.Deep learning library testing viaeffective model generation[C]//Proceedings of the 28th ACM Joint Meeting onEuropean Software Engineering Conference and Symposium on the Foundations ofSoftware Engineering.2020:788-799.)也使用变异的方式对测试用例进行扩充,与Audee不同的是,LEMON还提出了一个启发式的变异策略,通过使用该策略来放大不同框架对于相同给定测试用例的推理结果的不一致程度,以便更容易区分出由软件缺陷导致的推理结果不一致问题。上述工作通过对测试用例执行变异的方式来更充分地测试深度学习框架,仍存在一些有待改进的问题。本发明专利主要解决上述测试方法中存在的以下问题:1)在测试用例生成阶段中,现有方法通常基于变异对测试用例集进行扩充,然而,针对深度学习框架测试用例变异,现有变异方法存在部分低质量或冗余的变异算子,使得低质量的测试用例被生成,进而导致测试效率不佳;2)在输出结果比较阶段中,基于平均距离的计算方法依赖于模型的高预测准确率,而模型变异会降低模型的预测准确率,因此该方法无法适用于使用变异模型的测试场景,进而导致在变异场景下缺陷检测的准确率较低。
发明内容
本发明的目的是克服目前面向差分测试的深度学习框架测试技术导致的测试效率不佳、缺陷检测准确率较低的缺陷,提出一种新的深度学习框架测试方法,能够针对深度学习框架进行较为高效的测试,提高深度学习框架缺陷检测的正确性和检出率。
基于测试用例变异的深度学习框架差分测试方法的关键是深度学习框架实现了相同的功能函数,对于给定输入实例,不同的深度学习框架应具有十分相近的输出结果。通过衡量两个框架对于同一个输入实例的输出结果的差异程度是否大于某一阈值,可发现触发结果不一致的测试用例,从而检测出深度学习框架的潜在缺陷,从而最大限度地保证深度学习框架函数的正确性。
本发明的技术方案如下:
一种工业互联网应用场景下深度学习框架的差分测试方法,主要包含以下三个步骤:
测试用例获取:获取测试用例,所述测试用例包括深度学习模型及其对应的输入数据,所述深度学习模型包括原始模型和变异模型;
输出结果提取:利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果;
不一致问题判定:根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误。
下面具体说明本发明的上述步骤。
1.测试用例获取
深度学习框架的测试用例由深度学习模型和对应输入数据组成。其中,深度学习模型对测试所能够覆盖的代码执行逻辑范围起关键性作用。深度学习模型是一种具备至少一个隐藏层的深度神经网络,其中包括一个输入层、若干个隐藏层以及一个输出层,而每个层又由多个神经元组成。
本发明主要针对深度学习模型进行变异,首先根据深度学习模型的结构特点和现有模型变异方案得出一组能够在多个维度上进行变异的模型变异算子集,其中变异维度可分为1)模型结构变异、2)层参数变异、3)模型权重变异和4)神经元变异。表1列出了采用的模型变异算子。
表1:采用的模型变异算子
为了提高模型变异效率,减少无效测试用例的生成,需要对变异算子进行筛选,删减部分低质量的变异算子。为了评估上述变异算子的质量,需要对变异算子进行实验评估,以了解它们对测试效果所产生的影响。本发明使用以下的方法来评估变异算子的质量:1)将一个原始模型以及由这个原始模型生成的变异模型称为一个种族;2)在同一对深度学习框架、同一种族的模型集上,对于一个输入样本,总有一个变异模型使得该输入在这对深度学习框架上触发不一致并且在该种族上不一致程度最大;3)通过多个输入样本找到一组上述使得不一致程度最大的变异模型,则每个变异算子的优胜次数定义为变异得到这组变异模型所使用过的相对应变异算子次数之和;4)通过实验对模型进行多次变异后,每个变异算子的优胜次数进行统计,优胜次数越多代表该变异算子越有效。
通过小规模试验挑选出那些能够触发不一致问题的测试用例,对每个变异算子的优胜次数进行统计,根据统计结果将变异算子进行排名,取优胜次数最高的10个(也可以是其它数)变异算子作为最终测试使用的变异算子集。选择一组现有的深度学习模型,使用上述挑选出来的一批变异算子对原始模型进行随机变异,根据需要变异出一组变异模型。
2.输出结果提取
本发明将所有获取的深度学习模型(包括原始模型和变异模型)以及对应的输入数据集在多个不同的深度学习框架上执行推理,得到每个输入实例对应的输出结果。通过配置多个不同深度学习框架后端的特性,可以让某组给定的深度学习模型和对应的输入数据在不同的深度学习框架上执行推理,推理的结果可用于差分结果判定。
3.不一致问题判定
本发明把不同深度学习框架上提取出的输出结果,输入到结果比较模块,以对不一致问题进行判定。根据深度学习模型的类型分为三个不同类别的输出结果判定方法:
1)对于深度学习模型为原始模型,且模型属于分类模型的输出结果,使用基于分类的结果距离计算指标D_CLASSC,Y,Y,作为一对结果差异程度的衡量指标,阈值TC设置为8。若D_CLASSC,Y,Y,>TC则判定为结果不一致。基于分类的结果距离计算方法专门针对分类模型而设计,它会计算两个框架的输出结果对样本的标签在排名上的差异。
具体而言,一个具有N个类的分类模型输出一个大小为N的向量,其中包含与类Ci对应的置信度pi,其中0<i≤N,置信度pi表示模型对将类Ci预测为输入实例的正确标签的信心值。给定分类模型的输出向量为Y,其中输入样本对应的标签为C,计算后端(后端是指低层级深度学习框架,如TensorFlow、Theano和CNTK等)的分类得分为SC,Y:
rankC,Y是标签C在输出向量Y中的排名,k是常数值(根据具体模型按经验取值),用于控制分类结果的得分区间,表示标签C在输出向量中的排名小于k时才可得分。再给定一个相同模型不同后端的输出向量Y′,计算其分类得分SC,Y′,而后计算基于分类的结果距离计算指标D_CLASSC,Y,Y′,其计算公式如下:
D_CLASSC,Y,Y′=|SC,Y-SC,Y′|
2)对于深度学习模型属于回归模型,使用基于平均距离的结果距离计算指标D_MADO,Y,Y′作为一对结果差异程度的衡量指标,阈值TM设置为0.4。若D_MADO,Y,Y′>TM则判定为结果不一致。
具体来说,对于同一个模型和输入样本的两个不同后端,给定两个大小为N的预测向量Y和Y′,基于平均距离的结果距离计算方法首先计算两个输出向量与ground-truth向量O之间的平均绝对距离δY,O和δY′,O。δY,O的计算公式如下:
然后再计算两个结果的距离D_MADO,Y,Y′,计算公式如下:
3)对于深度学习模型为变异模型,且模型属于分类模型的输出结果,本发明提出了一种基于多后端分类的结果距离计算指标作为一对结果差异程度的衡量指标,阈值Tvote设置为8。若/>则判定为结果不一致。
具体来说,给定输入样本I,模型M,设Cvote是I在多个框架上使用模型M推理得出结果与样本原始标签共同投票得出的结果,Y和Y′是其中任意的两个框架分别得到的预测结果向量,和/>分别表示这两个框架的预测得分,则优化的基于多后端分类的结果距离计算指标的计算公式如下:
基于同一发明构思,本发明还提供一种采用上述方法的工业互联网应用场景下深度学习框架的差分测试系统,其包括:
测试用例获取模块,用于获取测试用例,所述测试用例包括深度学习模型及其对应的输入数据,所述深度学习模型包括原始模型和变异模型;
输出结果提取模块,用于利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果;
不一致问题判定模块,用于根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误。
本发明与现有技术相比的优点在于:采用本发明的方法,根据变异算子对测试效果的贡献度筛选出一批高质量的变异算子集,可以高效地变异生成大批针对深度学习框架差分测试的深度学习模型,并通过巧妙运用分类结果信息辅助不一致问题的判定,能够准确地检测出深度学习框架中由于其潜在缺陷所导致的结果不一致问题。与已有的表克隆检测方法相比,该方法能够更快速、准确的识别深度学习框架中的潜在缺陷。
附图说明
图1为本发明基于测试用例变异的深度学习框架测试方法框架示意图。
图2为本发明深度学习模型变异算子集筛选流程示意图。
图3为本发明D_CLASS_VOTE指标计算流程示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
本发明提出的工业互联网应用场景下深度学习框架的差分测试方法,主要面向工业互联网应用场景中的深度学习系统实施框架层面的测试,在对测试用例进行变异的基础上,采用差分测试技术,将测试用例在深度学习框架上执行,并通过比较相同测试用例在不同深度学习框架上的执行结果差异程度是否大于阈值的方式来实现深度学习框架的正确性验证。
给定两个或两个以上的深度学习框架,本发明首先获取现有工业互联网应用场景下的深度学习模型以及模型对应的输入数据。然后利用深度学习高级框架,对模型进行加载,通过配置高级框架所使用的低级框架,将模型和输入数据组成的测试用例在不同的低级框架上执行并得到推理结果。最后使用输出结果距离指标对同一测试用例在不同深度学习低级框架上的执行结果计算差异距离,并通过比较差异距离与阈值的大小关系判断该测试用例是否触发了不一致错误。该方法包括测试用例获取、输出结果提取和不一致问题判定三部分:
测试用例获取,是得到深度学习框架差分测试所需要的测试用例,测试用例由深度学习模型及其对应的输入数据组成。测试用例主要通过两个途径进行获取,途经一是在互联网中收集现阶段常用的深度学习模型以及数据集;途径二是通过对途经一种收集到的深度学习模型进行变异,从而扩充深度学习模型的数量。
输出结果提取,是利用深度学习框架,加载并执行测试用例的推理流程,最终得到每个测试用例在多个不同深度学习框架下的执行结果。其中,深度学习框架一般可分为高级框架和低级框架,低级框架负责根据定义实现深度学习算法,而高级框架对低级框架提供的编程接口进行了统一和抽象,提供用于快速开发深度学习程序的高级函数库,并调用低级框架中的函数实现,用户可以配置使用不同的低级框架。
不一致问题判定,是根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,最后根据差异程度是否大于阈值判断测试用例是否触发了不一致错误。
其中,深度学习模型的变异模型采用以下步骤获得:首先将现有工业互联网应用场景下常用的深度学习模型变异算子视为一个初始变异算子集;使用该变异算子集对现有深度学习模型进行一定量变异,进而利用这些变异模型进行测试,根据测试结果统计每个变异算子的得分,即统计每个种族的模型集中使得结果不一致程度最大的模型所使用过的变异算子次数的累计;根据得分对初始变异算子集进行删减,去除得分较小的变异算子,得到一个新的变异算子集;使用新的变异算子集对深度学习模型进行变异,得到大批量可用于测试的变异模型。
其中,所述输出结果提取,首先使用深度学习框架的高级框架加载所获取到的深度学习模型,再利用高级框架能够配置使用不同低级框架的特性,将测试用例在不同的低级框架上执行。
本发明一个实施例的工业互联网应用场景下深度学习框架的差分测试方法,其整体流程如图1所示。在本实例中选择的测试对象,即深度学习框架,包括高级框架Keras和低级框架TensorFlow、Theano、CNTK以及MXNet。测试用例由深度学习模型及其对应输入组成。本实例主要包含测试用例获取、输出结果提取和输出结果比较三部分。
1.测试用例获取
在本发明的深度学习框架差分测试方法中,测试用例获取主要针对深度学习模型进行变异,从而获取更多的深度学习模型。为了对深度学习模型进行高效的变异,本发明对现有的模型变异算子进行筛选。变异算子筛选的流程如图2所示。首先获得现有常用的模型变异算子,例如,表2中12个变异算子。
表2:模型变异算子
序号 | 模型变异算子 | 优胜次数 |
1 | 删除层 | 50 |
2 | 交换层 | 6 |
3 | 增加层 | 30 |
4 | 批量增加层 | 146 |
5 | 权重交换 | 36 |
6 | 神经元效果阻断 | 141 |
7 | 高斯模糊 | 92 |
8 | 复制层 | 0 |
9 | 神经元交换 | 3 |
10 | 神经元激活反转 | 5 |
11 | 激活函数替换 | 7 |
12 | 激活函数移除 | 5 |
然后使用这些变异算子对现有的深度学习模型进行变异,生成一批变异模型。使用这一批变异模型,与部分现有的输入数据组合成测试用例,在上述的深度学习框架下分别执行,并计算各变异算子的优胜次数。首先,将变异模型按照种族进行分组,对于每两个深度学习低级框架,对于每一个输入数据,这些模型在不同深度学习框架下的执行结果存在差异,一旦差异程度大于阈值,则根据差异程度,对每个种族内的模型进行选择,只选择该种族中使得差异程度最大的那一个模型。其次,根据这些选择出来的模型,计算变异生成这些模型所使用过的变异算子次数,将统计次数作为变异算子的优胜次数。例如,模型M是原始模型,有变异算子a,b,c,一对深度学习框架,2个输入样本,通过变异生成了变异模型M-a、M-b、M-c、M-a-c和M-c-b-b(名字中携带的小写字母代表得到该变异模型所使用过的变异算子),假设M-a-c和M-c-b-b分别是输入样本1和输入样本2在该种族中使得这对深度学习框架触发不一致且不一致程度在同种族模型中最大,则变异算子a的优胜次数是1,变异算子b的优胜次数是2,变异算子c的优胜次数是2。
随后,根据测试结果计算每个变异算子的得分后,将得分较低的部分变异算子从原变异算子集中移除,在该实例中移除得分最低的4个变异算子(复制层、神经元交换、神经元激活反转和激活函数移除),得到筛选后的模型变异算子集,共包含8个变异算子。
在得到了经筛选后的变异算子后,使用该变异算子集对现有模型进行变异,生成一批变异模型,供后续的输出结果提取和不一致问题判定部分使用。
2.输出结果提取
输出结果提取,首先将深度学习模型文件用深度学习高级框架Keras进行加载,并准备该深度学习模型对应的输入数据,分别将Keras配置为使用TensorFlow、Theano、CNTK和MXNet低级框架进行数据在模型上的推理过程,最终得到该组测试用例(深度学习模型和对应输入样本)在四个不同深度学习框架下的执行结果。
3.不一致问题判定
在不一致问题判定部分,其输入为上述“输出结果提取”阶段中得到的一系列的执行结果以及输入数据的原标签。根据模型的属性选择不同的距离计算公式进行计算,一旦结果距离大于阈值,则判断为触发了不一致错误。
距离计算方式主要分三种情况进行讨论:
(1)回归模型采用基于平均距离的结果计算指标D_MAD,阈值设置为0.4。例如,Dave-2[29]是一个模型,它输出汽车的转向角度(以弧度测量),给定仪表盘摄像头图像作为输入。对于给定的输入图像I,记录的转向角度(ground-truth)为O=0.0。使用相同的图像作为输入,Dave-2使用两个不同的深度学习低级框架输出Y=0.4和Y′=-0.1。因此,有δY,O=|0.4-0.0|=0.4和δY,O=|-0.1-0.0|=0.1,进而可以计算 由于0.6<0.4,因此判定该测试用例触发了结果不一致问题。
(2)在分类模型中,使用原始模型时采用基于分类的结果距离指标D_CLASS,阈值设置为8。例如设定k=5时,某个输入实例的标签在TensorFlow下的推理结果中排名第一,即rankC,Y=1,SC,Y=25-1=16。而该实例的标签在CNTK下的推理结果中排名在第6,即rankC,Y=6,SC,Y=0,则D_CLASSC,Y,Y,=16。由于D_CLASSC,Y,Y,>8,判定该实例触发了结果不一致问题。
(3)在分类模型中,使用变异模型时采用优化的基于多后端分类结果距离计算指标D_CLASS_VOTE,阈值设置为8。若低级框架的数量是4,则D_CLASS_VOTE指标的计算流程如图3所示。首先得到测试用例在4个低级框架下的推理结果向量,根据推理结果分别计算top-1标签,4个top-1标签与原标签共同组成5个标签类别。随后进行投票,即选出5个标签中数量最多的标签类别Cvote。接着利用Cvote和4个结果分别计算输入数据的标签在各个结果中的排名,然后根据公式计算SC,Y与最后根据的结果与阈值进行对比判定测试用例是否触发了不一致问题。
基于同一发明构思,本发明的另一实施例提供一种采用上述方法的工业互联网应用场景下深度学习框架的差分测试系统,其包括:
测试用例获取模块,用于获取测试用例,所述测试用例包括深度学习模型及其对应的输入数据,所述深度学习模型包括原始模型和变异模型;
输出结果提取模块,用于利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果;
不一致问题判定模块,用于根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误。
基于同一发明构思,本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
对于上述实施例中出现的各种阈值等常数取值、以及深度学习框架的具体类型、数量均为举例说明,不是本发明的固定取值,实施本发明时可根据实际情况按经验或按需取值。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实例和附图所公开的内容。
Claims (9)
1.一种工业互联网应用场景下深度学习框架的差分测试方法,其特征在于,包括以下步骤:
获取测试用例,所述测试用例包括深度学习模型及其对应的输入数据,所述深度学习模型包括原始模型和变异模型;
利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果;
根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误。
2.根据权利要求1所述的方法,其特征在于,所述变异模型采用以下步骤获得:
首先将现有工业互联网应用场景下常用的深度学习模型变异算子视为一个初始变异算子集;
使用该初始变异算子集对现有深度学习模型进行一定量变异,进而利用得到的变异模型进行测试,根据测试结果统计每个变异算子的得分,即统计每个种族的模型集中使得结果不一致程度最大的模型所使用过的变异算子次数的累计;
根据得分对初始变异算子集进行删减,去除得分较小的变异算子,得到一个新的变异算子集;
使用新的变异算子集对深度学习模型进行变异,得到大批量可用于测试的变异模型。
3.根据权利要求2所述的方法,其特征在于,所述统计每个种族的模型集中使得结果不一致程度最大的模型所使用过的变异算子次数的累计,包括:
1)将一个原始模型以及由这个原始模型生成的变异模型称为一个种族;
2)在同一对深度学习框架、同一种族的模型集上,对于一个输入样本,总有一个变异模型使得该输入样本在这对深度学习框架上触发不一致并且在该种族上不一致程度最大;
3)通过多个输入样本找到一组使得不一致程度最大的变异模型,每个变异算子的优胜次数定义为得到这组变异模型所使用过的相对应变异算子的次数之和;
4)通过实验对模型进行多次变异后每个变异算子的优胜次数进行统计,优胜次数越多代表该变异算子越有效。
4.根据权利要求1所述的方法,其特征在于,所述深度学习框架分为高级框架和低级框架,低级框架负责根据定义实现深度学习算法;高级框架对低级框架提供的编程接口进行统一和抽象,提供用于快速开发深度学习程序的高级函数库,并调用低级框架中的函数实现。
5.根据权利要求4所述的方法,其特征在于,所述利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果,包括:首先使用深度学习框架的高级框架加载所获取到的深度学习模型,再利用高级框架能够配置使用不同低级框架的特性,将测试用例在不同的低级框架上执行。
6.根据权利要求1所述的方法,其特征在于,所述计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误,包括:首先根据深度学习框架的执行结果,计算同一测试用例在不同深度学习框架上输出结果的差异距离,根据深度学习模型的属性选择不同的距离计算公式进行计算,回归模型采用基于平均距离的结果距离计算指标D_MAD,阈值设置为8;分类模型中,原始模型使用基于分类的结果距离计算指标D_CLASS,变异模型使用优化的基于多后端分类的结果距离计算指标D_CLASS_VOTE,阈值均设置为0.4;一旦结果距离计算指标的值大于阈值,则判断为触发了不一致错误。
7.一种采用权利要求1~6中任一权利要求所述方法的工业互联网应用场景下深度学习框架的差分测试系统,其特征在于,包括:
测试用例获取模块,用于获取测试用例,所述测试用例包括深度学习模型及其对应的输入数据,所述深度学习模型包括原始模型和变异模型;
输出结果提取模块,用于利用深度学习框架,加载并执行测试用例的推理流程,得到每个测试用例在多个不同深度学习框架下的执行结果;
不一致问题判定模块,用于根据深度学习框架的执行结果,计算相同测试用例在不同深度学习框架下执行结果的差异程度,根据所述差异程度是否大于阈值判断测试用例是否触发不一致错误。
8.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~6中任一权利要求所述方法的指令。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~6中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210225034.5A CN116795665A (zh) | 2022-03-09 | 2022-03-09 | 一种工业互联网应用场景下深度学习框架的差分测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210225034.5A CN116795665A (zh) | 2022-03-09 | 2022-03-09 | 一种工业互联网应用场景下深度学习框架的差分测试方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795665A true CN116795665A (zh) | 2023-09-22 |
Family
ID=88037282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210225034.5A Pending CN116795665A (zh) | 2022-03-09 | 2022-03-09 | 一种工业互联网应用场景下深度学习框架的差分测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795665A (zh) |
-
2022
- 2022-03-09 CN CN202210225034.5A patent/CN116795665A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hoang et al. | Deepjit: an end-to-end deep learning framework for just-in-time defect prediction | |
Mansour et al. | Intelligent video anomaly detection and classification using faster RCNN with deep reinforcement learning model | |
KR102061987B1 (ko) | 위험 평가 방법 및 시스템 | |
TWI789345B (zh) | 機器學習模型的建模方法及裝置 | |
CN109117380B (zh) | 一种软件质量评价方法、装置、设备及可读存储介质 | |
CN110147823B (zh) | 一种风控模型训练方法、装置及设备 | |
CN110998608B (zh) | 用于各种计算机应用程序的机器学习系统 | |
CN109413023B (zh) | 机器识别模型的训练及机器识别方法、装置、电子设备 | |
CN109299258A (zh) | 一种舆情事件检测方法、装置及设备 | |
CN105354210A (zh) | 移动游戏支付账户行为数据处理方法和装置 | |
CN110610193A (zh) | 标注数据的处理方法及装置 | |
CN114072808A (zh) | 用于控制制造过程的分类模型 | |
Rashid et al. | Software quality estimation using machine learning: Case-Based reasoning technique | |
CN115358337A (zh) | 一种小样本故障诊断方法、装置及存储介质 | |
CN110956543A (zh) | 异常交易检测的方法 | |
CN117692242A (zh) | 一种基于图谱分析的网络攻击路径分析方法 | |
CN109934352B (zh) | 智能模型的自动进化方法 | |
CN116795665A (zh) | 一种工业互联网应用场景下深度学习框架的差分测试方法和系统 | |
Sharma et al. | A BPSO and deep learning based hybrid approach for android feature selection and malware detection | |
Wang et al. | A new method for redundancy analysis in feature selection | |
Singh et al. | Improving event log quality using autoencoders and performing quantitative analysis with conformance checking | |
CN110766338A (zh) | 一种基于人工智能和区块链技术eos.io的dpos分叉预测模型方法 | |
CN113886579B (zh) | 行业资讯正负面模型构建方法和系统、识别方法和系统 | |
CN110415099A (zh) | 一种金融信贷诈骗识别方法、系统及电子设备 | |
Ali | A New Intrusion Detection Strategy Based on Combined Feature Selection Methodology and Machine Learning Technique. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |