CN116185843B - 基于神经元覆盖率引导的两阶段神经网络测试方法及装置 - Google Patents

基于神经元覆盖率引导的两阶段神经网络测试方法及装置 Download PDF

Info

Publication number
CN116185843B
CN116185843B CN202310055629.5A CN202310055629A CN116185843B CN 116185843 B CN116185843 B CN 116185843B CN 202310055629 A CN202310055629 A CN 202310055629A CN 116185843 B CN116185843 B CN 116185843B
Authority
CN
China
Prior art keywords
test case
disturbance
dnn
error
result
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
CN202310055629.5A
Other languages
English (en)
Other versions
CN116185843A (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.)
Tianhang Changying Jiangsu Technology Co ltd
Original Assignee
Tianhang Changying Jiangsu Technology Co ltd
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 Tianhang Changying Jiangsu Technology Co ltd filed Critical Tianhang Changying Jiangsu Technology Co ltd
Priority to CN202310055629.5A priority Critical patent/CN116185843B/zh
Publication of CN116185843A publication Critical patent/CN116185843A/zh
Application granted granted Critical
Publication of CN116185843B publication Critical patent/CN116185843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3676Test management for coverage analysis
    • 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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Abstract

本申请公开了一种基于神经元覆盖率引导的两阶段神经网络测试方法及装置。所述基于神经元覆盖率引导的两阶段神经网络测试方法包括:获取至少一个原始测试用例;根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;获取所述DNN结果为错误结果的第一扰动测试用例。本申请通过针对性扰动生成了在神经元覆盖率、触发错误多样性、以及数量上均有提升的对抗性测试用例,有助于在神经网络测试中提升其可靠性与鲁棒性。

Description

