CN112346956A - 一种针对深度学习程序进行神经元变异的测试方法 - Google Patents
一种针对深度学习程序进行神经元变异的测试方法 Download PDFInfo
- Publication number
- CN112346956A CN112346956A CN201910724153.3A CN201910724153A CN112346956A CN 112346956 A CN112346956 A CN 112346956A CN 201910724153 A CN201910724153 A CN 201910724153A CN 112346956 A CN112346956 A CN 112346956A
- Authority
- CN
- China
- Prior art keywords
- neuron
- deep learning
- test
- weight
- neurons
- 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.)
- Pending
Links
- 210000002569 neuron Anatomy 0.000 title claims abstract description 41
- 238000010998 test method Methods 0.000 title claims abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000013135 deep learning Methods 0.000 claims abstract description 15
- 238000013528 artificial neural network Methods 0.000 claims abstract description 10
- 230000003247 decreasing effect Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims abstract description 7
- 230000004913 activation Effects 0.000 claims abstract description 5
- 230000008859 change Effects 0.000 claims description 3
- 230000000873 masking effect Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 abstract description 56
- 230000035772 mutation Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 6
- 238000013522 software testing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000288906 Primates Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
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
- 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/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种针对深度学习程序进行神经元变异的测试方法,其特征是通过对已经训练好的深度学习神经网络中的神经元进行变异,主要包括:改变连接权重、增减单个神经元、修改某个神经元的偏移量、修改某个神经元的激活函数、屏蔽输入的某个维度等方式,用变异后的深度学习程序变异体来评估测试用例集的有效性,变异体杀死率也可以作为测试充分性的度量,用来指导生成更有效的测试用例。
Description
技术领域
本发明属于软件工程中软件测试领域,也属于计算机工程的人工智能领域。软件测试主要依托黑盒、白盒等技术对待测试软件的有效性、安全性、健壮性、易用性等特性进行测试;人工智能主要是研究如何让计算机具有类似人的智能的问题,目前我们讨论的主要是弱人工智能,而深度学习是人工智能领域中的一个分支,也是最具有应用前景的解决方案。
背景技术
软件测试是软件开发和维护过程中保障软件质量的重要手段,其中测试用例设计是软件测试中的核心问题,根据测试人员是否依据源码来设计测试用例,可以把测试分为白盒测试和黑盒测试。基于源代码的测试称为白盒测试,和其它软件测试方法相比,白盒测试技术更容易发现软件故障。常用的软件测试方法有覆盖测试技术、域测试技术、符号测试技术、插装测试技术和变异测试技术等。黑盒测试是从软件的外部对软件实施测试,也常形容为闭着眼睛的测试,主要优点是测试用例符合程序或系统的预期使用,很自然,易于理解。常用的黑盒测试有等价类划分法、因果图法、正交实验法、边值分析法、判定表驱动法、功能测试、状态测试等。目前测试人员一般借助控制流或数据流分析来定义测试充分性准则,如分支覆盖率、Define-use覆盖率等,并用于指导随后的测试用例设计。变异测试(mutation testing)则从另一个角度对测试充分性进行了度量,该测试技术可用于评估和改进测试用例集(testsuite)的测试充分性。具体来说,测试人员首先根据被测程序特征设计变异算子(mutation operator),变异算子一般在符合语法前提下仅对被测程序作微小改动。然后对被测程序应用变异算子可生成大量变异体(mutant),在识别出等价变异体(equivalent mutant)后,若已有测试用例不能杀除所有非等价变异体,则需要额外设计新的测试用例,并添加到测试用例集中,以提高测试充分性。除了可用于测试用例集的充分性评估,变异测试也可以通过采用变异缺陷来模拟被测软件的真实缺陷,从而对研究人员提出的测试方法的有效性进行辅助评估。例如Andrews等人和Do等人均在他们的实证研究中,证实了变异算子生成的变异缺陷与真实缺陷在有效性评估中效果相似。上述变异测试分析有时又简称为变异分析(mutation analysis)。
深度学习是机器学习领域一个新的研究方向,近年来在语音识别、计算机视觉等多类应用中取得突破性的进展。其动机在于建立模型模拟人类大脑的神经连接结构,在处理图像、声音和文本这些信号时,通过多个变换阶段分层对数据特征进行描述,进而给出数据的解释。以图像数据为例,灵长类的视觉系统中对这类信号的处理依次为:首先检测边缘、初始形状,然后再逐步形成更复杂的视觉形状,同样地,深度学习通过组合低层特征形成更加抽象的高层表示、属性类别或特征,给出数据的分层特征表示。深度学习之所以被称为“深度”,是相对支撑向量机(support vector machine,SVM)、提升方法(boosting)、最大熵方法等“浅层学习”方法而言的,深度学习所学得的模型中,非线性操作的层级数更多。浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示,从而更有利于分类或特征的可视化。
深度学习的概念最早由多伦多大学的Hinton等于2006年提出,指基于样本数据通过定的训练方法得到包含多个层级的深度网络结构的机器学习过程。传统的神经网络随机初始化网络中的权值,导致网络很容易收敛到局部最小值,为解决这一问题,Hinton提出使用无监督预训练方法优化网络权值的初值,再进行权值微调的方法,拉开了深度学习的序幕。深度学习所得到的深度网络结构包含大量的单一元素(神经元),每个神经元与大量其他神经元相连接,神经元间的连接强度(权值)在学习过程中被修改并决定网络的功能。通过深度学习得到的深度网络结构符合神经网络的特征,因此深度网络就是深层次的神经网络,即深度神经网络(deep neural networks,DNN)。
发明目的
本专利所要解决的问题是:对深度学习系统程序进行神经元的变异,以此来评估测试数据集的有效性,也可以作为测试充分性(要求测试数据集杀死所有的变异体)的度量,用来指导生成更有效的测试用例。
发明内容
本发明的技术方案为:通过对深度学习的神经网络中的神经元进行变异,用众多变异后的深度学习程序变异体集合来评估测试用例集的有效性,选定的测试用例集能“杀死”越多比例的程序变异体,则用例集的有效性越好。也可以要求测试数据集杀死所有的变异体,那么我们的技术也可以用来指导生成更多更有效的测试用例。
附图说明
图1:深度学习模型的神经元网络整体示意图
图2:神经元模型
具体实施方法
本方法针对深度学习的神经网络程序进行神经元变异,主要包括以下几个平行的步骤:改变连接权重、增加或减少单个神经元、修改某个神经元的偏移量、修改某个神经元的激活函数、屏蔽输入的某个维度。
1、改变两个神经元之间的连接权重值,有两种方式改变权重值:(1)对非0的权重,按照一定的最低比例(如10%以上,控制该比例是防止权重值改变的太小,对模型的结果造成不了显著的影响)增加或减少权重;(2)改变权重的正负号,比如权重值w>0,则可以把权重值修改-w;(3)把权重值w置为0,相当于剪断某两个神经元之间的连接。
2、增加或减少单个神经元,随机地选取神经网络的隐藏层中的某一层,增加或者减少某个神经元,增加神经元的时候也随机增加他与相邻连接神经元的权重值,相应地,减少某个神经元时也要删除它已有的权重值和偏移值。
3、修改某个神经元的偏移量,为了达到显著影响模型的效果,也规定需要达到最低比例,比如10%。
4、修改某个神经元的激活函数,常用的激活函数有Sigmoid、Tanh、ReLU等。
5、屏蔽输入的某个维度,把某个维度的输入置为恒0.
6、当对一个测试数据集的有效性进行评估时,需要使用测试数据集对每一个变异体进行测试,最终该数据集杀死变异体(mutants)的比例越高,则该测试数据集的有效性越高。
7、如果把这项技术用来作为测试充分性的度量并且指导生成更多的测试用例,则需要测试用例集能杀死百分之百的变异体,否则就想方设法运用各种技术不断增加新的测试用例,直到能杀死百分之百为止,其中如果某次增加的新的测试用例没有杀死之前未杀死的变异体,则新的测试用例不添加到原始测试集里。
Claims (4)
1.一种针对深度学习程序进行神经元变异的测试方法,其特征是通过对深度学习的神经网络中的神经元进行变异,变异方式主要包括:改变连接权重、增加或减少单个神经元、修改某个神经元的偏移量、修改某个神经元的激活函数、屏蔽输入的某个维度等方式。
2.根据权利要求1所述的改变连接权重,主要是通过改变某两个神经元之间的连接权重值实现的,有两种方式改变权重值:按照一定比例(如百分之10以上)增加或减少权重;让权重变号,在正、负之间改变;把权重值设为0,相当于剪断神经元之间的连接。
3.根据权利要求1所述的增加或减少单个神经元,是指选取神经网络的隐藏层中的某一层中,增加或者减少某个神经元,增加神经元的时候也随机增加他与相邻连接神经元的权重。
4.根据权利要求1所述的屏蔽输入的某个维度,是指把某个维度的输入置为无效,比如不管真实输入是什么,输入到神经网络的都恒为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910724153.3A CN112346956A (zh) | 2019-08-07 | 2019-08-07 | 一种针对深度学习程序进行神经元变异的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910724153.3A CN112346956A (zh) | 2019-08-07 | 2019-08-07 | 一种针对深度学习程序进行神经元变异的测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112346956A true CN112346956A (zh) | 2021-02-09 |
Family
ID=74366516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910724153.3A Pending CN112346956A (zh) | 2019-08-07 | 2019-08-07 | 一种针对深度学习程序进行神经元变异的测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112346956A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238957A (zh) * | 2021-05-28 | 2021-08-10 | 北京理工大学 | 智能化场景下流量监测系统的测试样本生成方法 |
CN116361190A (zh) * | 2023-04-17 | 2023-06-30 | 南京航空航天大学 | 一种基于神经元相关性指导的深度学习变异测试方法 |
-
2019
- 2019-08-07 CN CN201910724153.3A patent/CN112346956A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238957A (zh) * | 2021-05-28 | 2021-08-10 | 北京理工大学 | 智能化场景下流量监测系统的测试样本生成方法 |
CN116361190A (zh) * | 2023-04-17 | 2023-06-30 | 南京航空航天大学 | 一种基于神经元相关性指导的深度学习变异测试方法 |
CN116361190B (zh) * | 2023-04-17 | 2023-12-05 | 南京航空航天大学 | 一种基于神经元相关性指导的深度学习变异测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112149316B (zh) | 基于改进的cnn模型的航空发动机剩余寿命预测方法 | |
CN106555788B (zh) | 基于模糊处理的深度学习在液压装备故障诊断中的应用 | |
CN105046277B (zh) | 特征显著性在图像质量评价中的鲁棒机理研究方法 | |
Hacohen et al. | Let’s agree to agree: Neural networks share classification order on real datasets | |
CN109800875A (zh) | 基于粒子群优化和降噪稀疏编码机的化工故障检测方法 | |
CN109186973A (zh) | 一种无监督深度学习网络的机械故障诊断方法 | |
CN108665005A (zh) | 一种利用dcgan提高基于cnn图像识别性能的方法 | |
CN110232280A (zh) | 一种基于树结构卷积神经网络的软件安全漏洞检测方法 | |
CN109389171B (zh) | 基于多粒度卷积降噪自动编码器技术的医疗图像分类方法 | |
Gai et al. | A parameter-optimized DBN using GOA and its application in fault diagnosis of gearbox | |
CN103927550B (zh) | 一种手写体数字识别方法及系统 | |
CN109813542A (zh) | 基于生成式对抗网络的空气处理机组的故障诊断方法 | |
CN105678381A (zh) | 一种性别分类网络训练方法、性别分类方法及相关装置 | |
CN112346956A (zh) | 一种针对深度学习程序进行神经元变异的测试方法 | |
CN108763096A (zh) | 基于深度信念网络算法支持向量机的软件缺陷预测方法 | |
CN110245232A (zh) | 文本分类方法、装置、介质和计算设备 | |
CN112508242A (zh) | 一种风力发电机轴承故障定位及分类模型的构建方法 | |
CN115687925A (zh) | 针对不平衡样本的故障类型识别方法及装置 | |
CN114997211A (zh) | 一种基于改进对抗网络和注意力机制的跨工况故障诊断方法 | |
CN117056678B (zh) | 一种基于小样本的机泵设备运行故障诊断方法及装置 | |
CN113850013B (zh) | 一种舰船辐射噪声分类方法 | |
Liu et al. | Bearing fault diagnosis based on particle swarm optimization fusion convolutional neural network | |
CN114295967A (zh) | 一种基于迁移神经网络的模拟电路故障诊断方法 | |
CN110347579B (zh) | 基于神经元输出行为模式的深度学习测试用例的选择方法 | |
CN114565051B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210209 |