首页 / 专利库 / 作物管理 / 种子 / 针对深度神经网络的条件引导式对抗生成测试方法与系统

针对深度神经网络的条件引导式对抗生成测试方法与系统

阅读:0发布:2021-02-01

专利汇可以提供针对深度神经网络的条件引导式对抗生成测试方法与系统专利检索,专利查询,专利分析的服务。并且本 发明 提出了一种针对 深度神经网络 的条件引导式对抗生成测试方法与系统,通过收集需要的数据集和相应的标签,对其进行分组处理后得到需求的批处理池数据集,并采用启发式 算法 选出 种子 集进行条件引导的对抗生成训练集。测试生成过程的目标是最大化测试套件的网络 覆盖 率,得到生成的图片集后将之作为训练集输入到相应的网络中进行测试,如果生成的图片集使得原网络的覆盖率得到提高,那么将这些图片作为一个批次加入到批处理池中。本发明使用条件引导的对抗生成网络,以图片的标签作为条件生成图片,可以减少生成规模。在覆盖率指导下对抗生成测试 用例 ,可以最大化给定网络或系统的神经元覆盖率,有利于提高待测试深度神经网络的 精度 。,下面是针对深度神经网络的条件引导式对抗生成测试方法与系统专利的具体信息内容。

1.一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,包括如下步骤:
步骤1:获取待测试的深度神经网络相应的数据集和相应的标签信息;
步骤2:将数据集随机分为若干子集,将这些子集作为批次存放入批处理池中,并为每个批次设置加入时间;
步骤3:从批处理池中启发式地选择批次,选中批次后从中采样出一组种子集作为条件对抗生成网络(CAGN)的输入;
步骤4:CAGN的生成器随机生成一批新的测试样本,对这些测试样本进行相似度检查,查看是否为有效输出,将有效的输出打包为新批次;
步骤5:将有效的生成测试样本输入到待测试的深度神经网络中去,进行覆盖率分析,如果待测试的深度神经网络的神经元覆盖率提高,那么将新批次加入到批处理池,并设置其加入时间;
步骤6:重复步骤3-5至最大迭代次数或待测试的深度神经网络的神经元覆盖率不再变。
2.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述步骤1中的数据集包括待测试的深度神经网络的原始训练集和测试集,所述步骤2和3中基于原始训练集和/或测试集中的样本生成新的测试样本。
3.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述步骤2包括如下步骤:
步骤21:将深度神经网络原始训练集和/或测试集按照其标签one-hot值分为若干平等的子集;
步骤22:从分好类的子集中分出批次,随机取出10~20个测试样本作为一个批次;
步骤23:将所有的批次加入到批处理池中,并为每一个批次设置一个加入时间ti,初始化为ti=0,其中i为0到批次数量。
4.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述步骤3包括如下步骤:
步骤31:采用启发式方法从批处理池里选取一个批次,采用的启发式算法是其中h(bi,t)是在t时刻选择批次bi的概率,ti是其加入批处理池的时间,t是时钟时间,设置的选择标准是优先选择概率大的批次;
步骤32:选中批次后,从中采样选出若干样本作为CAGN的输入;
步骤33:生成一个服从正态分布的随机噪音张量,和选中批次的标签对应的one-hot张量一起作为CAGN的生成器G的输入;
步骤34:将生成器生成的测试样本和原始真实测试样本交替作为CAGN的鉴别器D的输入,并将选中批次的标签的one-hot张量作为条件输入鉴别器D。
5.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述步骤4中将删除相似性较差的测试样本,将相似度较好的测试样本视为有效输出,具体包括:
步骤41:利用余弦夹相似度来衡量生成的测试样本和原始测试样本之间的差异;
步骤42:当计算相似度超过设定的阈值时,认为生成的测试样本是有效的,反之,则认为是无效的测试样本,舍去;
步骤43:将有效的测试样本按照相似度从高到低进行排序;
步骤44:将符合相似度要求的前10~20个测试用例打包成一个批次。
6.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述步骤5包括如下步骤:
步骤51:将新生成的批次输入到给定的待测试深度神经网络或者相应的系统中;
步骤52:计算相应的覆盖率信息,如果待测试深度神经网络或者系统的神经元覆盖率有所提高,那么将此批次加入到批处理池中,设置其加入时间ti,否则舍弃此批次。
7.根据权利要求1所述的一种针对深度神经网络的条件引导式对抗生成测试方法,其特征在于,所述神经元覆盖率的计算公式为 其中N表示所
有的神经元的集合,T表示测试样本的集合,out(n,x)是一个函数,它返回给定测试样本x在神经元n中的输出值,t为激活函数的阈值。
8.一种针对深度神经网络的条件引导式对抗生成测试系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-7任一项所述的针对深度神经网络的条件引导式对抗生成测试方法。

