一种基于路径状态的神经网络测试充分性评估方法与流程

文档序号:22547931发布日期:2020-10-17 02:19阅读:86来源:国知局
一种基于路径状态的神经网络测试充分性评估方法与流程

本发明属于机器学习测试技术领域,且特别是基于路径状态的神经网络测试充分性评估方法。



背景技术:

近年来,人工智能发展迅速,推动着各个领域的创新,其核心是机器学习,利用机器模拟人类的思维完成人类的工作,为人类的生活提供了各种各样的可能性。以神经网络为代表的深度学习的发展,进一步地促进了机器学习地位的提高,被广泛应用于多个领域,尤其是生命攸关领域,如自动驾驶,医疗导诊,金融风险预测等。这也对深度学习应用提出了高可靠高可用的要求。此外,对抗样本的研究也对深度学习的应用造成了很大的安全隐患。如何测试深度学习软件,已经成学术界和工业界的研究热点。

深度学习应用特点是不确定性和概率性,其本身的神经网络模型就是一个非线性的、内部不可解释的概率分布模型,对大数据具有强依赖性,神经网络模型的训练就是建立在大量的训练数据的基础上的,数据质量影响着模型的决策。传统实践中的随机性输入和输出,难以预测所有应用场景,如何评估测试数据集合的充分性也成为研究难点。神经网络本质上是一个复杂的数值计算程序,其输出为不确定的概率输出,这与传统软件给定输入即会得到固定的输出结果是不一样的。此外,神经网络模型是一个结合和参数的集合体,输入的数据相对固定的非线性运算得到输出,而传统软件则是通过代码中的流程控制逻辑来选择路径执行,这些差异都为传统软件测试的手段在神经网络中的迁移应用带来了较大的困难。

当下常见的测试手段即将大量数据划分为训练集和测试集,通过评估通过训练集训练得到的模型在测试集数据上的准确度的表现来评估模型的性能,这种方案对数据质量的要求比较高,而且很难评估模型在极端情况下的表现。而在现实应用中,极端情况下的可靠性保障往往对人们来说至关重要。近几年学术界便有通过约束求解等验证性手段,检测神经网络输出的边界,对模型进行可达性分析,进行神经网络的稳定性评估。此外通过对神经网络结构的分析,也有专家提出对神经网络神经元状态覆盖的测试方案,如神经元覆盖,mc/dc覆盖等。本专利立足神经网络的神经元状态,从神经网络模型的结构特征出发,提出了一种神经网络的路径覆盖测试充分性评估方法。



技术实现要素:

本发明要解决的问题是:当前缺乏对深度学习系统的测试充分性评估方案,以便于帮助开发人员和测试人员高效的评估深度学习模型,并为提高数据质量提供启发性的解决方案。本发明结合神经网络的结构特征,基于神经元的状态,评估神经网络的路径覆盖情况。

为达成上述目的,本发明提出了一种基于路径状态的神经网络测试充分性评估方法。方法包括下列步骤:

1.对模型结构进行抽象,获取模型的隐藏层结构信息。

给定神经网络模型m,该模型包含h个隐藏层,每个隐藏层li的神经元个数为ai(1≤i≤h)。

2.获取测试数据集的隐藏层神经元状态,整合每条测试数据的路径覆盖情况。

(1)对于给定的测试数据集t={t1,t2,t3...tn-1,tn}中的每个测试数据ti,运行模型,获取其在由1中抽象出的每个隐藏层的神经元激活数据。ti在隐藏层lj中神经元的激活情况为由1可知,第lj层中共aj个神经元,即ti保存的神经元信息为{ai,1,ai,2,ai,3,...,ai,h}。

(2)对每条测试数据的神经元激活数据进行路径组合,给定路径长度为len,选取相邻len层的激活数据,在对应层中各选一个位置的神经元激活数据进行全排列。选取的连续层组为lset={[l1,l2,...,l1+len],[l2,l3,...,l2+len],...,[lh-len,lh-len+1,...,lh]},当len=h-1时,表示全路径覆盖,其余情况表示子路径覆盖。对于选中的连续层组,其路径为每层的内部神经元的全组合情况。

3.选择覆盖指标,计算测试数据集合的路径覆盖率。其计算公式如下:

其中表示组合路径中所有的覆盖情况数量,作为公式的分母。分子表示当前数据集t满足中的覆盖情况的数量。具体如何获得路径中所有的覆盖情况数量本发明提供三种类型的覆盖指标:

(1)强激活的路径覆盖(strongactivatedpathcoverage,sap):本指标表示的是对于每条对应组合中的路径来说,只有当路径中的神经元全激活的情况下被认为该路径覆盖了,即一条路径的覆盖只有一种状态。测试集t在模型m上的len长度的强激活的路径覆盖的总情况数量计算如下:

