CN112199295B - 一种基于频谱的深度神经网络缺陷定位方法及*** - Google Patents

一种基于频谱的深度神经网络缺陷定位方法及*** Download PDF

Info

Publication number
CN112199295B
CN112199295B CN202011180145.6A CN202011180145A CN112199295B CN 112199295 B CN112199295 B CN 112199295B CN 202011180145 A CN202011180145 A CN 202011180145A CN 112199295 B CN112199295 B CN 112199295B
Authority
CN
China
Prior art keywords
test case
neural network
neurons
network model
neuron
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.)
Active
Application number
CN202011180145.6A
Other languages
English (en)
Other versions
CN112199295A (zh
Inventor
李铮
崔展齐
刘建宾
郑丽伟
刘秀磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qianyu Technology Co.,Ltd.
Original Assignee
Beijing Information Science and Technology University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Information Science and Technology University filed Critical Beijing Information Science and Technology University
Priority to CN202011180145.6A priority Critical patent/CN112199295B/zh
Publication of CN112199295A publication Critical patent/CN112199295A/zh
Application granted granted Critical
Publication of CN112199295B publication Critical patent/CN112199295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Complex Calculations (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

本发明公开了一种基于频谱的深度神经网络缺陷定位方法,属于软件测试技术领域,包括以下步骤:1、获取正确的测试用例和错误的测试用例,2、获取待测深度神经网络模型频谱信息,3、计算神经元的怀疑度,并按照怀疑度对神经元进行排序。本发明依据深度神经网络对测试集的运行输出和分类结果量化深度神经网络中的神经元,然后利用怀疑度公式计算其怀疑度,并对其进行排名,定位到最有可能是缺陷的位置。该方法及***将神经元的输出和测试数据的运行结果结合,可以将深度神经网络模型中的缺陷直观的使用数值体现出来,更准确快捷的定位到深度神经网络模型缺陷的具***置。

Description

一种基于频谱的深度神经网络缺陷定位方法及***
技术领域
本发明涉及软件测试技术领域,特别是涉及一种基于频谱的深度神经网络缺陷定位方法及***。
背景技术
深度神经网络作为机器学***,如图像分类,语音识别,恶意软件检测等,并取得了广泛的应用,在很多场景下会代替人做出重要决策。但是,所有软件都不可避免的包含缺陷,深度神经网络也不例外。在诸如自动驾驶汽车和医学图像分析等安全关键***中,如果深度神经网络做出的决定是错误的,将会造成非常严重的后果。例如:Uber无人驾驶汽车在夜间测试的过程中发生严重事故致使一名行人死亡;苹果手机的FaceID可以使用3D打印的人脸图片破解。因此,如何检测并定位深度神经网络中的缺陷,以保证深度神经网络的质量成为了软件工程和人工智能交叉领域的热点研究问题。
目前,适用于深度神经网络的缺陷检测技术受到了广泛关注,如使用蜕变测试对深度神经网络进行测试,它可以通过对比蜕变前后的数据分类是否一致来检测深度神经网络是否存在缺陷;此外,还有一些有关神经元覆盖准则的方法,它们使用了不同的方法来提高神经元的覆盖率,同时可以根据覆盖率引导的测试来检测深度神经网络中存在的缺陷。当成功检测出神经网络中存在缺陷后,应该去定位缺陷所在的地方,以便于修复缺陷。但是上述工作都无法对具体产生缺陷的位置进行定位,也不能检测出深度神经网络中的特定结构存在缺陷,如:层数过多或者过少、激活函数不正确等。
深度神经网络是一个黑盒,它可以使用大量神经元中的简单函数来模拟任何一个连续函数。从这个角度来看,深度神经网络的缺陷难以定位,因为我们无法准确的找出某一个神经元、某种结构或者某种激活函数确切的对神经网络的结果产生了什么影响。在这种情况下,如何定量分析它们对深度神经网络结果的作用就成了一个亟需解决的问题。
软件缺陷定位的目标是识别与软件缺陷相关的程序元素,它可以帮助程序开发人员更快更准确地发现程序中需要修复的地方,以提升程序的可靠性。早期的缺陷定位以人工为主,但是通过人工调试来定位缺陷不仅耗时长而且难度大。在传统的软件缺陷定位方法中,基于频谱的缺陷定位方法通过获取程序的覆盖信息来对每个程序实体进行评估。程序频谱主要是指程序执行过程中产生的关于程序语句的覆盖信息,以及执行是否通过的信息。在使用测试集对程序进行测试的过程中,需要收集程序频谱信息,最后将频谱信息代入怀疑度公式得出程序实体对应的怀疑度,怀疑度越高即说明程序实体越有可能存在缺陷。我们将这种思想运用到了深度神经网络中,提出了一种基于频谱的深度神经网络缺陷定位方法及***,以在神经元的层面上定位深度神经网络的缺陷。该方法及***依据深度神经网络对测试集的运行输出和分类结果量化深度神经网络中的神经元,然后利用怀疑度公式计算其怀疑度,并对其进行排名,定位到最有可能是缺陷的位置。
发明内容
本发明的目的在于,提供一种基于频谱的深度神经网络缺陷定位方法及***,实现深度神经网络的缺陷定位,将深度神经网络模型中的缺陷直观的使用数值体现出来。
本发明所采用的技术方案是:一种基于频谱的深度神经网络缺陷定位方法,具体包括以下步骤:
获取正确测试用例和错误测试用例:使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D,区分出正确测试用例和错误测试用例,并获取所述测试用例集T={t1,t2,t3,...}对应的运行信息集R={r1,r2,r3,...};
获取待测深度神经网络模型的频谱信息:使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D,获取每个神经元的输出结果;根据所述运行信息集R={r1,r2,r3,...}与所述输出结果得到所述待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
计算神经元的怀疑度,并按照怀疑度对神经元进行排序:根据怀疑度公式与所述频谱信息M={m1,m2,m3,...}计算出所有神经元的的怀疑度,并对神经元按照怀疑度从大到小进行排序,排序越靠前的神经元存在缺陷的几率越大。
进一步地,所述获取正确测试用例和错误测试用例包括以下具体步骤:
s11输入所述待测深度神经网络模型D和所述测试用例集T={t1,t2,t3,...};
s12选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行所述待测深度神经网络模型D,获取所述测试用例ti的运行结果Oi
s13根据所述运行结果Oi判断所述测试用例ti为正确测试用例还是错误测试用例,并记录所述测试用例ti的运行信息ri,如果所述测试用例ti为正确测试用例,则记所述运行信息ri=1;如果所述测试用例ti为错误测试用例,则记所述运行信息ri=0;
s14重复执行s12、s13直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成,得到所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...};
s15遍历所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...},统计总的正确测试用例个数np和总的错误测试用例个数nf
s16输出所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...}。
进一步地,所述获取待测深度神经网络模型的频谱信息包括以下具体步骤:
s21输入所述待测深度神经网络模型D、所述测试用例集T={t1,t2,t3,...}和所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...},其中N={n1,n2,n3,...}为所述待测深度神经网络模型D中的所有神经元集合;
s22选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行待测深度神经网络模型D,获取所述测试用例ti运行时各个神经元nj∈N的输出fnj(ti),并存储在文件中;
s23重复执行s22,直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成;
s24选择一个神经元nj,遍历其对应所述测试用例集T={t1,t2,t3,...}的输出fnj(T),如果所述运行信息集R={r1,r2,r3,...}中对应的ri=1,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的成功贡献;如果所述运行信息R={r1,r2,r3,...}中对应的ri=0,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的失败贡献,并将最终结果记录为所述神经元nj的频谱信息mj={nef(nj),nep(nj)},其中nef(nj)为所述神经元nj的失败贡献,nep(nj)为所述神经元nj的成功贡献;
s25重复执行s24,直到分析完所述神经元集合N={n1,n2,n3,...}中的所有神经元;
s26输出所述待测深度神经网络模型D中所有神经元的所述频谱信息M={m1,m2,m3,...}。
进一步地,所述计算神经元的怀疑度,并按照怀疑度对神经元进行排序包括以下具体步骤:
s31输入所述待测深度神经网络模型D中所有神经元的所述频谱信息M={m1,m2,m3,...};
s32获取所述神经元nj对应的频谱信息mj={nef(nj),nep(nj)},并将其代入公式(1)中计算得出所述神经元nj对应的怀疑度aj
s33重复执行s32,直到计算完所述神经元集合N={n1,n2,n3,...}中所有神经元的怀疑度A={a1,a2,a3,...};
s34对属于所述待测深度神经网络模型D不同层的神经元分别做归一化处理,得到新的怀疑度A’;
s35对所述新的怀疑度A’中的所有怀疑度按照从大到小的顺序排列,排名越靠前的怀疑度所对应的神经元存在缺陷的几率越大;
s36输出最终的定位结果。
一种基于频谱的深度神经网络缺陷定位***,包括:
第一数据输入模块,用于输入测试用例集T={t1,t2,t3,...}与待测深度神经网络模型D,并使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D;
测试用例判断模块,判断出正确测试用例和错误测试用例,并获取所述测试用例集T对应的运行信息集R={r1,r2,r3,...};
频谱信息获取模块,用于使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D,获取每个神经元的输出结果;根据所述运行信息集R={r1,r2,r3,...}与所述输出结果得到所述待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
怀疑度计算模块,计算神经元的怀疑度,并按照怀疑度对神经元进行排序,根据排序结果确定缺陷几率。
经由上述的技术方案可知,本发明公开提供了一种基于频谱的深度神经网络缺陷定位方法及***,与现有技术相比,本发明依据深度神经网络对测试集的运行输出和分类结果量化深度神经网络中的神经元,利用怀疑度公式计算其怀疑度,并对其进行排名,可以定位到最有可能是缺陷的位置,并将深度神经网络模型中的缺陷直观的使用数值体现出来。本发明具有通用性,对所有深度神经网络模型均可使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为基于频谱的深度神经网络缺陷定位方法流程图;
图2附图为获取正确和错误测试用例的方法流程图;
图3附图为获取待测深度神经网络模型频谱信息的方法流程图;
图4附图为怀疑度计算和排序的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种基于频谱的深度神经网络缺陷定位方法,如图1所示,具体包括以下步骤:
获取正确测试用例和错误测试用例:使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D,区分出正确测试用例和错误测试用例,并获取测试用例集T={t1,t2,t3,...}对应的运行信息集R={r1,r2,r3,...};
获取待测深度神经网络模型的频谱信息:使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D,获取每个神经元的输出结果;根据运行信息集R={r1,r2,r3,...}与输出结果得到待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
计算神经元的怀疑度,并按照怀疑度对神经元进行排序:根据怀疑度公式与频谱信息M={m1,m2,m3,...}计算出所有神经元的的怀疑度,并对神经元按照怀疑度从大到小进行排序,排序越靠前的神经元存在缺陷的几率越大。
进一步地,如图2所示,获取正确测试用例和错误测试用例包括以下具体步骤:
s11输入待测深度神经网络模型D和测试用例集T={t1,t2,t3,...};
s12选择测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行待测深度神经网络模型D,获取测试用例ti的运行结果Oi
s13根据运行结果Oi判断测试用例ti为正确测试用例还是错误测试用例,并记录测试用例ti的运行信息ri,如果测试用例ti为正确测试用例,则记运行信息ri=1;如果测试用例ti为错误测试用例,则记运行信息ri=0;
s14重复执行s12、s13直到测试用例集T={t1,t2,t3,...}中所有测试用例运行完成,得到测试用例集T={t1,t2,t3,...}的运行信息集R={r1,r2,r3,...};
s15遍历测试用例集T={t1,t2,t3,...}的运行信息集R={r1,r2,r3,...},统计总的正确测试用例个数np和总的错误测试用例个数nf
s16输出测试用例集T={t1,t2,t3,...}的运行信息R={r1,r2,r3,...}。
优选的,在本具体实施例中使用蜕变关系来判断测试用例的正确与错误,若测试用例的输出与其标签符合蜕变关系即为预测正确,记为正确测试用例,反之则为预测错误,记为错误测试用例。
进一步地,如图3所示,获取待测深度神经网络模型的频谱信息包括以下具体步骤:
s21输入待测深度神经网络模型D、测试用例集T={t1,t2,t3,...}和测试用例集T={t1,t2,t3,...}的运行信息R={r1,r2,r3,...},其中N={n1,n2,n3,...}为待测深度神经网络模型D中的所有神经元集合;
s22选择测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行待测深度神经网络模型D,获取测试用例ti运行时各个神经元nj∈N的输出fnj(ti),并存储在文件中;
s23重复执行s22,直到测试用例集T={t1,t2,t3,...}中所有测试用例运行完成;
s24选择一个神经元nj,遍历其对应测试用例集T={t1,t2,t3,...}的输出fnj(T),如果运行信息集R={r1,r2,r3,...}中对应的ri=1,则将神经元nj的输出作为用例贡献值累加至神经元nj的成功贡献;如果运行信息R={r1,r2,r3,...}中对应的ri=0,则将神经元nj的输出作为用例贡献值累加至神经元nj的失败贡献,并将最终结果记录为神经元nj的频谱信息mj={nef(nj),nep(nj)},其中nef(nj)为神经元nj的失败贡献,nep(nj)为神经元nj的成功贡献;
s25重复执行s24,直到分析完神经元集合N={n1,n2,n3,...}中的所有神经元;
s26输出待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...}。
进一步地,如图4所示,计算神经元的怀疑度,并按照怀疑度对神经元进行排序包括以下具体步骤:
s31输入待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
s32获取神经元nj对应的频谱信息mj={nef(nj),nep(nj)},并将其代入公式(1)中计算得出神经元nj对应的怀疑度aj
s33重复执行s32,直到计算完神经元集合N={n1,n2,n3,...}中所有神经元的怀疑度A={a1,a2,a3,...};
s34对属于待测深度神经网络模型D不同层的神经元分别做归一化处理,得到新的怀疑度A’;
s35对新的怀疑度A’中的所有怀疑度按照从大到小的顺序排列,排名越靠前的怀疑度所对应的神经元存在缺陷的几率越大;
s36输出最终的定位结果。
一种基于频谱的深度神经网络缺陷定位***,包括:
第一数据输入模块,用于输入测试用例集T={t1,t2,t3,...}与待测深度神经网络模型D,并使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D;
测试用例判断模块,判断出正确测试用例和错误测试用例,并获取测试用例集T对应的运行信息集R={r1,r2,r3,...};
频谱信息获取模块,用于使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D,获取每个神经元的输出结果;根据运行信息集R={r1,r2,r3,...}与输出结果得到待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
怀疑度计算模块,计算神经元的怀疑度,并按照怀疑度对神经元进行排序,根据排序结果确定缺陷几率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (3)