说明书全文

针对深度神经网络的条件引导式对抗生成测试方法与系统

技术领域

[0001] 本发明涉及一种测试用例生成的方法,尤其涉及有条件的可控的测试用例生成方法,属于人工智能测试领域。

背景技术

[0002] 近年来,深度神经网络(Deep Neural networks,DNNs)以其高精度和高效率被广泛应用于各种应用领域,如图像识别自然语言处理、恶意软件检测、自动驾驶汽车等。然而,随着越来越多的安全关键应用开始采用DNNs,在没有进行全面测试的情况下部署DNNs会产生严重的问题,例如在自动驾驶过程中可能会发生事故。因此,对基于深度神经网络的系统进行高效可靠的测试迫在眉睫。
[0003] 模糊测试是对DNNs进行测试的一种有方法。传统模糊测试通过按位/字节翻转、替换和输入文件之间的交叉等来进行突变,但是这些方法会导致输入数量过于庞大,对于DNNs模糊测试来说毫无意义。Xie等人提出了选择八种图像转换来对原始数据进行突变,他们选取四种像素值变换:改变图像对比度、改变亮度、图像模糊和图像添加噪声;四种仿射变换:图像平移、图像缩放、图像剪切和图像旋转。上述方法生成测试用例的突变算法采用的都是图像的低层视觉信息,忽略了图像的高层语义,而中低层视觉信息往往表示的是图像细节信息。并且生成了大量无效的测试用例,不能有约束地生成我们需求的测试用例,浪费资源和时间。

发明内容