基于神经元覆盖率引导的两阶段神经网络测试方法及装置
技术领域
本申请涉及神经网络测试技术领域,具体涉及一种基于神经元覆盖率引导的两阶段神经网络测试方法以及基于神经元覆盖率引导的两阶段神经网络测试装置。
背景技术
深度学习(Deep Learning,DL)是人工智能领域最活跃的研究领域之一,已引起学术界和工业界越来越多的关注。在过去的几年里,基于深度神经网络(Deep NeuralNetwork,DNN)的DL***在自动驾驶汽车、人脸识别、语音识别、自然语言处理等广泛的应用中展示了其卓越的性能和效率。然而,DNN的不可解释性、难以测试性导致其可靠性和安全性难以得到保障。一个不可靠的DNN可能会导致不必要的损失,例如仅在10个月内美国就发生了超过300起与自动驾驶技术相关的事故。因此,对DNN进行有效地测试,使得DNN变得更加鲁棒和可靠成为了深度学习的研究热点之一。与传统软件的决策逻辑由编程代码独立决定不同,DNN的决策逻辑是由训练数据、DNN结构、编程代码共同影响的,因此,针对传统软件的测试方法与测试覆盖率对DNN并不起作用。
为了衡量神经网络测试的充分性,Pei等人提出了神经网络覆盖率(NeuronCoverage,NC),用于衡量测试用例集对神经网络决策逻辑的覆盖程度。Pei等人已经证明,具有较高神经元覆盖率的测试输入可以触发被测DNN更多的逻辑和更多不一致的行为。因此,我们采用神经元覆盖率来评估DNN测试的充分性和多样性。目前,神经元覆盖率已被广泛应用于神经网络测试的充分性度量中。在给定的DNN中,N={n1,n2,…}代表DNN中的所有神经元,T={x1,x2,…}代表一个测试用例集。对于一个特定的神经元n来说,当其在一个特定的测试用例x下输出值out(n,x)高于预设的门槛值常数th时,可以认为该神经元是激活的。基于此,在测试用例集T和门槛th下的神经元覆盖率被定义为被激活的神经元数量与所有神经元总数的比值,其公式化的定义见式(1)。
为了衡量测试用例生成中的扰动程度,Guo等人引入了相对l2范数作为衡量标准。在本方法中,我们沿用该度量来确保干扰是不可检测的,因此避免了对生成的图像进行手动标记。l2相对范数可计算为(2),其中Xgen和Xorig分别表示原始图像和生成的对抗图像,T仍然代表测试用例集。
为了激活难以激活的顽固神经元,本发明引入了神经元贡献(NeuronContribution)来衡量上游神经元对下游未激活神经元的贡献。它是通过计算神经元的输出值和神经元之间的连接权值的乘积得到的。
目前已有一些研究人员利用神经元覆盖率来衡量神经网络测试的充分性程度,并采用模糊测试的方法生成大量测试用例。例如,一些现有技术中提出一种神经元覆盖率引导的神经网络模糊测试方法,其以出色的性能在神经元覆盖率、对抗输入生成数量、平均生成时间和相对l2范数均相比DeepXplore有较大提升。又例如,另一些文件通过持续追踪全部未激活神经元,并在每一次迭代扰动中尝试激活这些神经元从而取得了较高的神经元覆盖率。上述两种测试方法均采用模糊测试的方法,对同一个测试输入进行迭代扰动从而提升从测试输入集的神经元覆盖率和对抗性测试输入的生成总数。
然而,目前现存的基于覆盖率引导的神经网络测试方法存在严重的同质性问题与覆盖率较低问题。同质性问题是指已有的测试方法对同一原始输入样本生成的对抗性测试输入往往激发的是被测神经网络的相同错误,例如真实标签为“甲”的原始样本,经过迭代扰动后生成的对抗性测试输入往往被错误分类成同一类别“乙”,这表明现有的模糊测试方法虽能够产生较多的对抗性测试输入,但其同质性较强,未能引发多样性的DNN错误,实际作用较弱。针对该问题,本发明在扰动过程中所提出的目标函数并非为正确类别预测概率与错误类别预测概率之差,而是当前类别预测概率与其下的多个预测概率之差,这使得本发明生成的对抗性测试输入数目更多,且能够引发DNN更多样的错误。覆盖率较低问题容易理解,即为现存方法测试充分性较差,在激活神经元方面效果一般,取得的神经元覆盖率较低。
因此,希望有一种技术方案来克服或至少减轻现有技术的至少一个上述缺陷。
发明内容
本发明的目的在于提供一种基于神经元覆盖率引导的两阶段神经网络测试方法来克服或至少减轻现有技术的至少一个上述缺陷。
本发明的一个方面,提供一种基于神经元覆盖率引导的两阶段神经网络测试方法,所述基于神经元覆盖率引导的两阶段神经网络测试方法包括:
获取至少一个原始测试用例;
根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第一扰动测试用例。
可选地,所述DNN结果进一步包括无错误结果;
所述基于神经元覆盖率引导的两阶段神经网络测试方法进一步包括:
获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例;
为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例;
将第二扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第二扰动测试用例。
可选地,所述根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例包括:
获取第一迭代次数;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为全部未激活的神经元;
根据所述第一迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例。
可选地,所述以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数包括:
obj(x)=objpart1(x)+objpart2(x);其中,
objpart1(x)为第一部分优化目标,代表所选神经元的输出之和;objpart2(x)为第二部分优化目标,代表正确与错误概率之差,obj(x)代表总优化目标。
可选地,在根据所述迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例过程中,每次迭代均通过动态步长调整策略调整学习步长。
可选地,所述动态步长调整策略包括:
其中,
sinit表示初始步长、iters_times表示当前迭代次数、adver_times表示当前测试输入生成的对抗性输入次数、S表示调整步长。
可选地,所述获取所述DNN结果为无错误结果的第一扰动测试用例中符合神经元覆盖率条件的第一扰动测试用例包括:
获取所述DNN结果为无错误结果的第一扰动测试用例;
分别为每个所述DNN结果为无错误结果的第一扰动测试用例进行如下判断:
判断在输入至DNN后,神经元覆盖率是否增加,若是,则
判断符合神经元覆盖率条件。
可选地,所述为每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例包括:
获取第二迭代次数,所述迭代次数为1;
获取所述优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为前15%神经元贡献的神经元;
根据所述第二迭代次数以及所述目标函数,通过梯度上升法对每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例。
本申请还提供了一种基于神经元覆盖率引导的两阶段神经网络测试装置,所述基于神经元覆盖率引导的两阶段神经网络测试装置包括:
原始测试用例获取模块,所述原始测试用例获取模块用于获取至少一个原始测试用例;
第一扰动测试用例生成模块,所述第一扰动测试用例生成模块用于根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
输入模块,所述输入模块用于将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
测试用例获取模块,所述测试用例获取模块用于获取所述DNN结果为错误结果的第一扰动测试用例。
有益效果:
本申请的基于神经元覆盖率引导的两阶段神经网络测试方法考虑到两个阶段神经元的激活困难程度不同,本申请通过梯度上升法以及基于动态步长调整策略生成第一扰动测试用例,从而通过针对性扰动生成了在神经元覆盖率、触发错误多样性、以及数量上均有提升的对抗性测试用例,有助于在神经网络测试中提升其可靠性与鲁棒性。
附图说明
图1为本申请一实施例的基于神经元覆盖率引导的两阶段神经网络测试方法的流程示意图。
图2是一种电子设备,用于实现图1所示的基于神经元覆盖率引导的两阶段神经网络测试方法。
图3是本申请一实施例中的基于神经元覆盖率引导的两阶段神经网络测试方法的另一流程示意图。
图4为本申请一实施例提供的基于MNIST数据集的神经元覆盖率结果对比;
图5为本申请一实施例提供的基于MNIST数据集的对抗输入生成总数结果对比;
图6为本申请一实施例提供的基于MNIST数据集的对抗输入生成总数结果对比。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
图1为本申请一实施例的基于神经元覆盖率引导的两阶段神经网络测试方法的流程示意图。
如图1所示的基于神经元覆盖率引导的两阶段神经网络测试方法包括:
步骤1:获取至少一个原始测试用例;
步骤2:根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
步骤3:将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
步骤4:获取所述DNN结果为错误结果的第一扰动测试用例。
本申请的基于神经元覆盖率引导的两阶段神经网络测试方法考虑到两个阶段神经元的激活困难程度不同,本申请通过梯度上升法以及基于动态步长调整策略生成第一扰动测试用例,从而通过针对性扰动生成了在神经元覆盖率、触发错误多样性、以及数量上均有提升的对抗性测试用例,有助于在神经网络测试中提升其可靠性与鲁棒性。
在本实施例中,本申请的DNN结果进一步包括无错误结果;
参见图3,在本实施例中,所述DNN结果进一步包括无错误结果;
所述基于神经元覆盖率引导的两阶段神经网络测试方法进一步包括:
获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例;
为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例;
将第二扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第二扰动测试用例。
采用这种方式,本申请通过基于神经元覆盖率引导的、通过两阶段(第一阶段采用第一扰动测试用例、第二阶段采用第二扰动测试用例)扰动生成对抗样本的神经网络测试方法,以便进行神经网络测试及领域相关研究,在本发明中主要面向图像分类领域。神经元覆盖率能够衡量测试用例对神经网络逻辑的覆盖程度,本发明通过在两个阶段最大化神经元覆盖率与最大化神经网络错误行为,从而生成神经元覆盖率更高、多样性更强、数量更多的对抗测试用例,提升生成对抗测试用例的性能,进而可用于提高神经网络的鲁棒性。
在本实施例中,所述根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例包括:
获取第一迭代次数;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为全部未激活的神经元;
根据所述第一迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例。
在本实施例中,所述以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数包括:
obj(x)=objpart1(x)+objpart2(x);其中,
objpart1(x)为第一部分优化目标,代表所选神经元的输出之和;objpart2(x)为第二部分优化目标,代表正确与错误概率之差,obj(x)代表总优化目标,为上述两者的求和。
在本实施例中,在根据所述迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例过程中,每次迭代均通过动态步长调整策略调整学习步长。
在本实施例中,所述动态步长调整策略包括:
其中,
sinit表示初始步长、iters_times表示当前迭代次数、adver_times表示当前测试输入生成的对抗性输入次数、S表示调整步长。
在本实施例中,所述获取所述DNN结果为无错误结果的第一扰动测试用例中符合神经元覆盖率条件的第一扰动测试用例包括:
获取所述DNN结果为无错误结果的第一扰动测试用例;
分别为每个所述DNN结果为无错误结果的第一扰动测试用例进行如下判断:
判断在输入至DNN后,神经元覆盖率是否增加,若是,则
判断符合神经元覆盖率条件。
在本实施例中,所述为每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例包括:
获取第二迭代次数,所述迭代次数为1;
获取所述优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为前15%神经元贡献的神经元;
根据所述第二迭代次数以及所述目标函数,通过梯度上升法对每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例。
下面以举例的方式对本申请进行进一步详细阐述,可以理解的是,该举例并不构成对本申请的任何限制。
参见图3,步骤1:获取至少一个原始测试用例;具体而言,首先读取测试输入集,测试输入集中包括至少一个原始测试用例,在测试输入集中依次选取每一个原始测试用例作为原始输入,并记录下每一个原始输入的真实类别标签;
步骤2:根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
具体而言,获取第一迭代次数;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数;
根据所述第一迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例。
在本实施例中,建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数具体包括:
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,通过梯度上升法对原始输入进行扰动,生成扰动后的测试输入;
为了生成覆盖更多DNN逻辑的测试用例,本方法以神经元覆盖率最大化作为优化目标之一,并通过在两个阶段采用不同的神经元选择策略来激活最容易被激活的神经元。本方法将优化函数的第一部分设为所选神经元的输出之和,如(3)所示,Nselected表示所选神经元,在阶段一中,我们所选取的神经元为全部未激活的神经元,λ1表示该优化目标的权重。
生成第一扰动测试用例的目的之一是激发被测DNN(DNN under test,DUT)的错误行为,我们使用proborig(x)和probi(x)分别表示被测DNN预测测试输入x属于被预测类别标签的概率以及此外预测概率最高的第i个类别的概率。当DNN对原始测试输入的预测正确时,proborig(x)即代表DNN预测该输入属于正确类别的概率,此时代表预测概率最高的k个错误类别概率的总和,用该两者之差作为优化目标易激发DNN预测的错误,如(4)所示。当DNN对实际属于类别甲的原始测试输入错误预测为类别乙时,继续用该两者之差作为优化目标可激发DNN预测的多样化错误,例如将扰动后的测试输入错误预测为类别丙或丁。
本方法将上述两个优化目标之和作为联合优化目标函数,如下:
obj(x)=objpart1(x)+objpart2(x) (5)
接下来,本方法通过计算优化函数对原始输入的梯度从而利用该梯度对原始输入x进行扰动得到生成输入xgen=x+s·grad(x),其中s为步长。
在多次迭代(迭代次数为述第一迭代次数)中基于动态步长调整策略以梯度上升法对原始输入进行扰动,生成扰动后的测试输入;
在每一次迭代中,我们利用所生成的第一扰动测试用例输入对DNN进行测试,若该测试输入触发了DNN的错误预测,则获取所述DNN结果为错误结果的第一扰动测试用例并加入到生成测试用例集。
在迭代过程中,每一次迭代的原始输入均为上一次迭代中经过扰动所生成的测试输入,举例来说,原始测试用例为A1,则迭代一次后获取到的第一扰动测试用例为A2,而在下一次迭代时,以A2为原始输入,迭代后获取到的第一扰动测试用例为A3。当某原始输入达到迭代次数后,在测试输入集中依次选取下一个原始测试用例作为原始输入,直至全部测试输入完成该过程。
举例来说,原始测试用例包括A1以及B1,迭代次数为5次,则首先进行A1的迭代,迭代一次生成A2,依次迭代五次,分别生成A2、A3、A4、A5、A6,当都迭代完后,在进行B1的迭代,B1也同样迭代5次,即分别生成B1、B2、B3、B4、B5、B6。
为了一定程度上限制对原始输入的扰动程度,在阶段一的每次迭代中,本方法通过动态调整梯度上升法中的学习步长,从而生成扰动足够小、无需人工识别测试预言的测试用例。由于对抗性测试用例的搜索过程就是对被测DNN的决策边界与数据集真实边界之间的不一致区域进行探索。因此,当未生成对抗性测试用例时,经过扰动的图像仍然位于DNN决策边界与数据集真实边界之间的一致区域,此时梯度上升的首要目的是在庞大的输入空间中寻找使得DNN预测出错的不一致区域,因此需要较大的步长;然而当梯度上升法已对某一个原始输入生成对抗性测试输入时,所生成的测试输入已处于不一致区域中,此时梯度上升的首要目的是在输入空间的不一致区域中寻找引发DNN产生不同错误的其他区域,搜索难度相比之前大幅降低,步长应该逐渐减小。具体来说,对于同一个原始输入,其每生成一个对抗输入时,步长被减去一定的比例,该比例为迭代次数的倒数即1/iters_times。举例来说,当迭代为5次时,对于同一个原始输入的迭代,每生成一次对抗样本,步长就减去五分之一。步长调整策略的表达式如(6)所示,其中sinit表示初始步长,iters_times表示当前迭代次数,adver_times表示当前测试输入生成的对抗性输入次数。
在本实施例中,基于神经元覆盖率引导的两阶段神经网络测试方法进一步包括:
获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例;具体而言,将所有未使得神经元覆盖率增加或未触发DNN错误的第一扰动测试用例加入到关键输入集中,作为第二阶段的测试输入集。
为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例;
具体而言,将关键输入集(由每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例组成)作为阶段二的测试输入,对其中的各个测试输入进行与上述步骤中的梯度上升优化类似的梯度上升优化。
具体而言,与阶段一不同,阶段二中的测试输入(第二扰动测试用例)均为在阶段一的多次迭代中未使得神经元覆盖率增加或未触发DNN错误的输入。因此,为了激活该部分较为顽固的未激活神经元,本方法通过计算神经网络中上层神经元对下层未激活神经元的贡献值,从而获取所述优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为前15%神经元贡献的神经元。
同时,阶段二中的迭代只进行一次,即关键输入集中的每一个测试输入只会进行一次梯度扰动,因此为了提高阶段二中扰动的有效性,阶段二会采用相比于阶段一更高的步长s与超参数λ1。
进一步地,在本申请的两个阶段中,阶段一中的原始测试用例往往未处于目标函数空间中的极值点,即其优化空间较大,很容易直接激活部分未激活神经元,因此适合直接选择未激活神经元作为一部分优化目标,但在阶段一中测试输入在步长衰减策略下很容易陷入局部最优解。
在阶段二中,一方面原始输入(第二扰动测试用例)为阶段一中未使得神经元覆盖率增加或未触发DNN错误的扰动后测试输入,其很可能处于或接近目标函数空间中的局部最优解,为了防止其落入局部最优解,本方法选择更大的梯度上升步长s;另一方面,在阶段一中多次迭代仍未被激活的神经元多为较为顽固的神经元,难以直接激活,本发明通过选取上流隐藏层中对这些未激活神经元的贡献较大的神经元作为优化目标,从而尝试激发这些顽固的未激活神经元。
将第二扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第二扰动测试用例。
在本实施例中,在阶段一中读取测试输入集,并记录下每一个原始测试用例的真实类别标签;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,通过梯度上升法对原始输入进行扰动,生成扰动后的测试输入(第一扰动测试用例);
多次迭代进行扰动,生成扰动后的测试输入集(由各个第一扰动测试用例组成);
将所有未使得神经元覆盖率增加或未触发DNN错误的所有输入加入关键输入集,作为第二阶段的测试输入集。至此,本方法的阶段一结束;
将阶段一得到的关键输入集作为阶段二的测试输入,对其中的各个测试输入进行梯度上升优化,并将触发了DNN错误预测的测试用例加入到生成测试用例集。至此,本方法的阶段二结束;
与领域内的基线模型DLFuzz进行对比试验,通过神经元覆盖率(NeuronCoverage,NC)、对抗性测试用例生成个数和相对l2范数评价指标对方法性能进行验证。
本发明的优点和积极效果在于:
(1)针对现有的测试方法所达到的神经元覆盖率较低,覆盖的神经网络逻辑通路较少,本发明首次提出一种基于覆盖率引导的两阶段神经网络测试方法,考虑到两个阶段神经元的激活困难程度不同本发明在两个阶段分别采用直接激活未激活神经元和选择上流高贡献神经元策略,尽可能多地激活神经元。在相同的测试输入下对比基线模型,本发明所生成测试输入在神经元覆盖率有显著提升。
(2)针对已有的神经网络模糊测试框架生成的对抗性测试用例同质性问题,即多样性较差、数目较少的问题,本发明在扰动过程中所提出的目标函数并非为正确类别预测概率与错误类别预测概率之差,而是当前类别预测概率与其下的多个预测概率之差,这使得本发明生成的对抗性测试输入数目更多,且能够引发DNN更多样的错误。
(3)针对人工生成测试预言会耗费庞大人力资源的问题,结合算法两阶段在不同目标空间搜索最优解的困难不同,本发明采用两个阶段中采用不同的初始步长,并在阶段一中采用动态步长调整策略逐次进行步长衰减,使得在初始步长相同的情况下本发明生成的对抗性测试用例相对l2范数更低,即可自动生成测试预言,避免人工检核。
本发明提出一种基于神经元覆盖率引导的、通过两阶段扰动生成对抗样本的神经网络测试方法。首先,将最大化神经元覆盖率与最大化神经网络错误行为建立为联合优化目标。然后,在阶段一中迭代进行梯度扰动,生成大量能够触发DNN多样性错误的对抗性测试用例,并将符合要求的测试用例标记。最后,将阶段一中标记得到的测试用例(DNN结果为无错误结果的第一扰动测试用例中符合神经元覆盖率条件的第一扰动测试用例)加入到关键输入集,在阶段二中采用基于神经元贡献的方法来选择上层神经元作为优化目标,从而最大化神经元覆盖率。
本申请通过两个阶段的针对性扰动生成了在神经元覆盖率、触发错误多样性、以及数量上均有提升的对抗性测试用例,有助于在神经网络测试中提升其可靠性与鲁棒性。
实例具体实现过程如下:
读取测试输入集的每一条数据并记录下每一个原始输入的真实类别标签;
本发明实施例基于Tensorflow 1.2.1,Keras 2.1.3,python 3.6.2以及Windows10操作***开发运行,用于实施本发明的计算机硬件配置为Intel i7-10875H 2.30-GHz中央处理器,16-GB运行内存以及NVIDIA RTX2060显卡。
MNIST与Fashion-MNIST图像数据集是深度学习中常用的图像数据集,其中,MNIST是手写数字图像的大型数据集,由6万张训练图像和1万张测试图像组成,每张图像代表一个从0到9的数字,其包含28x28个像素;Fashion-MNIST是大型服装图像数据集,它具有与MNIST相同的训练集、测试集数目、相同的图像大小和相同的类别数量。为了验证本发明相比其它发明的有效性,选取MNIST与Fashion-MNIST数据集进行实验验证。在这两个数据集上,我们使用与先前的神经网络测试方法DeepXplore和DLFuzz相同的三个经过预训练的深度神经网络进行测试,即LeNet-1、LeNet-4和LeNet-5。
Guo等人已证明DLFuzz比DeepXplore在神经元覆盖率、对抗性输入数量和相对l2范数等方面均获得了较大的提升,因此本实施例直接将DLFuzz作为基线模型进行对比。
为了保持数据的一致性,我们在MNIST数据集上使用DLFuzz提供的50张种子图片作为测试输入,在Fashion-MNIST数据集上随机选择50张类平衡的图片作为测试输入。
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,通过梯度上升法对原始输入进行扰动,生成扰动后的测试输入(第一扰动测试用例);
在实施例中,我们实施所对比的基线模型采用其推荐的超参数设置,即k=4,神经元选择数目m=10,平衡超参数λ=1,迭代总次数iter_times=5,激活门槛值t=0.25以及strategy 1。本发明提出的算法采用的超参数设置为平衡超参数λ1=2、λ2=0.5,初始步长sinit=0.045以及激活门槛值th=0.25。
将所有未使得神经元覆盖率增加或未触发DNN错误的所有第一扰动测试用例加入到关键输入集中,作为第二阶段的测试输入集。至此,本方法的阶段一结束;
将阶段一得到的关键输入集作为阶段二的测试输入,对其中的各个测试输入进行与步骤二类似的梯度上升优化,并将触发了DNN错误预测的测试用例加入到生成测试用例集。至此,本方法的阶段二结束。
表1DLFuzz和本发明(TSD)结果对比
如表1所示,本发明(TSD)在MNIST和Fashion-MNIST数据集上的神经元覆盖率平均比DLFuzz高1.57%和1.93%。在Le-Net4和Le-Net5模型上,本发明(TSD)所取得的神经元覆盖率比DLFuzz高2.0%~3.8%。在Le-Net1模型上,本发明(TSD)未在神经元覆盖率方面获得提升的主要原因是Le-Net1模型中神经元数量较少,可激活的神经元较少。总的来说,本发明(TSD)比DLFuzz在神经元覆盖率指标方面平均高出1.75%。如图4所示,本发明(TSD)的两个阶段均有效地提高了神经元覆盖率。
如表1中的第6至8列以及图5所示,本发明(TSD)在MNIST和Fashion-MNIST数据集上产生的对抗性输入平均比DLFuzz多135.7%和24.8%。
本发明(TSD)生成的对抗输入也比基线模型更加多样化。例如,在MNIST上测试LeNet-4模型的实验中,DLFuzz和本发明(TSD)分别成功以29和47张种子图像为原始输入生成了对抗测试用例。然而,DLFuzz为每一个原始输入生成的多个对抗图像都被归为相同的错误类(如图6中Fashion-MNIST数据集上,真实标签为运动鞋Sneaker的图像在扰动后被所测模型归类为凉鞋Sandals),而本发明(TSD)对32个种子图像生成的多个测试用例能够触发所测模型的不同错误预测。这表明本发明(TSD)在深度神经网络决策边界附近探索了更广泛的区域,并且对深度神经网络进行了更充分的测试。
由神经元覆盖率的定义可知,预设的神经元激活门槛值越高,测试用例达到的神经元覆盖率越低。图6表示了DLFuzz和本发明(TSD)所取得的神经元覆盖率在不同阈值下的变化趋势,其中数据集为Fashion-MNIST,被测模型为Le-Net5。由图可得,在不同阈值下,本发明(TSD)实现的神经元覆盖率均高于DLFuzz,证明了本发明(TSD)的有效性。
为了使生成的输入与原始输入具有相同的语义,本发明(TSD)将使扰动的相对l2距离控制在0.4以下。此外,为了验证动态步长调整在降低扰动方面的有效性,我们以被测模型LeNet-5为例,比较了在设置相同初始步长时TSDTest和本发明(TSD)之间的平均l2距离(s=0.045)。从表2中我们可以看到,动态步长调整策略有效地缩短了生成的对抗性输入的平均l2距离。
表2DLFuzz和本发明(TSD)扰动结果的相对l2距离结果对比
综上所述,本发明所提出的基于神经元覆盖率引导的、通过两阶段扰动生成对抗样本的神经网络测试方法在神经元覆盖率、神经网络触发错误多样性、以及对抗性测试用例的数量上均相比基线模型有显著的提升。
本申请还提供了一种基于神经元覆盖率引导的两阶段神经网络测试装置,所述基于神经元覆盖率引导的两阶段神经网络测试装置包括原始测试用例获取模块、第一扰动测试用例生成模块、输入模块以及测试用例获取模块,其中,
原始测试用例获取模块用于获取至少一个原始测试用例;第一扰动测试用例生成模块用于根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;输入模块用于将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;测试用例获取模块用于获取所述DNN结果为错误结果的第一扰动测试用例。
上述对方法的描述同样也适用于对装置的描述。
本申请还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于神经元覆盖率引导的两阶段神经网络测试方法。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时能够实现如上所述的基于神经元覆盖率引导的两阶段神经网络测试方法。
图2是能够实现根据本申请一个实施例提供的基于神经元覆盖率引导的两阶段神经网络测试方法的电子设备的示例性结构图。
如图2所示,电子设备包括输入设备501、输入接口502、中央处理器503、存储器504、输出接口505以及输出设备506。其中,输入接口502、中央处理器503、存储器504以及输出接口505通过总线507相互连接,输入设备501和输出设备506分别通过输入接口502和输出接口505与总线507连接,进而与电子设备的其他组件连接。具体地,输入设备501接收来自外部的输入信息,并通过输入接口502将输入信息传送到中央处理器503;中央处理器503基于存储器504中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器504中,然后通过输出接口505将输出信息传送到输出设备506;输出设备506将输出信息输出到电子设备的外部供用户使用。
也就是说,图2所示的电子设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及一个或多个处理器,该一个或多个处理器在执行计算机可执行指令时可以实现结合图1描述的基于神经元覆盖率引导的两阶段神经网络测试方法。
在一个实施例中,图2所示的电子设备可以被实现为包括:存储器504,被配置为存储可执行程序代码;一个或多个处理器503,被配置为运行存储器504中存储的可执行程序代码,以执行上述实施例中的基于神经元覆盖率引导的两阶段神经网络测试方法。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动,媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数据多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。第一、第二等词语用来标识名称,而不标识任何特定的顺序。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本实施例中所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置/终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本实施例中,装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (2)