1.一种基于频谱的深度神经网络缺陷定位方法,其特征在于,具体包括以下步骤:
获取正确测试用例和错误测试用例:使用测试用例集T={t1,t2,t3,...}运行待测深度神经网络模型D,区分出正确测试用例和错误测试用例,并获取所述测试用例集T={t1,t2,t3,...}对应的运行信息集R={r1,r2,r3,...};
获取待测深度神经网络模型的频谱信息:使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D,获取每个神经元的输出结果;根据所述运行信息集R={r1,r2,r3,...}与所述输出结果得到所述待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
计算神经元的怀疑度,并按照怀疑度对神经元进行排序:根据怀疑度公式与所述频谱信息M={m1,m2,m3,...}计算出所有神经元的怀疑度,并对神经元按照怀疑度从大到小进行排序,排序越靠前的神经元存在缺陷的几率越大;
所述获取正确测试用例和错误测试用例包括以下具体步骤:
s11输入所述待测深度神经网络模型D和所述测试用例集T={t1,t2,t3,...};
s12选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行所述待测深度神经网络模型D,获取所述测试用例ti的运行结果Oi
s13根据所述运行结果Oi使用蜕变关系判断所述测试用例ti为正确测试用例还是错误测试用例,并记录所述测试用例ti的运行信息ri,如果所述测试用例ti为正确测试用例,则记所述运行信息ri=1;如果所述测试用例ti为错误测试用例,则记所述运行信息ri=0;
s14重复执行s12、s13直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成,得到所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...};
s15遍历所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...},统计总的正确测试用例个数np和总的错误测试用例个数nf
s16输出所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...};
所述获取待测深度神经网络模型的频谱信息包括以下具体步骤:
s21输入所述待测深度神经网络模型D、所述测试用例集T={t1,t2,t3,...}和所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...},其中N={n1,n2,n3,...}为所述待测深度神经网络模型D中的所有神经元集合;
s22选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行待测深度神经网络模型D,获取所述测试用例ti运行时各个神经元nj∈N的输出fnj(ti),并存储在文件中;
s23重复执行s22,直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成;
s24选择一个神经元nj,遍历其对应所述测试用例集T={t1,t2,t3,...}的输出fnj(T),如果所述运行信息集R={r1,r2,r3,...}中对应的ri=1,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的成功贡献;如果所述运行信息R={r1,r2,r3,...}中对应的ri=0,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的失败贡献,并将最终结果记录为所述神经元nj的频谱信息mj={nef(nj),nep(nj)},其中nef(nj)为所述神经元nj的失败贡献,nep(nj)为所述神经元nj的成功贡献;
s25重复执行s24,直到分析完所述神经元集合N={n1,n2,n3,...}中的所有神经元;
s26输出所述待测深度神经网络模型D中所有神经元的所述频谱信息M={m1,m2,m3,...}。
2.根据权利要求1所述的一种基于频谱的深度神经网络缺陷定位方法,其特征在于,所述计算神经元的怀疑度,并按照怀疑度对神经元进行排序包括以下具体步骤:
s31输入所述待测深度神经网络模型D中所有神经元的所述频谱信息M={m1,m2,m3,...};
s32获取所述神经元nj对应的频谱信息mj={nef(nj),nep(nj)},并将其代入公式(1)中计算得出所述神经元nj对应的怀疑度aj
Figure FDA0004092711060000031
s33重复执行s32,直到计算完所述神经元集合N={n1,n2,n3,...}中所有神经元的怀疑度A={a1,a2,a3,...};
s34对属于所述待测深度神经网络模型D不同层的神经元分别做归一化处理,得到新的怀疑度A’;
s35对所述新的怀疑度A’中的所有怀疑度按照从大到小的顺序排列,排名越靠前的怀疑度所对应的神经元存在缺陷的几率越大;
s36输出最终的定位结果。
3.一种基于频谱的深度神经网络缺陷定位***,其特征在于,包括:
第一数据输入模块,用于输入测试用例集T={t1,t2,t3,...}与待测深度神经网络模型D,并使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D;
测试用例判断模块,判断出正确测试用例和错误测试用例,并获取所述测试用例集T对应的运行信息集R={r1,r2,r3,...};
频谱信息获取模块,用于使用所述测试用例集T={t1,t2,t3,...}运行所述待测深度神经网络模型D,获取每个神经元的输出结果;根据所述运行信息集R={r1,r2,r3,...}与所述输出结果得到所述待测深度神经网络模型D中所有神经元的频谱信息M={m1,m2,m3,...};
怀疑度计算模块,计算神经元的怀疑度,并按照怀疑度对神经元进行排序,根据排序结果确定缺陷几率;
获取正确测试用例和错误测试用例包括以下具体步骤:
s11输入所述待测深度神经网络模型D和所述测试用例集T={t1,t2,t3,...};
s12选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行所述待测深度神经网络模型D,获取所述测试用例ti的运行结果Oi
s13根据所述运行结果Oi使用蜕变关系判断所述测试用例ti为正确测试用例还是错误测试用例,并记录所述测试用例ti的运行信息ri,如果所述测试用例ti为正确测试用例,则记所述运行信息ri=1;如果所述测试用例ti为错误测试用例,则记所述运行信息ri=0;
s14重复执行s12、s13直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成,得到所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...};
s15遍历所述测试用例集T={t1,t2,t3,...}的所述运行信息集R={r1,r2,r3,...},统计总的正确测试用例个数np和总的错误测试用例个数nf
s16输出所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...};
获取待测深度神经网络模型的频谱信息包括以下具体步骤:
s21输入所述待测深度神经网络模型D、所述测试用例集T={t1,t2,t3,...}和所述测试用例集T={t1,t2,t3,...}的所述运行信息R={r1,r2,r3,...},其中N={n1,n2,n3,...}为所述待测深度神经网络模型D中的所有神经元集合;
s22选择所述测试用例集T={t1,t2,t3,...}中的一条测试用例ti运行待测深度神经网络模型D,获取所述测试用例ti运行时各个神经元nj∈N的输出fnj(ti),并存储在文件中;
s23重复执行s22,直到所述测试用例集T={t1,t2,t3,...}中所有测试用例运行完成;
s24选择一个神经元nj,遍历其对应所述测试用例集T={t1,t2,t3,...}的输出fnj(T),如果所述运行信息集R={r1,r2,r3,...}中对应的ri=1,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的成功贡献;如果所述运行信息R={r1,r2,r3,...}中对应的ri=0,则将所述神经元nj的输出作为用例贡献值累加至所述神经元nj的失败贡献,并将最终结果记录为所述神经元nj的频谱信息mj={nef(nj),nep(nj)},其中nef(nj)为所述神经元nj的失败贡献,nep(nj)为所述神经元nj的成功贡献;
s25重复执行s24,直到分析完所述神经元集合N={n1,n2,n3,...}中的所有神经元;
s26输出所述待测深度神经网络模型D中所有神经元的所述频谱信息M={m1,m2,m3,...}。
CN202011180145.6A 2020-10-29 2020-10-29 一种基于频谱的深度神经网络缺陷定位方法及*** Active CN112199295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011180145.6A CN112199295B (zh) 2020-10-29 2020-10-29 一种基于频谱的深度神经网络缺陷定位方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011180145.6A CN112199295B (zh) 2020-10-29 2020-10-29 一种基于频谱的深度神经网络缺陷定位方法及***