[0004] 发明目的:考虑到深度神经网络的特殊性,传统的测试方法不再适用于深度学习系统或网络。本发明提供一种针对深度神经网络的条件引导式对抗生成测试方法与系统,针对给定的目标网络,以其原始数据集以及标签为基础,在覆盖率指导下对抗生成测试用例,目标是最大化给定网络或系统的神经元覆盖率。可以将本发明方法生成的测试用例和原数据集结合,重新训练网络,提高待测试的网络的精度。
[0005] 技术方案:为实现上述发明目的,本发明所述的一种针对深度神经网络的条件引导式对抗生成测试方法,包括如下步骤:
[0006] 步骤1:获取待测试的深度神经网络相应的数据集和相应的标签信息;
[0007] 步骤2:将数据集随机分为若干子集,将这些子集作为批次存放入批处理池中,并为每个批次设置加入时间;
[0008] 步骤3:从批处理池中启发式地选择批次,选中批次后从中采样出一组种子集作为条件对抗生成网络(CAGN)的输入;
[0009] 步骤4:CAGN的生成器随机生成一批新的测试样本,对这些测试样本进行相似度检查,查看是否为有效输出,将有效的输出打包为新批次;
[0010] 步骤5:将有效的生成测试样本输入到待测试的深度神经网络中去,进行覆盖率分析,如果待测试的深度神经网络的神经元覆盖率提高,那么将新批次加入到批处理池,并设置其加入时间;
[0011] 步骤6:重复步骤3-5至最大迭代次数或待测试的深度神经网络的神经元覆盖率不再变。
[0012] 所述步骤1中的数据集包括待测试的深度神经网络的原始训练集和测试集,所述步骤2和3中基于原始训练集和/或测试集中的样本生成新的测试样本。
[0013] 数据预处理主要是对图片按照标签信息进行分类并划分批次,所述步骤2进一步为:
[0014] 步骤21:将深度神经网络原始训练集和/或测试集按照其标签one-hot值分为若干平等的子集;
[0015] 步骤22:从分好类的子集中分出批次,随机取出10~20个测试样本作为一个批次;
[0016] 步骤23:将所有的批次加入到批处理池中,并为每一个批次设置一个加入时间ti,初始化为ti=0,其中i为0到批次数量。
[0017] 如何快速有效地选择批次是本方法中的一个重要环节,本方法采用启发式方法从批处理池中获取批次,所述步骤3进一步为:
[0018] 步骤31:采用启发式方法从批处理池里选取一个批次,采用的启发式算法是其中h(bi,t)是在t时刻选择批次bi的概率,ti是其加入批处理池的时间,t是时钟时间,设置的选择标准是优先选择概率大的批次;
[0019] 步骤32:选中批次后,从中采样选出若干样本作为CAGN的输入;
[0020] 步骤33:生成一个服从正态分布的随机噪音张量,和选中批次的标签对应的one-hot张量一起作为CAGN的生成器G的输入;
[0021] 步骤34:将生成器生成的测试样本和原始真实测试样本交替作为CAGN的鉴别器D的输入,并将选中批次的标签的one-hot张量作为条件输入鉴别器D。
[0022] 所述步骤4中将删除相似性较差的测试样本,将相似度较好的测试样本视为有效输出,具体包括:
[0023] 步骤41:利用余弦夹相似度来衡量生成的测试样本和原始测试样本之间的差异;
[0024] 步骤42:当计算相似度超过设定的阈值时,认为生成的测试样本是有效的,反之,则认为是无效的测试样本,舍去;
[0025] 步骤43:将有效的测试样本按照相似度从高到低进行排序;
[0026] 步骤44:将符合相似度要求的前10~20个测试用例打包成一个批次。
[0027] 将符合相似性的测试样本组成的新批次输入到给定网络,进行覆盖率计算,所述步骤5进一步为:
[0028] 步骤51:将新生成的批次输入到给定的待测试深度神经网络或者相应的系统中;
[0029] 步骤52:计算相应的覆盖率信息,如果待测试深度神经网络或者系统的神经元覆盖率有所提高,那么将此批次加入到批处理池中,设置其加入时间ti,否则舍弃此批次。
[0030] 所述神经元覆盖率的计算公式为 其中N表示所有的神经元的集合,T表示测试样本的集合,out(n,x)是一个函数,它返回给定测试样本x在神经元n中的输出值,t为激活函数的阈值。
[0031] 本发明所述的一种针对深度神经网络的条件引导式对抗生成测试系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的针对深度神经网络的条件引导式对抗生成测试方法。
[0032] 有益效果:本发明提供的一种针对深度神经网络的条件引导式对抗生成测试方法,在测试用例生成部分,使用条件引导的对抗生成网络,以图片的标签作为条件生成图片,可以减少生成规模;在反馈部分,可以根据实际情况来确定需要的覆盖准则,通常认为覆盖率越高,存在的缺陷越少。与现有技术相比,本发明能够为目标网络生成可以提高覆盖率的测试用例,更具有指向性,减少测试用例规模。可以将本发明生成的测试用例和原数据集结合,重新训练网络,从而提高待测试的网络的精度。附图说明
[0033] 图1为本发明实施例的整体步骤图;
[0034] 图2为本发明一具体示例的方法流程图

具体实施方式

