CN115374898B - 神经网络测试方法、装置、设备及存储介质 - Google Patents

神经网络测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115374898B
CN115374898B CN202210924040.XA CN202210924040A CN115374898B CN 115374898 B CN115374898 B CN 115374898B CN 202210924040 A CN202210924040 A CN 202210924040A CN 115374898 B CN115374898 B CN 115374898B
Authority
CN
China
Prior art keywords
test case
disturbance
neural network
network model
initial
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
CN202210924040.XA
Other languages
English (en)
Other versions
CN115374898A (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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN202210924040.XA priority Critical patent/CN115374898B/zh
Publication of CN115374898A publication Critical patent/CN115374898A/zh
Application granted granted Critical
Publication of CN115374898B publication Critical patent/CN115374898B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

本发明涉及计算机技术领域,尤其涉及一种神经网络测试方法、装置、设备及存储介质。方法包括:获取初始测试例,以及获取初始测试例对应的连续扰动;将连续扰动添加至初始测试例,获得扰动测试例;将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度;根据决策置信度,获取目标神经网络模型对应的错误测试例。本发明用以解决现有技术中神经网络测试时效率较低且成本较高的缺陷,减少对目标神经网络的访问次数,提升测试效率,降低测试成本。

Description

神经网络测试方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种神经网络测试方法、装置、设备及存储介质。
背景技术
神经网络已经被广泛用于安全敏感的场景,如自动驾驶、人脸识别、恶意软件检测等。然而,研究表明,神经网络是不安全的。训练数据偏差、过拟合等众多原因,导致了神经网络可能存在着若干错误行为。对此,为了保证卷积神经网络的安全性,测试神经网络成为了必不可少的环节。现有技术中,神经网络测试方案大部分都属于白盒测试。测试者可以利用模型内部信息,如模型结构、参数等,进行测试。然而,在真实的测试场景下,往往会存在着目标神经网络模型内部信息不可获取的问题。因此,另一种神经网络测试方法,采用黑盒测试。但是,现有的黑盒测试方案面临的主要问题是:需要频繁询问目标神经网络模型。频繁询问目标神经网络模型意味着黑盒测试方案效率较低,同时测试成本较高,如大量访问目标神经网络模型会花费大量时间,询问模型付费成本较高等问题。
发明内容
本发明提供一种神经网络测试方法、装置、设备及存储介质,用以解决现有技术中神经网络测试时效率较低且成本较高的缺陷,减少对目标神经网络的访问次数,提升测试效率,降低测试成本。
本发明提供一种神经网络测试方法,包括:获取初始测试例,以及获取所述初始测试例对应的连续扰动;将所述连续扰动添加至所述初始测试例,获得扰动测试例;将所述扰动测试例输入需要测试的目标神经网络模型,获得所述目标神经网络模型输出的至少一个决策的决策置信度;根据所述决策置信度,获取所述目标神经网络模型对应的错误测试例。
根据本发明提供的一种神经网络测试方法,所述根据所述决策置信度,确定所述目标神经网络模型本次测试的错误测试例之后,还包括:通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,其中,所述可变目标函数基于所述目标神经网络模型、预设决策集合和所述初始测试例预先设置;通过所述最优测试例,更新所述初始测试例;获取更新后的初始测试例对应的更新连续扰动;将所述更新连续扰动添加至更新后的初始测试例,获得更新后的扰动测试例;将所述更新后的扰动测试例,重新输入需要测试的所述目标神经网络模型,获得所述目标神经网络模型输出的最新决策置信度;根据所述最新决策置信度,再次获取所述目标神经网络对应的所述错误测试例。
根据本发明提供的一种神经网络测试方法,所述通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,包括:确定所述目标神经网络模型的测试为差分测试时,通过预设的差分目标函数,确定所述初始测试例和所述扰动测试例中的所述最优测试例,其中,所述差分目标函数的设置还基于功能相似的至少一个样例模型;确定所述目标神经网络模型的测试为单一模型测试时,通过预设的单一目标函数,确定所述初始测试例和所述扰动测试例中的所述最优测试例。
根据本发明提供的一种神经网络测试方法,所述获取所述初始测试例对应的连续扰动,包括:根据预设的第一扰动尺寸,对所述初始测试例进行切分,获得尺寸相同的至少一个第一测试例单元;遍历每一个所述第一测试例单元,为所述初始测试例添加所述连续扰动,其中,每一个所述第一测试例单元内的测试例元素添加的扰动值相同;所述获取更新后的初始测试例对应的更新连续扰动,包括:根据预设的第二扰动尺寸,对所述更新后的初始测试例进行切分,获得尺寸相同的至少一个所述第二测试例单元,其中,所述第二扰动尺寸小于或等于所述第一扰动尺寸;遍历每一个所述第二测试例单元,为所述更新后的初始测试例添加所述连续扰动,其中,每一个所述第二测试例单元内的测试例元素添加的扰动值相同。
根据本发明提供的一种神经网络测试方法,所述获取所述初始测试例对应的连续扰动,包括:根据第一基本形状,对所述初始测试例进行切分,获得形状相同的至少一个第三测试单元;遍历每一个所述第三测试例单元,为所述初始测试例添加第一连续扰动;将以所述第一基本形状切分的所述初始测试例输入所述可变目标函数,获得所述第一基本形状对应的第一感知函数值,其中,所述第一感知函数值基于添加所述第一连续扰动前后的目标函数变化值,以及所述初始测试例对应决策标签在添加所述第一连续扰动前后的置信度变化值得到;根据第二基本形状,对所述初始测试例进行切分,获得形状相同的至少一个第四测试单元;遍历每一个所述第四测试例单元,为所述初始测试例添加第二连续扰动;将以所述第二基本形状切分的所述初始测试例输入所述可变目标函数,获得所述第二基本形状对应的第二感知函数值,其中,所述第二感知函数值基于添加所述第二连续扰动前后的目标函数变化值,以及所述初始测试例在添加所述第二连续扰动前后对应决策标签的置信度变化值得到;根据第一感知函数值和所述第二感知函数值,确定所述第一基本形状和所述第二基本形状中的目标基本形状;遍历基于所述目标基本形状切分的测试例单元,为所述初始测试例添加所述连续扰动。
根据本发明提供的一种神经网络测试方法,所述遍历基于所述目标基本形状切分的测试例单元,为所述初始测试例添加所述连续扰动,包括:为任意一个所述测试例单元添加单元扰动,其中,所述连续扰动包括每一个所述测试例单元对应的所述单元扰动;通过预设的所述可变目标函数,确定添加所述单元扰动的当前测试例单元,比上一个添加所述单元扰动的所述测试例单元对应的目标函数值增加;确定所述当前测试例单元相邻的任意一个所述测试例单元,为下一个需要添加所述单元扰动的所述测试例单元;直至为所述初始测试例包含的每一个所述测试例单元,添加对应的所述单元扰动。
根据本发明提供的一种神经网络测试方法,所述为任意一个所述测试例单元添加单元扰动,包括:确定任意一个待处理的所述测试例单元未添加扰动时,为所述待处理的所述测试例单元中的每一个测试例元素添加正扰动值或负扰动值;确定任意一个待处理的所述测试例单元已添加一次所述正扰动值时,为所述待处理的所述测试例单元中的每一个测试例元素添加负扰动值;确定任意一个待处理的所述测试例单元已添加一次所述负扰动值时,为所述待处理的所述测试例单元中的每一个测试例元素添加正扰动值。
本发明还提供一种神经网络测试装置,包括:获取模块,用于获取初始测试例,以及获取所述初始测试例对应的连续扰动;扰动处理模块,用于将所述连续扰动添加至所述初始测试例,获得扰动测试例;模型处理模块,用于将所述扰动测试例输入需要测试的目标神经网络模型,获得所述目标神经网络模型输出的至少一个决策的决策置信度;结果处理模块,用于根据所述决策置信度,获取所述目标神经网络模型对应的错误测试例。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述神经网络测试方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述神经网络测试方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述神经网络测试方法。
本发明提供的神经网络测试方法、装置、设备及存储介质,获取初始测试例,以及获取初始测试例对应的连续扰动。然后将连续扰动添加至初始测试例,获得扰动测试例。将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度。根据决策置信度,获取目标神经网络模型对应的错误测试例。上述过程中,采用初始测试例对目标神经网络模型进行测试时,需要预先对初始测试例添加连续扰动,而不是直接将初始测试例输入至目标神经网络模型进行处理。神经网络测试的过程,是为了发掘输入到目标神经网络模型中的更多错误测试例。而神经网络模型更容易受到连续扰动的影响,即在初始测试例上添加连续扰动,将包含连续扰动的扰动测试例输入目标神经网络模型,进而更容易得到目标神经网络对应的错误测试例,从而减少对目标神经网络模型的询问次数,提升神经网络测试的效率,可降低测试成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的神经网络测试方法的流程示意图之一;
图2是本发明提供的卷积运算意图;
图3是本发明提供的连续区域划分示意图;
图4是本发明提供的神经网络测试方法的流程示意图之二;
图5是本发明提供的寻找可行解示意图;
图6是本发明提供的神经网络测试装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,神经网络测试旨在发掘神经网络模型的错误测试例,并将这些错误测试例用于调优模型,达到提升神经网络模型准确率的目的。
现有的神经网络测试方案大部分属于白盒测试。白盒测试是指:对于给定待测试的目标神经网络模型,测试者可以获取该目标神经网络模型的任意内部信息,如模型结构、参数等。而测试者可以利用模型内部信息进行测试。然而,在真实的测试场景下,往往会存在着目标神经网络模型内部信息不可获取的问题。例如,在差分测试的场景下,测试者需要一批功能相似的样例模型进行差分测试。在这种情况下,测试者难以获取多个功能相似的样例模型,例如,A公司的测试者难以获取B公司的模型,这便限制了白盒测试的开展。此外,白盒测试方法还存在泄漏模型隐私的风险。例如,测试者可能是不可信的,他可以将模型的内部信息泄露给第三方,进而给模型拥有者带来难以估量的损失。
相对而言,黑盒测试方案不会面临上述这些问题,可使用的场景更为广泛。黑盒测试是指:测试者无法获取目标神经网络模型的内部信息,而只能通过目标神经网络模型的输出结果来获得反馈,并进行测试。然而,现有的黑盒测试方案较少,且尚不成熟。具体的,现有的黑盒测试方案面临的主要问题是:需要频繁询问目标模型。频繁询问目标模型意味着现有的黑盒测试方案成本较高,如大量访问目标模型会带来时间开销、询问付费等成本问题。
本发明提供了一种基于黑盒测试的神经网络测试方法,高效发掘神经网络的错误测试例。首先分析、发现了神经网络的弱点,而这些弱点能够被测试过程所利用,从而有效发掘神经网络的错误行为。其次,提供一种可变目标函数来引导测试过程,充分探索处于不同决策边界内的错误行为。再次,提供一种以高效为核心的测试算法,能够高效的测试神经网络。本发明发掘的神经网络错误行为(即挖掘的错误测试例),可用于调优模型,进而提升神经网络测试的准确率。
本发明提供的神经网络测试方法,能够通过具有数据处理功能的设备来完成,例如,服务器、计算机或智能移动设备等。下面结合图1-图5描述本发明的神经网络测试方法。
一个实施例中,如图1所示,神经网络测试方法实现的流程步骤如下:
步骤101,获取初始测试例,以及获取初始测试例对应的连续扰动。
本实施例中,初始测试例指的是未经过本发明提供的其他处理的、需要输入目标神经网络模型进行首次测试的测试例。该初始测试例的具体数据类型,可以为任意一种能够被目标神经网络模型进行处理的数据类型,例如,图像、语音或恶意软件等,本申请的保护范围不以初始测试例的具体数据类型为限制。
本实施例中,目标神经网络模型可以为卷积神经网络模型,当然,目标神经网络模型还可以为其他能够实现本方法的具体类型的神经网络模型。
本实施例中,测试例能够添加的扰动分为连续扰动和离散扰动,其中,添加离散扰动,指的是添加在测试例包含的各个测试例元素上的扰动值为随机的;添加连续扰动,指的是添加在测试例包含的各个测试例元素上的扰动值,是根据测试例本身的元素特点,具备一定规律的。而神经网络更容易受到连续扰动的影响。
下面,详细分析连续扰动和离散扰动对神经网络模型的影响。
以目标神经网络模型为卷积神经网络模型为例,详细分析卷积神经网络的卷积运算过程。如图2所示,以输入数据(即测试例)是图像为例,在卷积运算过程中,卷积核起到了关键作用。特别地,给定卷积核参数W={w1,w2,…,wn},其中,W表示卷积核参数集合,w1,w2,…,wn表示不同的卷积核参数,n为正整数。输入数据依据卷积核进行划分,划分为p1,p2,…,ps,其中,s为正整数。通过卷积核对输入数据进行卷积计算,获得对应的卷积输出。
测试例上添加的扰动
Figure BDA0003778859830000081
其中,
Figure BDA0003778859830000082
表示扰动值集合,
Figure BDA0003778859830000083
表示不同的扰动值。则该扰动在参与神经网络模型的第一层卷积运算后,对后续神经网络层的输出影响Dif可以表示为如下公式:
Figure BDA0003778859830000084
其中,Dif表示添加的扰动,对神经神经网络模型的第一层卷积运算的输出影响程度,wi表示第i个卷积核参数,
Figure BDA0003778859830000085
表示第i个扰动值,i为随机的正整数。
直观地,Dif越大越可能使得目标神经网络模型出错。对此,在黑盒测试过程中,希望尽可能最大化Dif,进而发掘卷积神经网络错误行为。为了实现这一目的,让添加的扰动值的正、负分布尽可能地拟合卷积核的参数值的正、负分布,进而使得Dif尽可能的大。
具体而言,对于任意给定神经网络模型的卷积核参数集合W,如图3所示,其可以按参数值的正、负分布划分为多个区域U={U1,U2,…,Um},其中,U1,U2,…,Um表示不同的区域,m为正整数,将相邻且符号相同的至少一个卷积核作为一个区域。对于
Figure BDA0003778859830000091
即当i不等于j时,Ui和Uj的交集为空,其中,i和j分别为随机的正整数;且W=U1∪U2,…,∪Um-1∪Um(m≤n),即Ui代表了W中的部分参数,所有的Ui组成神经网络模型的卷积核参数集合W。任意一个Ui中的这些参数值相邻且符号相同。在图3中,“+”表示相应卷积核位置的参数值为正值;“-”表示相应卷积核位置的参数值为负值。而Dif可以重新表示为如下公式:
Figure BDA0003778859830000092
上式中,
Figure BDA0003778859830000093
代表了被添加的扰动。假设扰动
Figure BDA0003778859830000094
可以被划分为连续
Figure BDA0003778859830000095
(即连续扰动)和离散
Figure BDA0003778859830000096
(即离散扰动)两种状态,由此分别计算离散输出影响程度Difdis和连续输出影响程度Difcon,如下:
Figure BDA0003778859830000097
Figure BDA0003778859830000098
其中,
Figure BDA0003778859830000099
表示离散扰动中的第i个离散扰动值,
Figure BDA00037788598300000910
表示连续扰动中的第i个连续扰动值。
通过计算可以得到:
Difdis<Difcon
由此,连续扰动
Figure BDA00037788598300000911
更容易使Dif较大。
由上述可知,当测试例添加的扰动值的正、负分布与卷积核参数值的正、负分布恰好相同时,则卷积运算后的结果绝对值最大,进而更容易使得卷积神经网络出错。由此得到,卷积神经网络容易受到连续扰动的影响。相应地,利用卷积神经网络的这一弱点,生成连续扰动,并构造相应的扰动测试例来测试卷积神经网络。
步骤102,将连续扰动添加至初始测试例,获得扰动测试例。
本实施例中,获取初始测试例,以及获取初始测试例对应的连续扰动之后,构造相应的扰动测试例,即将连续扰动添加至初始测试例,获得扰动测试例。获得的扰动测试例中包含连续扰动的信息,采用扰动测试例对目标神经网络模型进行测试,更容易得到错误测试例。
步骤103,将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度。
本实施例中,扰动测试例输入至目标神经网络模型后,目标神经网络模型对扰动测试例进行分类处理,得到至少一个类别的置信度,在神经网络领域,将类别称之为决策,即目标神经网络模型输出至少一个决策的决策置信度。例如,输入目标神经网络模型的测试例为图像,目标神经网络模型输出包括两个决策结果,分别为猫和狗,猫的决策置信度为40%,狗的决策置信度为50%。
步骤104,根据决策置信度,获取目标神经网络模型对应的错误测试例。
本实施例中,目标神经网络模型输出至少一个决策的决策置信度后,根据预先标记的扰动测试例的标签,即可确定目标神经网络模型输出结果中的错误测试例。例如,图像预先标记的标签为猫,则通过决策置信度为50%的狗的结果可确定错误测试例。
一个实施例中,当采用扰动测试例完成一次测试后,可以基于扰动测试例完成下一次的测试。具体的,根据决策置信度,确定目标神经网络模型本次测试的错误测试例之后,通过预设的可变目标函数,确定初始测试例和扰动测试例中的最优测试例,其中,可变目标函数基于目标神经网络模型、预设决策集合和初始测试例预先设置;通过最优测试例,更新初始测试例;获取更新后的初始测试例对应的更新连续扰动;将更新连续扰动添加至更新后的初始测试例,获得更新后的扰动测试例;将更新后的扰动测试例,重新输入需要测试的目标神经网络模型,获得目标神经网络模型输出的最新决策置信度;根据最新决策置信度,再次获取目标神经网络对应的错误测试例。
本实施例中,通过预设的可变目标函数,引导神经网络测试的过程实现一个迭代过程。如图4所示,对于给定的初始测试例(Original input),首先将其视为当前的最优测试例(Current best test case),并将它作为优化起始点,来寻找更多的错误测试例(Error-inducing inputs)。在迭代过程中,扰动生成模块(Generate continuousperturbations)会对当前最优的测试例添加连续扰动,得到改动后的测试例(Modified),即扰动测试例。将扰动测试例输入待测试的目标神经网络模型(CNNs under test),由目标神经网络模型对扰动测试例进行分类(Classify)处理,得到错误测试例(Error-inducinginputs。随后,再利用可变目标函数(Tunable objective function)判断扰动测试例是否比当前的最优测试例更好;如果更好,用扰动测试例替换掉当前最优测试例,完成最优测试例的更新(Update)。这一整个优化过程会不断迭代,直至到达测试询问次数上限。测试询问次数可以预先进行设定。
本实施例中,通过可变目标函数的引导,将神经网络测试的过程形成一个迭代过程,在到达测试询问次数上限之前,不断寻找错误测试例。
一个实施例中,可变目标函数用于引导黑盒测试的过程。其中,可变目标函数是可变的,即该可变目标函数会在测试过程中变换定向目标,达到探索神经网络不同决策边界的目的。例如,将决策猫和狗分别作为不同的定向目标,进行猫和狗对应的不同决策边界。
进一步的,对于神经网络测试的两种典型测试场景,在实现通过预设的可变目标函数,确定初始测试例和扰动测试例中的最优测试例过程中,确定目标神经网络模型的测试为差分测试时,通过预设的差分目标函数,确定初始测试例和扰动测试例中的最优测试例,其中,差分目标函数的设置还基于功能相似的至少一个样例模型;确定目标神经网络模型的测试为单一模型测试时,通过预设的单一目标函数,确定初始测试例和扰动测试例中的最优测试例。
本实施例中,可变目标函数同时考虑了两个场景,即差分测试与单一模型测试场景。
对于差分测试而言,测试目的是找到目标神经网络模型与功能相似的样例模型间的差异性行为。因此,给定目标神经网络模型F,以及一批功能相似的样例模型
Figure BDA0003778859830000121
其中,
Figure BDA0003778859830000122
表示样例模型集合,
Figure BDA0003778859830000123
表示不同的样例模型,r为正整数,差分测试场景下可变目标函数可以表达为:
Figure BDA0003778859830000124
其中,DOF(x)表示差分目标函数,x是给定的测试输入(测试例),c是x的标签,类别集合L={l1,l2,…lp},L包含了x所在类别数据集对应的除去c以外的所有类别,即l1,l2,…lp,p为正整数。而l则是可变目标函数需要定向的类别(l∈L),即定向目标,l是从L中挑选出来的。对于每一个被挑选出来的类别li,都会被分配一个访问次数上限ti。在以li作为定向目标的前提下,当对应的询问次数达到ti时,则需要从L中挑选出新的l,即是l动态变化的。通过不断变换l,即变化定向目标,目标神经网络模型的不同决策边界将被探索。
对于单一模型测试场景下,测试过程只需要针对目标神经网络模型发掘错误测试例,则单一模型测试场景下可变目标函数可以表达为:
SOF(x)=F(x)[l]
其中,SOF(x)表示单一目标函数,x是给定的测试输入(测试例),l为定向目标。
本实施例中,当确定好可变目标函数的表达式后,剩下的问题便是在可变过程中,如何挑选l。在测试过程中,本方法会优先探索那些容易出错的决策边界。这么做的目的是为了让黑盒测试在单位访问次数内发掘更多的错误测试例。一种实现方式,按照每一个类别的置信度来决定哪些决策边界更容易出错(置信度越高的决策边界越容易出错)。换言之,本方法会按照置信度对L中的各个类别进行排序,并按照顺序依次选取l作为定向目标。另一种实现方式,支持用户自行设定定向目标的优先级,满足使用者的个人需求。例如,对于在公司部署的人脸识别系统而言,测试例被误判为经理的风险比被误判为普通员工的风险更高。因此,测试者需要优先针对经理这类敏感类别进行优先测试。
一个实施例中,基于上述实施例,本方法实现的一个重要核心点是针对神经网络弱点设计扰动生成模块,实现扰动生成算法。在通过扰动生成算法构造连续扰动时,需要考虑几个主要的因素,包括扰动尺寸、扰动形状、扰动顺序和/或扰动值。而可变目标函数会确定最优测试例的过程,实现连续扰动的筛选,进而使得添加的连续扰动动态拟合神经网络模型的卷积核。
一个实施例中,构造连续扰动时需要考虑扰动尺寸。具体的,获取初始测试例对应的连续扰动,实现过程如下:根据预设的第一扰动尺寸,对初始测试例进行切分,获得尺寸相同的至少一个第一测试例单元;遍历每一个第一测试例单元,为初始测试例添加连续扰动,其中,每一个第一测试例单元内的测试例元素添加的扰动值相同。获取更新后的初始测试例对应的更新连续扰动,实现过程如下:根据预设的第二扰动尺寸,对更新后的初始测试例进行切分,获得尺寸相同的至少一个第二测试例单元,其中,第二扰动尺寸小于或等于第一扰动尺寸;遍历每一个第二测试例单元,为更新后的初始测试例添加连续扰动,其中,每一个第二测试例单元内的测试例元素添加的扰动值相同。
本实施例中,在设计扰动尺寸时,遵循了预设的高效测试算法的原则,即由粗粒度到细粒度,且不可重复。具体地,给定一个初始测试例,根据预设的第一扰动尺寸,扰动生成模块会对初始测试例包含的所有测试例元素进行切分,切分出的每一个测试例单元都具有相同的尺寸(给定的第一扰动尺寸),且每个测试例单元内的元素互不重合。随后,神经网络测试过程会依次遍历这些测试例单元,并添加扰动值。当遍历完所有的扰动单元后,扰动生成模块会根据预设规则维持扰动尺寸或缩小扰动尺寸,得到第二扰动尺寸。在进入下一次迭代处理过程时,在第二扰动尺寸下,重新划分测试例单元,并继续进行测试。上述过程会一直迭代,直至到达测试过程的询问次数上限。
一个具体的例子,给定一个具有2048个测试例元素的初始测试例,第一扰动尺寸为1024,则扰动生成模块会首先按照1024为长度,切分得到两个测试例单元;随后测试过程会遍历这两个测试例单元并添加连续扰动;在遍历完后,扰动尺寸会被进一步减小得到第二扰动尺寸,如缩小两倍,即变为512,则会重新划分出四个测试例单元,并继续遍历。此过程会一直迭代,直至测试过程达到终止条件。
在此过程中,在添加连续扰动产生扰动测试例时,产生的连续扰动实现了由粗粒度到细粒度。测试初始过程中,粗粒度起到加速优化的作用;测试进行一段时间后,细粒度起到算法收敛的作用。
一个实施例中,构造连续扰动时需要考虑扰动形状。具体的,获取初始测试例对应的连续扰动,实现过程如下:根据第一基本形状,对初始测试例进行切分,获得形状相同的至少一个第三测试单元;遍历每一个第三测试例单元,为初始测试例添加第一连续扰动;将以第一基本形状切分的初始测试例输入可变目标函数,获得第一基本形状对应的第一感知函数值,其中,第一感知函数值基于添加第一连续扰动前后的目标函数变化值,以及初始测试例对应决策标签在添加第一连续扰动前后的置信度变化值得到;根据第二基本形状,对初始测试例进行切分,获得形状相同的至少一个第四测试单元;遍历每一个第四测试例单元,为初始测试例添加第二连续扰动;将以第二基本形状切分的初始测试例输入可变目标函数,获得第二基本形状对应的第二感知函数值,其中,第二感知函数值基于添加第二连续扰动前后的目标函数变化值,以及初始测试例在添加第二连续扰动前后对应决策标签的置信度变化值得到;根据第一感知函数值和第二感知函数值,确定第一基本形状和第二基本形状中的目标基本形状;遍历基于目标基本形状切分的测试例单元,为初始测试例添加连续扰动。
本实施例中,对于神经网络弱点的分析,扰动模块需要产生连续扰动。对此,扰动生成模块制定两种基本的连续扰动形状,优选的,两种基本形状分别为方形和线形。这两种基本形状具有两个主要优点:(1)能够组成各种复杂的形状;(2)这两种基本形状能够保证划分扰动单元时不遗漏元素,且无重复元素。
在测试过程中,对于给定的初始测试例,在划分测试例单元时,需要从给定的基本形状中二选一,即选择方形或线形完成切分。对于不同的测试例,选择不同的形状效果不同。换言之,有些测试例更适合方形扰动,有些测试例更适合线形扰动。对此,本通过预设的感知函数来为不同的测试例挑选基本形状。具体而言,在初始最大扰动尺寸下,我们会分别尝试以两种不同的基本形状来划分测试单元,然后分别针对这两类基本形状进行单一模型测试过程;即分别遍历这两类基本形状切分的测试例单元并添加连续扰动,并观察对可变目标函数的影响。
特别地,以基本形状为方形为例,对这些测试例单元添加连续扰动之后,会观察到可变目标函数值增加了Δinc,而基于方形的扰动测试例标签类别对应的置信度下降了Δdec,对此,感知函数会计算第一感知函数值U(square),如下:
U(square)=Δincdec
其中,square代表方形划分。
直观地,更好的优化方向应当尽可能让大部分下降的Δdec转化为Δinc
在计算完方形扰动划分对应的U(square)后,通过感知函数会再以相同的方式,针对线形扰动划分来计算第二感知函数值U(linear)。随后,比较第一感知函数值和第二感知函数值,如果U(square)>U(linear),则说明方形划分更适合当前测试例,即选择方形作为连续扰动的基本形状;如果U(square)<U(linear),则说明线形划分更适合当前测试例,即选择线形作为连续扰动的基本形状。如果U(square)=U(linear),则随机选择方形或线性作为连续扰动的基本形状。
本实施例中,方形和线性为优选的两种基本形状,进一步的,用户还可以采用预先规定的其他形状,例如,T型或Z型的基本形状,来实现上述过程。
一个实施例中,构造连续扰动时需要考虑扰动顺序。具体的,遍历基于目标基本形状切分的测试例单元,为初始测试例添加连续扰动,实现过程如下:为任意一个测试例单元添加单元扰动,其中,连续扰动包括每一个测试例单元对应的单元扰动;通过预设的可变目标函数,确定添加单元扰动的当前测试例单元,比上一个添加单元扰动的测试例单元对应的目标函数值增加;确定当前测试例单元相邻的任意一个测试例单元,为下一个需要添加单元扰动的测试例单元;直至为初始测试例包含的每一个测试例单元,添加对应的单元扰动。
本实施例中,在划分测试例单元后,需要对所有的测试例单元进行遍历,并添加扰动值。然而,如何确定对测试例单元的遍历顺序也是需要考虑的,根本原因在于:不同的测试例单元对应了扰动测试例不同的位置;如果连续扰动能够优先添加到扰动测试例的重要位置上,则更容易影响神经网络模型的决策过程,促进找到错误测试例的过程。具体而言,在遍历测试例单元并添加连续扰动时,如果可变目标函数的置信度增加了,则说明该测试例单元附近区域的其他测试例元素是重要的。因此,扰动生成模块会优先对该测试例单元附近区域的测试例元素所对应的测试例单元(尚未被遍历过)进行遍历。
一个实施例中,构造连续扰动时需要考虑扰动值,具体的,为任意一个测试例单元添加单元扰动,实现过程如下:确定任意一个待处理的测试例单元未添加扰动时,为待处理的测试例单元中的每一个测试例元素添加正扰动值或负扰动值;确定任意一个待处理的测试例单元已添加一次正扰动值时,为待处理的测试例单元中的每一个测试例元素添加负扰动值;确定任意一个待处理的测试例单元已添加一次负扰动值时,为待处理的测试例单元中的每一个测试例元素添加正扰动值。
本实施例中,需要明确往扰动单元上添加什么样的扰动值。对于具有N个元素的扰动测试例,每个测试例元素可添加的值有256种,则可添加的扰动值总数有256N种。然而,这样的扰动空间过大,难以实现高效搜索。
为解决上述问题,采取限制扰动值为两种选择的方式,即{∈,-∈},此处∈为给定的超级参数。这样,搜索空间就被压缩到了2N。对于给定的测试例元素i,假设其原始值为Eo[i]。在遍历测试例单元时,对于测试例单元中的测试例元素i,若其当前值E[i]=Eo[i],则意味着当前的测试例元素没有添加过扰动,进而从{∈,-∈}中随机选择一个值进行添加;如果当前目标元素值E[i]=Eo[i]+∈,则添加扰动后会使E[i]=Eo[i]-∈;反之,如果当前目标元素值E[i]=Eo[i]-∈,则添加扰动后会使E[i]=Eo[i]+∈。
一个实施例中,基于上述实施例提到的迭代优化的过程中,实现了高效测试算法,具体的,该高效测试算法包含两个方面:a)在迭代优化产生测试例的过程中,每轮迭代只产生一个测试例,且仅保留一个当前的最优测试例用于进一步的迭代优化;b)在添加扰动产生测试例时,产生的扰动需要由粗粒度到细粒度。粗粒度起到加速优化的作用;细粒度起到算法收敛的作用。此外,每轮迭代产生的扰动互不相同,避免冗余测试例产生。算法高效性分析与细节具体如下:
对于高效测试算法,本发明首先需要对测试过程建模。黑盒测试过程本质上是在求解当前的可变目标函数,旨在使可变目标函数达到极值。然而,求解可变目标函数的问题的最优解是一个NP-hard问题(Non-deterministic Polynomial-hard problem)。具体而言,在每轮优化中,对于给定的扰动集合Q(具有q个元素),可变目标函数F(Q),如果想挑选出最优解,需要考虑O(n!)种不同的组合情况,故该问题是NP-hard问题。
进一步的,在黑盒测试场景下,本方法需要的是可行解,而不是最优解。其根本原因是:待测目标神经网络模型对应的高维输入空间可看作为无穷大,而待测目标神经网络模型中存在的错误测试例可看作分布在高维输入空间中的点,而点的数量众多,甚至无法统计。所以黑盒测试并不需要找到最优解,只需要找到任意可行解即可。在此场景下,只要是错误输入的点即可视为可行解。如图5所示,黑盒测试过程,只需要通过原始输入找到错误分类区域中的任意错误输入的点(即可行解)即可满足要求。
由于只需要找到可行解即可,黑盒测试都是以遗传算法为主体。具体而言,对于初始解的集合A=φ,在每轮迭代中,遗传算法本质上是便利所有候选Q\A扰动,并根据可变目标函数置信度的变化,选出当前局部最优扰动a∈Q\A,随后将a添加到A中;此迭代过程会持续到最大迭代次数M次结束,则|A|=M。
为了进一步提升遗传算法的测试效率,基于贪心算法(stochastic greedy算法)进行进一步分析。对于stochastic greedy算法,可知该stochastic greedy算法的复杂度为
Figure BDA0003778859830000191
为了提升测试效率,在遗传算法的每轮迭代时,在可选的扰动空间Q\A中每次随机采样
Figure BDA0003778859830000192
个样本,其中,θ为预设的常量。本方法中,需要保证以
Figure BDA0003778859830000193
的概率接近最优解,其中,e为数学常量。进一步的,发现采样数
Figure BDA0003778859830000194
即采样数正比于该算法的复杂度,而
Figure BDA0003778859830000195
故将
Figure BDA0003778859830000196
进而提升算法效率,即在迭代优化产生测试例的过程中,每轮迭代只产生一个测试例,且仅保留一个当前的最优测试例用于进一步的迭代优化,提升测试效率。
此外,本发明产生的扰动由粗粒度到细粒度。在粗粒度阶段,扰动的尺寸较大,能够较大程度改变模型的预测结果,即加速测试算法优化;随着迭代测试的深入进行,扰动逐渐转为细粒度,即缩小扰动尺寸,促进算法收敛。
一个实施例中,神经网络测试方法明确了卷积神经网络的弱点,通过主要三个模块,即可变目标函数、高效测试算法、扰动生成模块,实现具体实施过程:
第一,构建可变目标函数,引导测试过程。对于利用目标神经网络模型弱点的黑盒测试技术,需要制定可变目标函数来引导测试的过程。通过可变的目标函数来探索目标神经网络模型的不同决策边界,进而充分测试神经网络。具体而言,在测试过程中,此可变目标函数会动态确定需要探索的定向目标。这意味着,随着测试过程的进行,需要探索的错误类别会动态变化,进而达到在不同决策边界中发掘错误测试例的目的。同时考虑了差分测试与单一模型测试场景
第二,设计高效测试算法,保障测试的高效性。首先,在迭代优化产生测试例的过程中,每轮迭代只产生一个扰动测试例,且仅保留一个当前的最优测试例用于下一次的迭代优化;其次,在添加连续扰动产生扰动测试例时,产生的连续扰动需要由粗粒度到细粒度。粗粒度意味着在优化前期阶段起到加速优化的作用;细粒度意味着在优化后期阶段促进优化算法收敛。
第三,针对模型弱点设计扰动生成算法,进而构造扰动测试例,以达到对神经网络进行测试的效果。具体的,产生一系列具有基本形状的连续扰动,即针对模型弱点生成连续扰动。在测试的过程中,受到目标函数的指引,合适的基本形状的连续扰动会被留下,不合适的基本形状的连续扰动会被丢弃。对此,随着测试不断迭代进行,产生的连续扰动便能够动态近似拟合卷积核参数值的正、负分布,进而有效影响模型的判断结果,达到发掘神经网络错误行为的目的。此外,构造连续扰动的过程会遵循上述高效测试算法的设计原则,保障测试的高效性。
一个具体的实施例中,以通过目标神经网络模型对图像中包含的动物进行分类为例,对该目标神经网络模型进行测试。具体的,将初始动物图像作为初始测试例,首次迭代时,将初始测试例(即初始动物图像)作为最优测试例,通过扰动生成模块生成该初始动物图像对应的连续扰动,将连续扰动添加至初始动物图像上,生成扰动动物图像(即扰动测试例)。将扰动动物图像输入目标神经网络模型中,由目标神经网络模型对扰动动物图像进行分类,获得目标神经网络模型输出的分类结果。根据分类结果确定是否存在错误测试例,若存在,则保留错误测试例,若不存在,直接进入下一次迭代过程。
进一步的,通过可变目标函数,确定扰动动物图像和初始动物图像中的最优测试图像(即最优测试例)。基于最优测试例重新产生连续扰动,进入下一次迭代处理过程,直到迭代此时达到上限。
该过程通过扰动生成模块、可变目标函数以及处理过程中设置的高效测试算法,以对目标神经网络模型更少的询问次数,找到更多目标神经网络模型对应的错误测试例,完成神经网络测试过程。
本发明提供的神经网络测试方法,获取初始测试例,以及获取初始测试例对应的连续扰动。然后将连续扰动添加至初始测试例,获得扰动测试例。将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度。根据决策置信度,获取目标神经网络模型对应的错误测试例。上述过程中,采用初始测试例对目标神经网络模型进行测试时,需要预先对初始测试例添加连续扰动,而不是直接将初始测试例输入至目标神经网络模型进行处理。神经网络测试的过程,是为了发掘输入到目标神经网络模型中的更多错误测试例。而神经网络模型更容易受到连续扰动的影响,即在初始测试例上添加连续扰动,将包含连续扰动的扰动测试例输入目标神经网络模型,进而更容易得到目标神经网络对应的错误测试例,从而减少对目标神经网络模型的询问次数,提升神经网络测试的效率,可降低测试成本。
进一步的,本方法首次提出了针对卷积神经网络弱点进行测试的理念。本方法首次发现了卷积神经网络易受连续扰动影响,并给出了相应的理论分析。在单位询问次数内,相比于现有的测试方案,本方法具有更高的测试成功率。此外,本方法是首个同时考虑了单一模型测试和差分测试两种场景的黑盒测试工作,并能够充分测试神经网络不同的决策边界。在单位询问次数内,相比于现有的测试方案,本方法能够找到更多的错误测试例类别。再次,本方法设计了一种高效测试算法,并通过理论分析证明了算法的高效性。在单位询问次数内,相比于现有的测试方案,本方法能够找到更多的错误测试例数目。通过本方法找到的错误测试例,能够用于微调模型,并有效提升模型准确率。
下面对本发明提供的神经网络测试装置进行描述,下文描述的神经网络测试装置与上文描述的神经网络测试方法可相互对应参照。如图6所示,神经网络测试装置,包括:
获取模块601,用于获取初始测试例,以及获取初始测试例对应的连续扰动;
扰动处理模块602,用于将连续扰动添加至初始测试例,获得扰动测试例;
模型处理模块603,用于将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度;
结果处理模块604,用于根据决策置信度,获取目标神经网络模型对应的错误测试例。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行神经网络测试方法,该方法包括:获取初始测试例,以及获取初始测试例对应的连续扰动;将连续扰动添加至初始测试例,获得扰动测试例;将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度;根据决策置信度,获取目标神经网络模型对应的错误测试例。
此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的神经网络测试方法,该方法包括:获取初始测试例,以及获取初始测试例对应的连续扰动;将连续扰动添加至初始测试例,获得扰动测试例;将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度;根据决策置信度,获取目标神经网络模型对应的错误测试例。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的神经网络测试方法,该方法包括:获取初始测试例,以及获取初始测试例对应的连续扰动;将连续扰动添加至初始测试例,获得扰动测试例;将扰动测试例输入需要测试的目标神经网络模型,获得目标神经网络模型输出的至少一个决策的决策置信度;根据决策置信度,获取目标神经网络模型对应的错误测试例。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种神经网络测试方法,其特征在于,包括:
获取初始测试例,以及获取所述初始测试例对应的连续扰动;
将所述连续扰动添加至所述初始测试例,获得扰动测试例;
将所述扰动测试例输入需要测试的目标神经网络模型,获得所述目标神经网络模型输出的至少一个决策的决策置信度;
根据所述决策置信度,获取所述目标神经网络模型对应的错误测试例;
所述根据所述决策置信度,确定所述目标神经网络模型本次测试的错误测试例之后,还包括:
通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,其中,所述可变目标函数基于所述目标神经网络模型、预设决策集合和所述初始测试例预先设置;
通过所述最优测试例,更新所述初始测试例;
获取更新后的初始测试例对应的更新连续扰动;
将所述更新连续扰动添加至更新后的初始测试例,获得更新后的扰动测试例;
将所述更新后的扰动测试例,重新输入需要测试的所述目标神经网络模型,获得所述目标神经网络模型输出的最新决策置信度;
根据所述最新决策置信度,再次获取所述目标神经网络对应的所述错误测试例;
其中,所述通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,包括:
确定所述目标神经网络模型的测试为差分测试时,通过预设的差分目标函数,确定所述初始测试例和所述扰动测试例中的所述最优测试例,其中,所述差分目标函数的设置还基于功能相似的至少一个样例模型;
其中,扰动测试例输入至目标神经网络模型后,目标神经网络模型对扰动测试例进行分类处理,得到至少一个类别的置信度,在神经网络领域,将类别称之为决策,即目标神经网络模型输出至少一个决策的决策置信度
其中,目标神经网络模型输出至少一个决策的决策置信度后,根据预先标记的扰动测试例的标签,即可确定目标神经网络模型输出结果中的错误测试例。
2.根据权利要求1所述的神经网络测试方法,其特征在于,所述通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,包括:
确定所述目标神经网络模型的测试为单一模型测试时,通过预设的单一目标函数,确定所述初始测试例和所述扰动测试例中的所述最优测试例。
3.根据权利要求1所述的神经网络测试方法,其特征在于,所述获取所述初始测试例对应的连续扰动,包括:
根据预设的第一扰动尺寸,对所述初始测试例进行切分,获得尺寸相同的至少一个第一测试例单元;
遍历每一个所述第一测试例单元,为所述初始测试例添加所述连续扰动,其中,每一个所述第一测试例单元内的测试例元素添加的扰动值相同;
所述获取更新后的初始测试例对应的更新连续扰动,包括:
根据预设的第二扰动尺寸,对所述更新后的初始测试例进行切分,获得尺寸相同的至少一个第二测试例单元,其中,所述第二扰动尺寸小于或等于所述第一扰动尺寸;
遍历每一个所述第二测试例单元,为所述更新后的初始测试例添加所述连续扰动,其中,每一个所述第二测试例单元内的测试例元素添加的扰动值相同。
4.根据权利要求1所述的神经网络测试方法,其特征在于,所述获取所述初始测试例对应的连续扰动,包括:
根据第一基本形状,对所述初始测试例进行切分,获得形状相同的至少一个第三测试单元;
遍历每一个所述第三测试例单元,为所述初始测试例添加第一连续扰动;
将以所述第一基本形状切分的所述初始测试例输入所述可变目标函数,获得所述第一基本形状对应的第一感知函数值,其中,所述第一感知函数值基于添加所述第一连续扰动前后的目标函数变化值,以及所述初始测试例对应决策标签在添加所述第一连续扰动前后的置信度变化值得到;
根据第二基本形状,对所述初始测试例进行切分,获得形状相同的至少一个第四测试单元;
遍历每一个所述第四测试例单元,为所述初始测试例添加第二连续扰动;
将以所述第二基本形状切分的所述初始测试例输入所述可变目标函数,获得所述第二基本形状对应的第二感知函数值,其中,所述第二感知函数值基于添加所述第二连续扰动前后的目标函数变化值,以及所述初始测试例在添加所述第二连续扰动前后对应决策标签的置信度变化值得到;
根据第一感知函数值和所述第二感知函数值,确定所述第一基本形状和所述第二基本形状中的目标基本形状;
遍历基于所述目标基本形状切分的测试例单元,为所述初始测试例添加所述连续扰动。
5.根据权利要求4所述的神经网络测试方法,其特征在于,所述遍历基于所述目标基本形状切分的测试例单元,为所述初始测试例添加所述连续扰动,包括:
为任意一个所述测试例单元添加单元扰动,其中,所述连续扰动包括每一个所述测试例单元对应的所述单元扰动;
通过预设的所述可变目标函数,确定添加所述单元扰动的当前测试例单元,比上一个添加所述单元扰动的所述测试例单元对应的目标函数值增加;
确定所述当前测试例单元相邻的任意一个所述测试例单元,为下一个需要添加所述单元扰动的所述测试例单元;
直至为所述初始测试例包含的每一个所述测试例单元,添加对应的所述单元扰动。
6.根据权利要求5所述的神经网络测试方法,其特征在于,所述为任意一个所述测试例单元添加单元扰动,包括:
确定任意一个待处理的所述测试例单元未添加扰动时,为所述待处理的所述测试例单元中的每一个测试例元素添加正扰动值或负扰动值;
确定任意一个待处理的所述测试例单元已添加一次所述正扰动值时,为所述待处理的所述测试例单元中的每一个测试例元素添加负扰动值;
确定任意一个待处理的所述测试例单元已添加一次所述负扰动值时,为所述待处理的所述测试例单元中的每一个测试例元素添加正扰动值。
7.一种神经网络测试装置,其特征在于,包括:
获取模块,用于获取初始测试例,以及获取所述初始测试例对应的连续扰动;
扰动处理模块,用于将所述连续扰动添加至所述初始测试例,获得扰动测试例;
模型处理模块,用于将所述扰动测试例输入需要测试的目标神经网络模型,获得所述目标神经网络模型输出的至少一个决策的决策置信度;
结果处理模块,用于根据所述决策置信度,获取所述目标神经网络模型对应的错误测试例;
所述根据所述决策置信度,确定所述目标神经网络模型本次测试的错误测试例之后,还包括:
通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,其中,所述可变目标函数基于所述目标神经网络模型、预设决策集合和所述初始测试例预先设置;
通过所述最优测试例,更新所述初始测试例;
获取更新后的初始测试例对应的更新连续扰动;
将所述更新连续扰动添加至更新后的初始测试例,获得更新后的扰动测试例;
将所述更新后的扰动测试例,重新输入需要测试的所述目标神经网络模型,获得所述目标神经网络模型输出的最新决策置信度;
根据所述最新决策置信度,再次获取所述目标神经网络对应的所述错误测试例;
其中,所述通过预设的可变目标函数,确定所述初始测试例和所述扰动测试例中的最优测试例,包括:
确定所述目标神经网络模型的测试为差分测试时,通过预设的差分目标函数,确定所述初始测试例和所述扰动测试例中的所述最优测试例,其中,所述差分目标函数的设置还基于功能相似的至少一个样例模型;
其中,扰动测试例输入至目标神经网络模型后,目标神经网络模型对扰动测试例进行分类处理,得到至少一个类别的置信度,在神经网络领域,将类别称之为决策,即目标神经网络模型输出至少一个决策的决策置信度
其中,目标神经网络模型输出至少一个决策的决策置信度后,根据预先标记的扰动测试例的标签,即可确定目标神经网络模型输出结果中的错误测试例。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的神经网络测试方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的神经网络测试方法。
CN202210924040.XA 2022-08-02 2022-08-02 神经网络测试方法、装置、设备及存储介质 Active CN115374898B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210924040.XA CN115374898B (zh) 2022-08-02 2022-08-02 神经网络测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210924040.XA CN115374898B (zh) 2022-08-02 2022-08-02 神经网络测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115374898A CN115374898A (zh) 2022-11-22
CN115374898B true CN115374898B (zh) 2023-04-25