Publications (2)

Publication Number Publication Date
CN112199295A CN112199295A (zh) 2021-01-08
CN112199295B true CN112199295B (zh) 2023-05-05

Family

ID=74011895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011180145.6A Active CN112199295B (zh) 2020-10-29 2020-10-29 一种基于频谱的深度神经网络缺陷定位方法及***

Country Status (1)

Country Link
CN (1) CN112199295B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827667A (zh) * 2021-01-25 2024-04-05 杭州衣科信息技术股份有限公司 测试覆盖率提高装置
CN113568831B (zh) * 2021-07-27 2023-07-04 重庆大学 基于蜕变测试的自监督深度学习型缺陷定位方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766259A (zh) * 2018-12-03 2019-05-17 北京信息科技大学 一种基于复合蜕变关系的分类器测试方法及***
CN110376522A (zh) * 2019-09-03 2019-10-25 宁夏西北骏马电机制造股份有限公司 一种数据融合的深度学习网络的电机故障诊断方法
CN111160167A (zh) * 2019-12-18 2020-05-15 北京信息科技大学 基于s变换深度卷积神经网络的主轴故障分类识别方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455538B2 (en) * 2018-12-20 2022-09-27 GM Global Technology Operations LLC Correctness preserving optimization of deep neural networks
CN110110854B (zh) * 2019-04-01 2022-04-22 南京邮电大学 一种基于边状态的深度神经网络测试充分性的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766259A (zh) * 2018-12-03 2019-05-17 北京信息科技大学 一种基于复合蜕变关系的分类器测试方法及***
CN110376522A (zh) * 2019-09-03 2019-10-25 宁夏西北骏马电机制造股份有限公司 一种数据融合的深度学习网络的电机故障诊断方法
CN111160167A (zh) * 2019-12-18 2020-05-15 北京信息科技大学 基于s变换深度卷积神经网络的主轴故障分类识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于显著性检测和迁移学习的花卉图像分类》;吴迪等;北京信息科技大学学报(自然科学版)(第2019年01期期);55-63 *
《基于神经网络的面向函数调用路径的错误定位》;赵芳等;计算机仿真(第2016年06期期);391-395 *