[0035] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0036] 如图1所示,一种针对深度神经网络的条件引导式对抗生成测试方法,主要包括6个步骤:
[0037] 步骤1:获取待测试的深度神经网络相应的数据集和相应的标签信息;
[0038] 步骤2:将数据集随机分为若干子集,将这些子集作为批次存放入批处理池中,并为每个批次设置加入时间;
[0039] 步骤3:从批处理池中启发式地选择批次,选中批次后从中采样出一组种子集作为条件对抗生成网络(CAGN)的输入;
[0040] 步骤4:CAGN的生成器随机生成一批新的测试样本,对这些测试样本进行相似度检查,查看是否为有效输出,将有效的输出打包为新批次;
[0041] 步骤5:将有效的生成测试样本输入到待测试的深度神经网络中去,进行覆盖率分析,如果待测试的深度神经网络的神经元覆盖率提高,那么将新批次加入到批处理池,并设置其加入时间;
[0042] 步骤6:重复步骤3-5至最大迭代次数或待测试的深度神经网络的神经元覆盖率不再变。
[0043] 如图2所示,本发明实施例以对用于手写数字识别的深度神经网为例,说明本发明实施例公开的一种针对深度神经网络的条件引导式对抗生成测试方法的详细步骤,具体如下:
[0044] 步骤1:获取MNIST手写数字数据集,主要包括两个方面:
[0045] 步骤11:从MNIST手写数字数据集官网(http://yann.lecun.com/exdb/mnist/)下载训练集和测试集及其对应标签;
[0046] 步骤12:从相应的压缩文件中把需求的数据读取并保存在本地。
[0047] 步骤2:对MNIST数据集进行预处理,分出批次存入批处理池,具体过程如下:
[0048] 步骤21:对MNIST手写数字数据集,将其训练集按照标签0~9的one-hot值分为10组相互平等的子集;
[0049] 步骤22:从分好类的子集中随机分出批次,每个批次中包含10~20个不等测试样本;
[0050] 步骤23:将所有的批次加入到批处理池中,并为每一个批次设置一个加入时间ti,初始化为ti=0,其中i为0到批次数量。
[0051] 步骤3:采用启发式方法从批处理池中获取批次,采样出样本输入CAGN(已经训练好)进行对抗生成新的测试样本,具体步骤如下:
[0052] 步骤31:采用启发式方法从批处理池里选取一个批次,为了尽可能最大化效率,使选择更合理,我们采用的启发式算法是 其中h(bi,t)是在t时刻选择批次bi的概率,ti是其加入批处理池的时间,t是时钟时间。设置的选择标准是优先选择概率大的批次;
[0053] 步骤32:选中批次后,从每个批次的10~20个样本中采样选出10个样本作为目标CAGN的输入;
[0054] 步骤33:生成一个服从正态分布的随机噪声张量,和选中批次的标签对应的one-hot张量一起作为CAGN(训练集是MNIST数据集的训练集和相应的标签信息)的生成器的输入。生成器G的训练过程就是最小化目标函数 其中{z1,z2,…,zm}是一个符合正态分布的噪声数据,y是控制条件(即标签)。生成器G的目的是生成可以欺骗鉴别器D的样本G(zi|y),因此D(G(zi|y)|y)应该越大越好,目标函数应该最小化;
[0055] 步骤34:将生成器生成的测试样本和原始真实测试样本交替作为CAGN的鉴别器的输入,同时将选中批次的标签的one-hot张量作为条件输入鉴别器。鉴别器D的训练过程是最大化目标函数 其中 y是控制条件(即标签)。鉴别器的目标是判别输入的样本是真样本还是假样本,因此需要真样本结果D(xi|y)尽可能大,假样本的结果 尽可能小,结合起来应该要最大化目标函数。
[0056] 步骤4:为了确保生成的测试样本和原始样本的距离相关性,采用余弦相似性过滤掉无效样本,具体步骤为:
[0057] 步骤41:利用余弦夹角相似度来保证生成的测试样本和原始测试样本之间的距离差距在一定的范围之内,余弦夹角的计算公式为其中X,Y分别表示原始样本和生成样本的numpy矩阵格式;
[0058] 步骤42:设置阈值为0.1(通过实验,比较0.1~0.9相似度情况下生成的测试用例的覆盖率),当计算相似度超过0.1时,认为生成的测试样本是有效的,和原始测试样本的语义差距在可接受范围之内。反之,则认为是无效的测试样本,舍去;
[0059] 步骤43:将有效的测试样本按照相似度从高到低进行排序;
[0060] 步骤44:随机将符合相似度要求的前10~20个测试样本打包成一个批次。
[0061] 步骤5:实现DNN反馈,将通过相似性筛选的测试样本组成的新批次输入到手写数字识别神经网络,进行覆盖率计算,具体步骤如下:
[0062] 步骤51:将原始测试样本形成的批次输入到手写数字识别神经网络中,计算其神经元覆盖率,采用的神经元覆盖计算公式为 其中N={n1,n2,…}表示所有的神经元的集合,T={x1,x2,…}表示测试样本的集合,out(n,x)是一个函数,它返回给定测试样本x在神经元n中的输出值,t为激活函数的阈值;在本实例中,激活函数为RELU函数,阈值t的取值为0.1,对神经元的激活判断是基于keras框架的,编程实现统计神经网络每一层中激活的神经元数量;
[0063] 步骤52:将新生成的符合相似性的批次输入到手写数字识别神经网络中,计算并查看相应的覆盖率信息;
[0064] 步骤53:如果手写数字识别神经网络的覆盖率比原始输入测试样本有所提高,那么将此新批次加入到批处理池中,设置其加入时间ti,否则舍弃此批次。
[0065] 步骤6:重复步骤3-5至最大迭代次数。
[0066] 基于相同的发明构思,本发明实施例公开的一种针对深度神经网络的条件引导式对抗生成测试系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的针对深度神经网络的条件引导式对抗生成测试方法。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