1.一种基于神经元覆盖率引导的两阶段神经网络测试方法,其特征在于,所述基于神经元覆盖率引导的两阶段神经网络测试方法包括:
获取至少一个原始测试用例;
根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第一扰动测试用例;
所述DNN结果进一步包括无错误结果;
所述基于神经元覆盖率引导的两阶段神经网络测试方法进一步包括:
获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例;
为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例;
将第二扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第二扰动测试用例;
所述根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例包括:
获取第一迭代次数;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为全部未激活的神经元;
根据所述第一迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例;
所述以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数包括:
;其中,
为第一部分优化目标,代表所选神经元的输出之和;/>为第二部分优化目标,代表正确与错误概率之差,/>代表总优化目标,为上述两者的求和;
在根据所述迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例过程中,每次迭代均通过动态步长调整策略调整学习步长;
所述动态步长调整策略包括:
;其中,
表示初始步长、/>表示当前迭代次数、/>表示当前测试输入生成的对抗性输入次数、S表示调整步长;
所述获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例包括:
获取所述DNN结果为无错误结果的第一扰动测试用例;
分别为每个所述DNN结果为无错误结果的第一扰动测试用例进行如下判断:
判断在输入至DNN后,神经元覆盖率是否增加,若是,则
判断符合神经元覆盖率条件;
所述为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例包括:
获取第二迭代次数,所述迭代次数为1;
获取所述优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为前15%神经元贡献的神经元;
根据所述第二迭代次数以及所述目标函数,通过梯度上升法对每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例。
2.一种基于神经元覆盖率引导的两阶段神经网络测试装置,其特征在于,所述基于神经元覆盖率引导的两阶段神经网络测试装置包括:
原始测试用例获取模块,所述原始测试用例获取模块用于获取至少一个原始测试用例;
第一扰动测试用例生成模块,所述第一扰动测试用例生成模块用于根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例;
输入模块,所述输入模块用于将各个第一扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
测试用例获取模块,所述测试用例获取模块用于获取所述DNN结果为错误结果的第一扰动测试用例;
所述DNN结果进一步包括无错误结果;
所述基于神经元覆盖率引导的两阶段神经网络测试方法进一步包括:
获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例;
为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例;
将第二扰动测试用例分别输入待测DNN从而进行测试,从而获取每个第一扰动测试用例所对应的DNN结果,所述DNN结果包括错误结果;
获取所述DNN结果为错误结果的第二扰动测试用例;
所述根据梯度上升法以及基于动态步长调整策略对测试用例进行第一扰动处理,从而为每个原始测试用例生成至少一个第一扰动测试用例包括:
获取第一迭代次数;
建立以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为全部未激活的神经元;
根据所述第一迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例;
所述以最大化神经元覆盖率与最大化神经网络错误行为作为优化目标的目标函数包括:
;其中,
为第一部分优化目标,代表所选神经元的输出之和;/>为第二部分优化目标,代表正确与错误概率之差,/>代表总优化目标,为上述两者的求和;
在根据所述迭代次数以及所述目标函数,通过梯度上升法对各个原始测试用例进行扰动,从而为每个原始测试用例生成至少一个第一扰动测试用例过程中,每次迭代均通过动态步长调整策略调整学习步长;
所述动态步长调整策略包括:
;其中,
表示初始步长、/>表示当前迭代次数、/>表示当前测试输入生成的对抗性输入次数、S表示调整步长;
所述获取所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例包括:
获取所述DNN结果为无错误结果的第一扰动测试用例;
分别为每个所述DNN结果为无错误结果的第一扰动测试用例进行如下判断:
判断在输入至DNN后,神经元覆盖率是否增加,若是,则
判断符合神经元覆盖率条件;
所述为每个所述DNN结果为无错误结果的第一扰动测试用例或符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例包括:
获取第二迭代次数,所述迭代次数为1;
获取所述优化目标的目标函数,其中,目标函数设为所选神经元的输出之和,所选神经元为前15%神经元贡献的神经元;
根据所述第二迭代次数以及所述目标函数,通过梯度上升法对每个符合神经元覆盖率条件的第一扰动测试用例分别进行第二扰动处理,从而获取每个DNN结果为无错误结果的第一扰动测试用例的第二扰动测试用例。
CN202310055629.5A 2023-01-16 2023-01-16 基于神经元覆盖率引导的两阶段神经网络测试方法及装置 Active CN116185843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310055629.5A CN116185843B (zh) 2023-01-16 2023-01-16 基于神经元覆盖率引导的两阶段神经网络测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310055629.5A CN116185843B (zh) 2023-01-16 2023-01-16 基于神经元覆盖率引导的两阶段神经网络测试方法及装置