Also Published As

Publication number Publication date
CN112199295A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN111274126B (zh) 测试用例筛选方法、装置及介质
US20190138731A1 (en) Method for determining defects and vulnerabilities in software code
CN112199295B (zh) 一种基于频谱的深度神经网络缺陷定位方法及***
CN107832774A (zh) 一种页面异常检测方法及装置
US20210398674A1 (en) Method for providing diagnostic system using semi-supervised learning, and diagnostic system using same
CN109726058A (zh) 检测方法、装置及计算机设备
Jabbarvand et al. Automated construction of energy test oracles for Android
WO2014207644A2 (en) Method and system for grading a computer program
Wong et al. Using an RBF neural network to locate program bugs
Kapila et al. Analysis of CK metrics to predict software fault-proneness using bayesian inference
CN115952081A (zh) 一种软件测试方法、装置、存储介质及设备
CN112306816A (zh) 一种基于深度学习的评测实体机器人响应的方法及其***
CN115952503A (zh) 融合黑白灰安全检测技术的应用安全测试方法及***
Lomio et al. A machine and deep learning analysis among SonarQube rules, product, and process metrics for fault prediction
Qiao et al. Deep feature learning to quantitative prediction of software defects
CN106096635B (zh) 基于阈值操作的代价敏感神经网络的警告分类方法
Wei et al. Predictive mutation analysis of test case prioritization for deep neural networks
Berend Distribution awareness for AI system testing
Berthier et al. Tutorials on testing neural networks
CN109165155B (zh) 一种基于聚类分析的软件缺陷修复模板提取方法
CN108763092B (zh) 一种基于交叉验证的代码缺陷检测方法及装置
CN106055483B (zh) 基于欠采样操作的代价敏感神经网络的警告分类方法
CN111880957A (zh) 一种基于随机森林模型的程序错误定位方法
WO2023212804A1 (en) Producing an augmented dataset to improve performance of a machine learning model
CN106095671B (zh) 基于过采样操作的代价敏感神经网络的警告分类方法

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240304

Address after: 100080 Pingfang 05, Building 22, South Xindu East Station, Qinghe Xisanqi, Haidian District, Beijing

Patentee after: Beijing Language Union International Information Technology Co.,Ltd.

Country or region after: China

Address before: 100192 Beijing city Haidian District Qinghe small Camp Road No. 12

Patentee before: BEIJING INFORMATION SCIENCE AND TECHNOLOGY University

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240403

Address after: No. 1503, Building 2, Courtyard 7, Lianbao Road, Haidian District, Beijing, 100000

Patentee after: Zang Manli

Country or region after: China

Address before: 100080 Pingfang 05, Building 22, South Xindu East Station, Qinghe Xisanqi, Haidian District, Beijing

Patentee before: Beijing Language Union International Information Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240418

Address after: Room 201-05, 2nd Floor, Building 2, No.1 and No.3 Qinglonghutong A, Dongcheng District, Beijing, 100000

Patentee after: Beijing Qianyu Technology Co.,Ltd.

Country or region after: China

Address before: No. 1503, Building 2, Courtyard 7, Lianbao Road, Haidian District, Beijing, 100000

Patentee before: Zang Manli

Country or region before: China