CN113468046B - 一种面向多目标的dnn模型的诱导输入生成的方法 - Google Patents
一种面向多目标的dnn模型的诱导输入生成的方法 Download PDFInfo
- Publication number
- CN113468046B CN113468046B CN202110671307.4A CN202110671307A CN113468046B CN 113468046 B CN113468046 B CN 113468046B CN 202110671307 A CN202110671307 A CN 202110671307A CN 113468046 B CN113468046 B CN 113468046B
- Authority
- CN
- China
- Prior art keywords
- dnn
- seed
- input
- neuron
- image
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006698 induction Effects 0.000 title claims abstract description 27
- 210000002569 neuron Anatomy 0.000 claims abstract description 89
- 230000006399 behavior Effects 0.000 claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 17
- 238000012360 testing method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 18
- 230000000903 blocking effect Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000001795 light effect Effects 0.000 claims 1
- 238000002474 experimental method Methods 0.000 abstract description 3
- 230000000630 rising effect Effects 0.000 abstract description 2
- 238000013135 deep learning Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 239000009891 weiqi Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (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)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种面向多目标的DNN模型的诱导输入生成的方法,通过将未被标记的种子图像输入到不同的DNN中,分别计算不同神经元的差异行为,神经元的输出以及神经元覆盖系数三个目标,然后采用损失函数和梯度上升算法来获取有效的诱导输入。本发明主要包括:1、确定未标记的种子图像作为输入;2、遍历输入的种子图像,寻找不同DNN辨别为同一类别的种子;3、计算需要优化的三个目标;4、对图像添加干扰;5、将干扰过的图像再次输入DNN模型,判断不同DNN是否识别成不同的类型。6、重复2‑5,直到有两个不同的DNN将该图像识别成不同的类型。通过实验验证,本发明的方法与DeepXplore相比,神经元覆盖率提高了25%左右,并且我们得到的种子输入更具有多样性。
Description
技术领域
本发明属于测试用例生成的技术领域,提出了面向多目标的DNN模型的诱导输入生成的方法,用于生成具有多样性的诱导输入来测试DNN模型。
背景技术
在过去的几年中,深度学习(DL)取得了巨大的进步,在一系列不同的任务中达到或超过了人类水平,包括图像分类、语音识别和玩围棋等游戏。这些进步已经使得深度学习在安全关键系统中的广泛应用和部署,如自动驾驶汽车、恶意软件检测和飞机防撞系统。
不幸的是,深度学习系统经常在角落案例的情况下显示意外或不正确的行为。由于几个原因,如偏差的训练数据,过拟合,和不拟合的模型。在安全关键设置中,这种不正确的行为会导致灾难性的后果,比如自动驾驶汽车的致命碰撞。
测试深度学习系统的标准方法是收集并手动标记尽可能多的真实世界测试数据。一些深度学习系统,如谷歌自动驾驶汽车,也使用仿真来生成合成训练数据。然而,这种模拟是完全没有指导的,因为它不考虑目标深度学习系统的内部。因此,对于现实世界深度学习系统的大输入空间(例如,自动驾驶汽车的所有可能的道路条件),这些方法都不能希望覆盖所有可能的角案例情况的极小部分(如果有的话)。
最近关于对抗式深度学习的研究已经证明,通过对现有图像添加最小扰动,精心制作的合成图像可以欺骗最先进的深度学习系统。关键的想法是创建合成图像,通过神经网络模型对它们进行分类,使它们与原始图像不同,但人眼看起来还是一样的。虽然这种敌对的图像暴露了深度学习模型的一些错误行为,但这种方法的主要限制是必须将其扰动限制在微小的不可见更改或需要人工检查。而且,与已有的其他深度学习测试形式一样,对敌图像只覆盖了一小部分的深度学习系统逻辑。从本质上说,当前的机器学习测试实践发现不正确的情况类似于通过使用低代码覆盖率的测试输入来发现传统软件中的bug,因此不太可能发现很多错误情况。
大型深度学习系统的自动化系统测试的关键挑战有两个方面:(1)如何生成触发深度学习系统不同部分逻辑的输入,并发现不同类型的错误行为;(2)如何在不进行手动标记/检查的情况下识别深度学习系统的错误行为。
针对上述问题,Pei等人提出了首个基于白盒的差分测试技术DeepXplore,用于为深度学习系统生成测试输入。受到传统软件测试中的测试覆盖率的启发,作者提出“神经元覆盖率驱动测试输入生成”这一思想,指出所生成的测试输入应具有高神经元覆盖率。此外,输入需要揭示不同DNN模型之间的差异,并尽可能的与真实世界相似,联合优化算法迭代的使用梯度搜索来找到满足所有这些目标的修改的输入。但是,该方法还存在着很多问题,首先,在揭示不同DNN模型差异的过程中,该方法忽略了不同的DNN模型自身之间的差异,其次,为了提高神经元的覆盖率,该方法仅仅考虑了整体的神经元覆盖率,而忽略了DNN中各层神经元的覆盖率。
发明内容
为了能够有效地提高随机测试方法的性能,本发明提出了一种面向多目标的DNN模型的诱导输入生成的方法,在维持传统的DeepXplore算法性能的前提下,能够生成更加具有多样性的输入,使得神经元的覆盖率提高25%左右。本发明的技术方案包括如下步骤:
步骤1,根据被测DNN,确定种子图像。初始化未被标记的种子图像作为被测DNN的输入,即初始化候选测试用例集seed_set和测试用例集cov_tracker;
步骤2,遍历seed_set数据集,判断所有的DNN是否将这些种子图像识别为相同的类别,如果识别为相同的类别,转到步骤3,否则转到步骤9;
步骤3,计算需要优化的目标obj1,该目标表示单个DNN模型对同一输入所形成的不一致行为(差异行为);
步骤4,计算需要优化的目标obj2,即扩大神经元的数量,将第n个神经元的激活函数fn(x)作为本发明的优化目标obj2;
步骤5,计算需要优化的目标obj3,该目标表示各层中被激活的神经元的覆盖率与给定的期望值之间的平方之和,即神经元覆盖系数;
步骤6,建立需要优化的总目标obj,并计算该目标的梯度grad;
步骤7,根据目标obj的梯度grad,添加特定领域的约束条件,即调用函数grad=DOMAIN_CONSTRAINT(grad);
步骤8,预测种子图像x,如果所有的n个DNN中至少有两个DNN将这个种子图像x视为两个不同的类别,即转到步骤3计算各个DNN的差异行为的概率值,如果这些DNN所输出的差异行为的概率差异较大,则将x作为测试用例,转到步骤9;
步骤9,更新cov_tracker数据集,并输出诱导输入,算法结束。
进一步,所述步骤1的具体过程如下:
步骤1.1,根据前期的软件设计文档,确定待测的DNN和待测DNN的输入域范围(即具有合理输入的集合);
步骤1.2,根据步骤1.1确定的DNN,确定未被标记的种子图像x;
步骤1.3,初始化seed_set数据集,大小不限;初始化cov_tracker数据集,大小固定为100。
进一步,所述步骤3的具体过程如下:
步骤3.1,为了排除不同DNN模型之间的差异行为,本发明将一组种子图像x输入到被测DNN中,得到每个DNN模型预测x为某个类别c的初始类概率p0(x)[c];
步骤3.2,将这组种子图像添加干扰,即执行步骤7,再次输入到每个DNN模型,得到新的类概率p′0(x)[c];
步骤3.3,计算两者之间的差值,即diffk(x)[c]=|p′0(x)[c]-p0(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值;
步骤3.4,计算目标其中diffk(x)[c]和diffj(x)[c]表示第k个和第j个DNN模型的差异行为的概率值,λ1是平衡参数,用于平衡DNN中Fk≠j之间的目标项,即在最小化一个DNN对某个类标签的预测的同时,最大化其他DNN对该标签的预测,这样就可以让至少两个DNN作出有差异的判断。
进一步,所述步骤4的具体过程如下:
步骤4.1,遍历所有的DNN模型,选择一个未被激活的神经元n用于追踪被激活的神经元;
步骤4.2,将神经元n的输出,作为该DNN的输入,返回未被激活的神经元n;
步骤4.3,计算obj2=fn(x),其中fn(x)表示神经元n的输出,即根据步骤4.2确定的种子输入x(DNN的原始输入),产生输出,以激活该神经元。
进一步,所述步骤5的具体过程如下:
步骤5.1,计算每个DNN模型各层的神经元覆盖率,即假设一个DNN模型所包含的所有神经元的集合N={n1,n2,…},所有测试输入的集合为T={x1,x2,…},out(n,x)是一个函数,其返回值为神经元n对于测试输入x得到的类概率。给定的输入x时,DNN中神经元n的输出值,对于上述测试输入的集合T,设t是神经元激活的阈值,则神经元覆盖率Ncov(T,x)的计算公式如下:
在该步骤中,本发明将第i层的神经元总数记为n′i,被激活的神经元数量记为n″i,那么根据上述定义可求得每个DNN模型各层的神经元覆盖率为
步骤5.2,给定一个期望值μi,该参数表示第i层神经元覆盖率的期望值,通常取同一个种子图像x输入到每个DNN10次得到的各层神经元覆盖率的平均值。
步骤5.3,计算神经元覆盖系数这里的N为DNN模型的层数。
进一步,所述步骤6的具体过程如下:
步骤6.1,建立优化目标obj=obj1+λ2fn(x)-λ3NCC(x),其中λ2,λ3是两个超参数,λ2的意义在于在发现不同行为和神经元覆盖之间提供平衡,λ3的意义在于在优化神经元系数方面与前面两个目标obj1与fn(x)提供平衡。
步骤6.2,计算该目标的梯度
进一步,所述步骤7的具体过程如下:
步骤7.1:这一步本发明设置图像约束的条件,即通过人为的选择以下约束条件之一对种子图像进行修改。本发明所提供的约束条件有4种,分别为:(1)无约束,(2)灯光效果的模拟不同强度的光,(3)闭塞模拟攻击者可能阻塞部分相机,(4)由多个微小的黑色矩形闭塞模拟污垢对镜头的影响。如果选择(1),则不执行该部分操作;如果选择(2),则转到步骤7.2;如果选择(3),则转到步骤7.3;如果选择(4),则转到步骤7.4;
步骤7.2:这个约束条件只能使图像变暗或变亮而不改变其内容。具体来说,修改只能以相同的数量增加或减少所有像素值——增加或减少取决于平均值mean(G),其中G表示在梯度上升的每次迭代中计算的梯度。这里,mean(G)表示多维数组G中所有条目的平均值。
步骤7.3:这个约束条件模拟单个小矩形R(m×n个像素点)意外或故意遮挡相机镜头的效果。具体来说,本发明只对原始图像I应用从(i,j)到(i+m,j+n)的上升梯度Gi:i+m,j:j+n,其中Ii:i+m,j:j+n是原始图像I中插入单个小矩形R的位置。注意,本发明可以自由选择i和j的任意值,将矩形R放置在图像的任意位置。
步骤7.4:这个约束限制了修改,本发明的算法在每次梯度上升的迭代中只选择一个很小的m×m大小的斑点Gi:i+m,j:j+m,从G的左上角的(i,j)位置开始。如果该斑点的平均值mean(Gi:i+m,j:j+m)大于0,则设Gi:i+m,j:j+m=0,即本发明只允许降低像素值。与上面描述的第二个约束不同,这里需要选择多个位置(即,多个(i,j)对)来放置黑色矩形,模拟相机镜头上的污垢。
步骤7.5:由于本发明一开始所选用的种子输入xseed=x0满足定义的约束条件,即这些种子至少可以让两个DNN识别为不同的类别,因此经过i次迭代后的种子xi仍然满足约束条件,通过计算xi+1=xi+s·grad得到种子xi+1,其中s为梯度上升的步长。
进一步,所述步骤8的具体过程如下:
步骤8.1:将种子图像x输入到被测DNN中,得到DNN模型预测x为某个类别c的初始类概率p1(x)[c];
步骤8.2:将这组种子图像添加干扰,再次输入到被测DNN模型,得到p′1(x)[c];
步骤8.3:计算两者之间的差值,即为不同DNN对该种子图像产生的差异行为diffk(x)[c]=|p′1(x)[c]-p1(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值,如果有至少两个DNN将该图像识别为不同的类别,则转到步骤9;否则转到转到步骤3.3执行后续操作。
本发明的有益效果:
1、本发明构建了一种面向多目标的DNN模型的诱导输入生成的方法,用于获取更加具有多样性的诱导输入,从而提高不同DNN模型中各层神经元的覆盖率,进而提高整个DNN模型中神经元的覆盖率,同时维持了DeepXplore算法的性能,综上所述,该方法的神经元覆盖率和原方法相比提高了很多。
2、本发明旨在保证原有的算法性能的基础上,提高了不同DNN模型的神经元覆盖率也提高了所生成的诱导输入能够具有多样性,在实际的诱导输入过程中,测试人员往往更加关注的是所生成的诱导输入能否覆盖更多的神经元,其次关注的就是,这些诱导输入可以让多少神经元判定为多种不同的差异行为。所以,本发明将算法针对第一个生成差异输入的时间作为第一个评判标准,然后将神经元覆盖率作为第二个评判标准。
附图说明
图1是本方法的概要图。
图2是本发明方法的流程图。
具体实施方式
下面结合附图和实施案例对本发明作进一步说明,应指出的是,所描述的实施案例仅旨在便于对本发明的理解,而对其不起任何限定作用。
本发明以提高诱导输入的多样性为目的,即本发明所得到的诱导输入能够让不同的DNN模型识别为不同的类别,提供一种面向多目标的DNN模型的诱导输入生成的方法,原理图如图1所示,本发明的方法能在维持现有算法高性能的基础上,有效地提高DNN模型中神经元的覆盖率。为此验证本发明的方法,采用MINIST,ImageNet,Driving,VirusTotal和Drebin五个数据集仿真实验对其进行说明。
如图2所示,本发明提出的算法包含如下步骤:
步骤1,根据被测DNN,确定种子图像。初始化未被标记的种子图像作为被测DNN的输入,即初始化seed_set数据集和测试用例集cov_tracker;
步骤2,遍历seed_set数据集,判断所有的DNN是否将这些种子图像识别为相同的类别,如果识别为相同的类别,转到步骤3,否则转到步骤9;
步骤3,计算需要优化的目标obj1,该目标表示单个DNN模型对同一输入所形成的不一致行为(差异行为);
步骤4,计算需要优化的目标obj2,即扩大神经元的数量,将第n个神经元的激活函数fn(x)作为本发明的优化目标obj2;
步骤5,计算需要优化的目标obj3,该目标表示各层中被激活的神经元的覆盖率与给定的期望值之间的平方之和,即神经元覆盖系数;
步骤6,建立需要优化的总目标obj,并计算该目标的梯度grad;
步骤7,根据目标obj的梯度grad,添加特定领域的约束条件,即调用函数grad=DOMAIN_CONSTRAINT(grad);
步骤8,预测种子图像x,转到步骤2,如果有两个DNN将这个种子图像x视为两个不同的类别,则将x作为测试用例,转到步骤9;如果识别为相同的类别转到步骤3;
步骤9,更新cov_tracker数据集,并输出诱导输入,算法结束。
上述步骤1的具体步骤如下:
步骤1.1,根据前期的软件设计文档,确定待测的DNN和待测DNN的输入域范围(即具有合理输入的集合);
步骤1.2,根据步骤1.1确定的DNN,确定未被标记的种子图像x;
步骤1.3,初始化seed_set数据集,大小不限;初始化cov_tracker数据集,大小固定为100。
上述步骤3的具体步骤如下:
步骤3.1,为了排除不同DNN模型之间的差异行为,本发明将一组种子图像x输入到被测DNN中,得到每个DNN模型预测x为某个类别c的初始类概率p0(x)[c];
步骤3.2,将这组种子图像添加干扰,即执行步骤7,再次输入到每个DNN模型,得到p′0(x)[c];
步骤3.3,计算两者之间的差值,即diffk(x)[c]=|p′0(x)[c]-p0(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值;
步骤3.4,计算目标其中diffk(x)[c]和diffj(x)[c]表示第k个和第j个DNN模型的差异行为的概率值,λ1是平衡参数,用于平衡DNN中Fk≠j之间的目标项,,即在最小化一个DNN对某个标签的预测和最大化其他DNN对同一标签的预测。
上述步骤4的具体步骤如下:
步骤4.1,遍历所有的DNN模型,选择一个未被激活的神经元n用于追踪被激活的神经元;
步骤4.2,将神经元n的输出,作为该DNN的输入,返回未被激活的神经元n;
步骤4.3,计算obj2=fn(x),其中fn(x)表示神经元n的输出,即根据步骤4.2确定的种子输入x(DNN的原始输入),产生输出,以激活该神经元。
上述步骤5的具体步骤如下:
步骤5.1,计算每个DNN模型各层的神经元覆盖率,即假设一个DNN模型所包含的所有神经元的集合N={n1,n2,…},所有测试输入的集合为T={x1,x2,…},out(n,x)是一个函数,返回给定的输入x时,DNN中神经元n的输出值,设t是神经元激活的阈值,则神经元覆盖率Ncov(T,x)的计算公式如下:
在该步骤中,本发明将第i层的神经元总数记为n′i,被激活的神经元数量记为n″i,那么根据上述定义可求得每个DNN模型各层的神经元覆盖率为
步骤5.2,给定一个期望值μi,该参数表示第i层神经元覆盖率的期望值,通常取同一个种子图像x输入到每个DNN10次得到的各层神经元覆盖率的平均值。
步骤5.3,计算神经元覆盖系数
上述步骤6的具体步骤如下:
步骤6.1,建立优化目标obj=obj1+λ2fn(x)-λ3NCC(x),其中λ2,λ3是两个超参数,λ2的意义在于在发现不同行为和神经元覆盖之间提供平衡,λ3的意义在于在优化神经元系数方面与前面两个目标提供平衡。
步骤6.2,计算该目标的梯度
上述步骤7的具体步骤如下:
步骤7.1:选择图像约束的条件,即(1)无约束,(2)灯光效果的模拟不同强度的光,(3)闭塞模拟攻击者可能阻塞部分相机,(4)由多个微小的黑色矩形闭塞模拟污垢对镜头的影响。如果选择(1),则不执行该部分操作,如果选择(2),则转到步骤7.2,如果选择(3),则转到步骤7.3,如果选择(4),则转到步骤7.4;
步骤7.2:这个约束条件只能使图像变暗或变亮而不改变其内容。具体来说,修改只能以相同的数量增加或减少所有像素值——增加或减少取决于平均值mean(G),其中G表示在梯度上升的每次迭代中计算的梯度。这里,mean(G)表示多维数组G中所有条目的平均值。
步骤7.3:这个约束条件模拟单个小矩形R(m×n个像素点)意外或故意遮挡相机镜头的效果。具体来说,本发明只对原始图像I应用Gi:i+m,j:j+n,其中Ii:i+m,j:j+n是R在原始图像I中的位置。注意,本发明可以自由选择i和j的任意值,将矩形R放置在图像的任意位置。
步骤7.4:这个约束限制了修改,本发明的算法在每次梯度上升的迭代中只选择一个很小的m×m大小的斑点Gi:i+m,j:j+m,从G的左上角的(i,j)位置开始。如果该斑点的平均值mean(Gi:i+m,j:j+m)大于0,则设Gi:i+m,j:j+m=0,即本发明只允许降低像素值。与上面描述的第二个约束不同,这里需要选择多个位置(即,多个(i,j)对)来放置黑色矩形,模拟相机镜头上的污垢。
步骤7.5:由于种子输入xseed=x0始终满足定义的约束条件,因此经过i次迭代后的种子xi仍然满足约束条件,通过计算xi+1=xi+s·grad得到种子xi+1。
上述步骤8的具体步骤如下:
步骤8.1:将种子图像x输入到被测DNN中,得到DNN模型预测x为某个类别c的初始类概率p1(x)[c];
步骤8.2:将这组种子图像添加干扰,再次输入到被测DNN模型,得到p′1(x)[c];
步骤8.3:计算两者之间的差值,即为不同DNN对该种子图像产生的差异行为diffk(x)[c]=|p′1(x)[c]-p1(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值,如果有至少两个DNN将该图像识别为不同的类别,则转到步骤9;否则转到转到步骤3.3执行后续操作。
结果分析
本发明设置了λ3=0的条件下,在五个数据集MINIST,ImageNet,Driving,VirusTotal和Drebin进行了实验,分别对超参数λ1,λ2,迭代步长s进行了实验,具体的对比结果如下。
表1 λ3=0条件下,使用神经元覆盖作为优化目标的一部分时,诱导差异输入的多样性
本实验使用2000个随机选取的MNIST数据集种子输入。数值越高表示多样性越大。NC表示各设置下达到的神经元覆盖率(t=0.25)。
表2算法运行时,不同步长s下被测DNN生成第一个差异输入的时间
*图中灰色部分标记的是每个数据集的最快时间。
表3算法运行时,超参数λ1对被测DNN生成第一个差异输入的时间
*图中灰色部分标记的是每个数据集的最快时间。
表4算法运行时,超参数λ2对被测DNN生成第一个差异输入的时间
*图中灰色部分标记的是每个数据集的最快时间。
最终的实验结果显示,同比DeepXplore方法,本发明的方法,维持了相同水平的算法效率,提高了不同DNN模型的神经元覆盖率和差异行为的精度至少高出25%。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技术所创的等效方式或变更均应包含在本发明的保护范围之内。
Claims (9)
1.一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,包括如下步骤:
步骤1,根据被测DNN,确定种子图像,初始化未被标记的种子图像作为被测DNN的输入,即初始化候选测试用例集seed_set和测试用例集cov_tracker;
步骤2,遍历seed_set数据集,即所有的DNN应该将这些种子图像识别为相同的类别,如果识别为相同的类别,转到步骤3,否则转到步骤9;
步骤3,计算需要优化的目标obj1,该目标表示单个DNN模型对同一输入所形成的不一致行为(差异行为);
步骤4,计算需要优化的目标obj2,即扩大神经元的数量,将第n个神经元的激活函数fn(x)作为优化目标obj2;
步骤5,计算需要优化的目标obj3,该目标表示各层中被激活的神经元的覆盖率与给定的期望值之间的平方之和,即神经元覆盖系数;
步骤6,建立需要优化的总目标obj,并计算该目标的梯度grad;
步骤7,根据目标obj的梯度grad,添加约束条件,即调用函数grad=DOMAIN_CONSTRAINT(grad);
步骤8,预测种子图像x是否可以作为测试用例,如果是,转到步骤9;
步骤9,更新测试用例集cov_tracker,并输出诱导输入,算法结束。
2.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤1的具体过程如下:
步骤1.1,根据前期的软件设计文档,确定待测的DNN和待测DNN的输入域范围(即具有合理输入的集合);
步骤1.2,根据步骤1.1确定的DNN,确定未被标记的种子图像x;
步骤1.3,初始化seed_set数据集,大小不限;初始化cov_tracker数据集,大小固定为100。
3.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤3的具体过程如下:
步骤3.1,为了排除不同DNN模型之间的差异行为,将一组种子图像x输入到被测DNN中,得到DNN模型预测x为某个类别c的初始类概率p0(x)[c];
步骤3.2,将这组种子图像添加干扰,再次输入到被测DNN模型,得到p′0(x)[c];
步骤3.3,计算两者之间的差值,即diffk(x)[c]=|p′0(x)[c]-p0(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值;
步骤3.4,计算目标其中diffk(x)[c]和diffj(x)[c]表示第k个和第j个DNN模型的差异行为的概率值,λ1是平衡参数,用于平衡DNN中Fk≠j之间的目标项,即在最小化一个DNN对某个类标签的预测的同时,最大化其他DNN对该标签的预测,让至少两个DNN作出有差异的判断。
4.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤4的具体过程如下:
步骤4.1,遍历所有的DNN模型,选择一个未被激活的神经元n用于追踪被激活的神经元;
步骤4.2,将神经元n的输出,作为该DNN的输入,返回未被激活的神经元n;
步骤4.3,计算obj2=fn(x),其中fn(x)表示神经元n的输出,即根据步骤4.2确定的种子输入x(DNN的原始输入),产生输出,以激活该神经元。
5.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤5的具体过程如下:
步骤5.1,计算每个DNN模型各层的神经元覆盖率,即假设一个DNN模型所包含的所有神经元的集合N={n1,n2,…},所有测试输入的集合为T={x1,x2,…},out(n,x)是一个函数,返回给定的输入x时,DNN中神经元n的输出值,设t是神经元激活的阈值,则神经元覆盖率Ncov(T,x)的计算公式如下:
在该步骤中,将第i层的神经元总数记为n′i,被激活的神经元数量记为n″i,求得每个DNN模型各层的神经元覆盖率为
步骤5.2,给定一个期望值μi,该参数μi表示第i层神经元覆盖率的期望值,通常取同一个种子图像x输入到每个DNN10次得到的各层神经元覆盖率的平均值;
步骤5.3,计算神经元覆盖系数步骤5.3,计算神经元覆盖系数obj3=NCC(x)。
6.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤6的具体过程如下:
步骤6.1,建立优化目标obj=obj1+λ2fn(x)-λ3NCC(x),其中λ2,λ3是两个超参数,λ2的意义在于在发现不同行为和神经元覆盖之间提供平衡,λ3的意义在于在优化神经元系数方面与前面两个目标提供平衡;
步骤6.2,计算该目标的梯度
7.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤7的具体过程如下:
步骤7.1:这一步本发明设置图像约束的条件,即通过人为的选择以下约束条件之一对种子图像进行修改;本发明所提供的约束条件有4种,分别为:(1)无约束,(2)模拟不同强度的灯光效果,(3)闭塞模拟攻击者可能阻塞部分相机,(4)由多个微小的黑色矩形闭塞模拟污垢对镜头的影响;如果选择(1),则不执行该步骤,如果选择(2),则转到步骤7.2,如果选择(3),则转到步骤7.3,如果选择(4),则转到步骤7.4;
步骤7.2:此约束条件只能使图像变暗或变亮而不改变其内容,具体来说,修改只能以相同的数量增加或减少所有像素值——增加或减少取决于平均值mean(G),其中G表示在梯度上升的每次迭代中计算的梯度,这里,mean(G)表示多维数组G中所有条目的平均值;
步骤7.3:这个约束条件模拟单个小矩形R(m×n个像素点)意外或故意遮挡相机镜头的效果,具体来说,对原始图像I应用Gi:i+m,j:j+n,其中Ii:i+m,j:j+n是R在原始图像I中的位置,选择i和j的任意值,将矩形R放置在图像的任意位置;
步骤7.4:这个约束限制了修改,在每次梯度上升的迭代中只选择一个很小的m×m大小的斑点Gi:i+m,j:j+m,从G的左上角的(i,j)位置开始,如果该斑点的平均值mean(Gi:i+m,j:j+m)大于0,则设Gi:i+m,j:j+m=0,即只允许降低像素值;与上面描述的第二个约束不同,这里需要选择多个位置(即,多个(i,j)对)来放置黑色矩形,模拟相机镜头上的污垢;
步骤7.5:由于种子输入xseed=x0始终满足定义的约束条件,因此经过i次迭代后的种子xi仍然满足约束条件,通过计算xi+1=xi+s·grad得到种子xi+1,其中s为梯度上升的步长。
8.根据权利要求1所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在于,所述步骤8中预测种子图像x是否可以作为测试用例的方法是:如果有不同两个及以上DNN模型将种子图像x视为不同的类别,则将x作为测试用例。
9.根据权利要求8所述的一种面向多目标的DNN模型的诱导输入生成的方法,其特征在,不同DNN模型将种子图像x视为不同的类别的方法为:
步骤8.1:将种子图像x输入到被测DNN中,得到DNN模型预测x为某个类别c的初始类概率p1(x)[c];
步骤8.2:将这组种子图像添加干扰,再次输入到被测DNN模型,得到p′1(x)[c];
步骤8.3:计算两者之间的差值,即为不同DNN对该种子图像产生的差异行为diffk(x)[c]=|p1′(x)[c]-p1(x)[c]|,其中diffk(x)[c]表示第k个DNN模型所得到的差异行为的概率值,如果有至少两个DNN将该图像识别为不同的类别,则转到步骤9。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110671307.4A CN113468046B (zh) | 2021-06-17 | 2021-06-17 | 一种面向多目标的dnn模型的诱导输入生成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110671307.4A CN113468046B (zh) | 2021-06-17 | 2021-06-17 | 一种面向多目标的dnn模型的诱导输入生成的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468046A CN113468046A (zh) | 2021-10-01 |
CN113468046B true CN113468046B (zh) | 2024-05-14 |
Family
ID=77870254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110671307.4A Active CN113468046B (zh) | 2021-06-17 | 2021-06-17 | 一种面向多目标的dnn模型的诱导输入生成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468046B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185843B (zh) * | 2023-01-16 | 2023-12-08 | 天航长鹰(江苏)科技有限公司 | 基于神经元覆盖率引导的两阶段神经网络测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10783433B1 (en) * | 2019-04-22 | 2020-09-22 | Bell Integrator Inc. | Method for training and self-organization of a neural network |
CN111753985A (zh) * | 2020-06-28 | 2020-10-09 | 浙江工业大学 | 基于神经元覆盖率的图像深度学习模型测试方法与装置 |
CN111753986A (zh) * | 2020-06-28 | 2020-10-09 | 浙江工业大学 | 面向深度学习模型的动态测试方法及其装置 |
CN112052933A (zh) * | 2020-08-31 | 2020-12-08 | 浙江工业大学 | 基于粒子群优化的深度学习模型的安全性测试方法和修复方法 |
-
2021
- 2021-06-17 CN CN202110671307.4A patent/CN113468046B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10783433B1 (en) * | 2019-04-22 | 2020-09-22 | Bell Integrator Inc. | Method for training and self-organization of a neural network |
CN111753985A (zh) * | 2020-06-28 | 2020-10-09 | 浙江工业大学 | 基于神经元覆盖率的图像深度学习模型测试方法与装置 |
CN111753986A (zh) * | 2020-06-28 | 2020-10-09 | 浙江工业大学 | 面向深度学习模型的动态测试方法及其装置 |
CN112052933A (zh) * | 2020-08-31 | 2020-12-08 | 浙江工业大学 | 基于粒子群优化的深度学习模型的安全性测试方法和修复方法 |
Non-Patent Citations (1)
Title |
---|
深度神经网络测试研究综述;王赞;闫明;刘爽;陈俊洁;张栋迪;吴卓;陈翔;;软件学报;20200515(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113468046A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111753985B (zh) | 基于神经元覆盖率的图像深度学习模型测试方法与装置 | |
CN109492582B (zh) | 一种基于算法对抗性攻击的图像识别攻击方法 | |
CN105488528B (zh) | 基于改进自适应遗传算法的神经网络图像分类方法 | |
CN111401407A (zh) | 一种基于特征重映射的对抗样本防御方法和应用 | |
CN109902018A (zh) | 一种智能驾驶系统测试案例的获取方法 | |
CN111462131A (zh) | 一种注意力驱动图像分割的方法和设备 | |
CN108399420A (zh) | 一种基于深度卷积网络的可见光舰船虚警剔除方法 | |
CN112052933B (zh) | 基于粒子群优化的深度学习模型的安全性测试方法和修复方法 | |
CN112132014B (zh) | 基于非督导金字塔相似性学习的目标重识别方法及系统 | |
JP2021174556A (ja) | 自動運転における機能テスト方法に基づくセマンティックな敵対的生成 | |
CN113297572A (zh) | 基于神经元激活模式的深度学习样本级对抗攻击防御方法及其装置 | |
CN112381142B (zh) | 基于重要特征的具有可解释性对抗样本生成方法及系统 | |
Langford et al. | Enhancing learning-enabled software systems to address environmental uncertainty | |
CN112115761A (zh) | 自动驾驶汽车视觉感知系统漏洞检测的对抗样本生成方法 | |
CN113468046B (zh) | 一种面向多目标的dnn模型的诱导输入生成的方法 | |
Casper et al. | Red teaming deep neural networks with feature synthesis tools | |
Yu et al. | A white-box testing for deep neural networks based on neuron coverage | |
CN115909027B (zh) | 一种态势估计方法及装置 | |
CN116665174A (zh) | 面向视觉感知算法的危险测试用例生成方法及相关设备 | |
CN112926052A (zh) | 基于遗传算法的深度学习模型安全漏洞测试和修复方法、装置和系统 | |
CN117454187B (zh) | 一种基于频域限制目标攻击的集成模型训练方法 | |
Casper | Practical Diagnostic Tools for Deep Neural Networks | |
Arnold et al. | Recognising Affordances in Predicted Futures to Plan With Consideration of Non-Canonical Affordance Effects | |
Luo et al. | Defective Convolutional Networks | |
CN117197589B (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 |