Family

ID=84064647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210924040.XA Active CN115374898B (zh) 2022-08-02 2022-08-02 神经网络测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115374898B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN110555514A (zh) * 2019-08-20 2019-12-10 北京迈格威科技有限公司 神经网络模型搜索方法、图像识别方法和装置
CN112115009A (zh) * 2020-08-13 2020-12-22 中国科学院计算技术研究所 一种用于神经网络处理器的故障检测方法
CN113128556A (zh) * 2021-03-10 2021-07-16 天津大学 基于变异分析的深度学习测试用例排序方法
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 南京航空航天大学 采用基于区域的神经元选择策略的模糊测试方法及终端
CN114048817A (zh) * 2021-11-16 2022-02-15 浙江工业大学 一种基于变异策略的深度学习输入集优先级测试方法
CN114565051A (zh) * 2022-03-03 2022-05-31 余姚市亿盛金属制品有限公司 基于神经元影响程度的产品分类模型的测试方法
CN114676852A (zh) * 2022-04-11 2022-06-28 重庆邮电大学 一种基于相关性类激活映射的通用对抗扰动生成方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN110555514A (zh) * 2019-08-20 2019-12-10 北京迈格威科技有限公司 神经网络模型搜索方法、图像识别方法和装置
CN113743572A (zh) * 2020-05-27 2021-12-03 南京大学 一种基于Fuzz的人工神经网络测试方法
CN112115009A (zh) * 2020-08-13 2020-12-22 中国科学院计算技术研究所 一种用于神经网络处理器的故障检测方法
CN113128556A (zh) * 2021-03-10 2021-07-16 天津大学 基于变异分析的深度学习测试用例排序方法
CN113762335A (zh) * 2021-07-27 2021-12-07 北京交通大学 一种基于不确定性的智能系统测试数据生成方法
CN113986717A (zh) * 2021-09-29 2022-01-28 南京航空航天大学 采用基于区域的神经元选择策略的模糊测试方法及终端
CN114048817A (zh) * 2021-11-16 2022-02-15 浙江工业大学 一种基于变异策略的深度学习输入集优先级测试方法
CN114565051A (zh) * 2022-03-03 2022-05-31 余姚市亿盛金属制品有限公司 基于神经元影响程度的产品分类模型的测试方法
CN114676852A (zh) * 2022-04-11 2022-06-28 重庆邮电大学 一种基于相关性类激活映射的通用对抗扰动生成方法