Publications (2)

Publication Number Publication Date
CN116185843A CN116185843A (zh) 2023-05-30
CN116185843B true CN116185843B (zh) 2023-12-08

Family

ID=86448163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310055629.5A Active CN116185843B (zh) 2023-01-16 2023-01-16 基于神经元覆盖率引导的两阶段神经网络测试方法及装置

Country Status (1)

Country Link
CN (1) CN116185843B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135558A (zh) * 2019-04-22 2019-08-16 南京邮电大学 基于可变强度组合测试的深度神经网络测试充分性方法
CN111428818A (zh) * 2020-04-22 2020-07-17 浙江工业大学 基于神经通路激活状态的深度学习模型测试方法与装置
CN111783930A (zh) * 2019-04-03 2020-10-16 南京大学 一种基于路径状态的神经网络测试充分性评估方法
CN113468046A (zh) * 2021-06-17 2021-10-01 江苏大学 一种面向多目标的dnn模型的诱导输入生成的方法
CN113743572A (zh) * 2020-05-27 2021-12-03 南京大学 一种基于Fuzz的人工神经网络测试方法
CN113762335A (zh) * 2021-07-27 2021-12-07 北京交通大学 一种基于不确定性的智能***测试数据生成方法
CN113986717A (zh) * 2021-09-29 2022-01-28 南京航空航天大学 采用基于区域的神经元选择策略的模糊测试方法及终端
CN114036051A (zh) * 2021-11-12 2022-02-11 北京百度网讯科技有限公司 测试方法、装置、设备以及存储介质
CN114840403A (zh) * 2022-04-29 2022-08-02 阿里巴巴(中国)有限公司 ***参数调优的方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521670B2 (en) * 2011-05-25 2013-08-27 HGST Netherlands B.V. Artificial neural network application for magnetic core width prediction and modeling for magnetic disk drive manufacture
JP6857598B2 (ja) * 2017-12-26 2021-04-14 株式会社日立製作所 カバレッジテスト支援装置およびカバレッジテスト支援方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783930A (zh) * 2019-04-03 2020-10-16 南京大学 一种基于路径状态的神经网络测试充分性评估方法
CN110135558A (zh) * 2019-04-22 2019-08-16 南京邮电大学 基于可变强度组合测试的深度神经网络测试充分性方法
CN111428818A (zh) * 2020-04-22 2020-07-17 浙江工业大学 基于神经通路激活状态的深度学习模型测试方法与装置
CN113743572A (zh) * 2020-05-27 2021-12-03 南京大学 一种基于Fuzz的人工神经网络测试方法
CN113468046A (zh) * 2021-06-17 2021-10-01 江苏大学 一种面向多目标的dnn模型的诱导输入生成的方法
CN113762335A (zh) * 2021-07-27 2021-12-07 北京交通大学 一种基于不确定性的智能***测试数据生成方法
CN113986717A (zh) * 2021-09-29 2022-01-28 南京航空航天大学 采用基于区域的神经元选择策略的模糊测试方法及终端
CN114036051A (zh) * 2021-11-12 2022-02-11 北京百度网讯科技有限公司 测试方法、装置、设备以及存储介质
CN114840403A (zh) * 2022-04-29 2022-08-02 阿里巴巴(中国)有限公司 ***参数调优的方法、装置及电子设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A White-Box Testing for Deep Neural Networks Based on Neuron Coverage;Jing Yu等;IEEE Transactions on Neural Networks and Learning Systems ( Early Access );第1-13页 *
Revisiting Neuron Coverage Metrics and Quality of Deep Neural Networks;Zhou Yang等;2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);第408-419页 *
TSDTest: A Efficient Coverage Guided Two-Stage Testing for Deep Learning Systems;Haoran Li等;2022 IEEE 22nd International Conference on Software Quality, Reliability, and Security Companion (QRS-C);第173-178页 *
卷积神经网络中对抗样本生成技术研究与实现;陈秋希;中国优秀硕士学位论文全文数据库 信息科技辑(第04期);I138-546,第2.4、3.3节 *
基于启发式搜索的神经网络模糊测试技术优化研究;穆星旭;中国优秀硕士学位论文全文数据库 信息科技辑(第4期);I138-271 *