(2)输出激活的路径覆盖(outputactivatedpathcoverage,oap):本指标表示的是对于一条路径来说,只有当路径的最后一个神经元(即对应的连续层组的第1+len层选中的神经元)为激活状态时,我们才认为该状态覆盖。此时分多重情况,即路径中与最后一个神经元相邻的前置神经元连续激活的个数,连续激活1个为一种激活情形,由于前置有len个神经元,因此对于一条路径来说共有len+1种覆盖的情况。测试集t在模型m上的len长度的输出激活的路径覆盖的总情况数量计算如下:

(3)全状态的路径覆盖(fullstatepathcoverage,fsp):本指标表示的是对于一条路径来说,我们认为其中的激活状态是指数级的,即神经元中是否激活均为一种激活方式,对于len长度的路径来说,共有(len+1)个神经元,因此对于一条路径来说共有2len+1种覆盖状态。测试集t在模型m上的len长度的全状态的路径覆盖的总情况数量计算如下:

4.根据选定阈值threshold评估神经网络的测试集的充分性。当覆盖率低于阈值时,我们认为测试集t在模型m上的测试充分性较差,也反映了测试集质量较低。当覆盖率超过阈值以及模型的准确率满足开发者和测试者的预期时,我们认为模型质量和测试集的质量达到了预期的效果。

附图说明

图1为本发明一种基于路径状态的神经网络测试充分性评估方法的实施流程图。

图2为l-5模型的神经网络结构示意图。

图3为图1中获取神经元路径信息的流程图。

图4为图1中评估测试集路径覆盖率的流程图。

具体实施方式

为了更了解本发明的技术内容,给出一个5层隐藏层的全连接神经网络(每层神经元个数分别为{20,20,20,15,10}),称之为l-5模型,分别获取三个指标下的len=3的路径覆盖率,通过此具体实例并配合所附图式进行说明。

图1为本发明一种基于路径状态的神经网络测试充分性评估方法的实施流程图,如图所示,本发明方法内容主要包括:

1.获取测试数据集在l-5模型运行时5个隐藏层中神经元的激活信息,为进行下一步准备数据。模型的结构图如图2所示,正是由于前一层和后一层的神经元之间的连接关系,能够表征路径,因此路径覆盖在神经网络中有着实践上的可迁移性。

2.获取测试数据在隐藏层神经元上的激活信息,整合数据的路径覆盖信息。由图3所示,首先会将测试数据输入到子模型中获取对应每层隐藏层激活数据。对于一个神经,我们会通过判定条件进行判断其是否激活,如常用的激活函数为relu,通过如下定义i层的第j个神经元的激活状态s(ai,j):

β为人为设定的阈值,对relu函数来说,根据其函数特性,一般β=0。1表示激活状态,0表示未激活状态。激活的神经元相对未激活的神经元,对下层的取值有着更大的影响作用。然后,对获取数据在每个连续层组中由各层选取一个神经元组成的路径全排列(相邻层组之间的神经元个数的乘积)来表征对应数据在某条路径上的神经元的激活状态,为下一步进行计算覆盖率准备路径数据。在本例中神经网络有5层隐藏层,len=3的连续层组为lset={[l1,l2,l3,l4],[l2,l3,l4,l5]}共两组,对第一组来说其路径组合数为20×20×20×15,第二组为20×20×15×10。每条数据在每条路径上的神经元覆盖情况均被保存下来,用于覆盖率的计算。

3.由发明内容步骤3可知,覆盖计算公式统一,但是其的计算由其指标来决定的。由图4及发明内容,我们提出了三种统计覆盖情况,下面结合本例以一条选中的路径来解释三种覆盖指标的覆盖数量:

(1)sap:强激活路径覆盖指标,是只有一条路径上的所有神经元状态均为激活的情况下才认为是一种覆盖,本例中为(1,1,1,1),即在特定的路径下只有一种神经元的组合情况。其数量级为o(1)。

(2)oap:输出激活路径覆盖指标,是指在输出端激活(即路径中最后一个神经元为激活状态)前提下,前置连续激活的不同神经元数为不同的覆盖情况,即(s,s,0,1),(s,0,1,1),(0,1,1,1),(1,1,1,1)四种情况,其中s为任意状态,无论该位置为1还是0均视为同一种覆盖情况。其数量级为o(len)。

(3)fsp:全状态的路径覆盖指标,是指路径中的神经元激活状态的任意组合情况都属于一种覆盖情况,由于激活状态用0和1表示,不难得出其数量课类比为(len+1)位的二进制表示的无符号整数的数量。其数量级为o(2len+1)。

4.根据计算的测试集上的覆盖率cov(t)来评估神经网络的测试集的充分性,通过人为给定阈值threshold(一般通过实践和经验设定)。cov(t)达不到threshold,表明数据质量不达标,需要提升。当覆盖率满足threshold时,并且模型的准确率也达到测试指标,我们认为在该路径覆盖测试方法下的测试数据充分性达标。

综上所述,本发明提供了一种基于路径状态的神经网络测试充分性评估方法,用于评估神经网络的测试集的充分性,为开发者和测试人员提供一套评估数据集质量标准,同时有助于测试数据的筛选和数据质量的提升。本发明是将传统测试思想应用于深度学习领域的迁移创新。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1