Also Published As

Publication number Publication date
CN115374898A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
CN112311780B (zh) 一种基于多维度攻击路径与攻击图的生成方法
CN111783100A (zh) 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN109818961B (zh) 一种网络入侵检测方法、装置和设备
CN111931505A (zh) 一种基于子图嵌入的跨语言实体对齐方法
CN111079780A (zh) 空间图卷积网络的训练方法、电子设备及存储介质
CN115563610B (zh) 入侵检测模型的训练方法、识别方法和装置
CN115114484A (zh) 异常事件检测方法、装置、计算机设备和存储介质
CN115374898B (zh) 神经网络测试方法、装置、设备及存储介质
CN113468538A (zh) 一种基于相似性度量的漏洞攻击数据库构建方法
CN111177388B (zh) 一种处理方法及计算机设备
CN116029379B (zh) 空中目标意图识别模型构建方法
CN116627781A (zh) 目标模型验证方法以及装置
CN116150401A (zh) 基于带噪声数据集的强鲁棒性知识图谱三元组质检网络模型训练方法及质检方法
CN113128556B (zh) 基于变异分析的深度学习测试用例排序方法
CN114444721A (zh) 模型训练方法、装置、电子设备及计算机存储介质
Rathod et al. Model comparison and multiclass implementation analysis on the unsw nb15 dataset
Čisar et al. Application of artificial immune networks in continuous function optimizations
CN115146258B (zh) 请求处理方法、装置、存储介质及电子设备
US20230334335A1 (en) System and method for software program generation using genetic programming
CN117792801B (zh) 一种基于多元事件分析的网络安全威胁识别方法及系统
CN115185814B (zh) 一种基于二维程序频谱的多缺陷定位方法、系统及设备
CN114510715B (zh) 模型的功能安全测试方法、装置、存储介质及设备
CN115580889A (zh) 一种无线小区关键绩效指标异常检测的方法及装置
Vallabhaneni et al. Protecting the Cybersecurity Network Using Lotus Effect Optimization Algorithm Based SDL Model
US20220172105A1 (en) Efficient and scalable computation of global feature importance explanations

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