Also Published As

Publication number Publication date
CN116185843A (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
Galar et al. EUSBoost: Enhancing ensembles for highly imbalanced data-sets by evolutionary undersampling
US11537930B2 (en) Information processing device, information processing method, and program
US20210081798A1 (en) Neural network method and apparatus
CN109766557B (zh) 一种情感分析方法、装置、存储介质及终端设备
CN111352965B (zh) 序列挖掘模型的训练方法、序列数据的处理方法及设备
CN112966074A (zh) 一种情感分析方法、装置、电子设备以及存储介质
CN111310860B (zh) 改进梯度提升决策树性能的方法及计算机可读存储介质
CN111008898B (zh) 评估模型解释工具的方法和装置
Wang et al. Predicting protein interactions using a deep learning method-stacked sparse autoencoder combined with a probabilistic classification vector machine
Gronau et al. Computing Bayes factors for evidence-accumulation models using Warp-III bridge sampling
CN112749737A (zh) 图像分类方法及装置、电子设备、存储介质
CN116185843B (zh) 基于神经元覆盖率引导的两阶段神经网络测试方法及装置
CN111582647A (zh) 用户数据处理方法、装置及电子设备
CN108229572B (zh) 一种参数寻优方法及计算设备
Yoshikawa et al. Non-linear regression for bag-of-words data via gaussian process latent variable set model
CN116150638A (zh) 基于簇置信度的深度聚类集成方法、装置、设备和介质
CN115936773A (zh) 一种互联网金融黑产识别方法与***
US20230075290A1 (en) Method for linking a cve with at least one synthetic cpe
CN114491699A (zh) 基于拓展区间数的三维cad软件易用性量化方法及装置
CN113592842A (zh) 一种基于深度学习的样本血清质量识别方法及识别设备
Caplescu et al. Will they repay their debt? Identification of borrowers likely to be charged off
Moen Bankruptcy prediction for Norwegian enterprises using interpretable machine learning models with a novel timeseries problem formulation
CN112884028A (zh) 一种***资源调整方法、装置及设备
KR102441442B1 (ko) 그래프 컨볼루션 네트워크 학습 방법 및 장치
CN111009287B (zh) SLiMs预测模型的生成方法、装置、设备和存储介质

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