CN110162475B - 一种基于深度迁移的软件缺陷预测方法 - Google Patents
一种基于深度迁移的软件缺陷预测方法 Download PDFInfo
- Publication number
- CN110162475B CN110162475B CN201910446546.2A CN201910446546A CN110162475B CN 110162475 B CN110162475 B CN 110162475B CN 201910446546 A CN201910446546 A CN 201910446546A CN 110162475 B CN110162475 B CN 110162475B
- Authority
- CN
- China
- Prior art keywords
- source code
- defect prediction
- image
- matrix
- file
- 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
- 230000007547 defect Effects 0.000 title claims abstract description 84
- 238000013508 migration Methods 0.000 title claims abstract description 51
- 230000005012 migration Effects 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims abstract description 21
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 238000007794 visualization technique Methods 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 31
- 239000003086 colorant Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000002349 favourable effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 17
- 238000013135 deep learning Methods 0.000 description 14
- 238000009826 distribution Methods 0.000 description 13
- 230000002950 deficient Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000013526 transfer learning Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Human Resources & Organizations (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于深度迁移的软件缺陷预测方法,包括:(1)采用可视化方法将源项目和目标项目的源代码文件转化为图像文件;(2)构建深度迁移网络,其中,所述深度迁移网络包含提取单元和软件缺陷预测单元,并在特征提取单元采用自注意力机制;(3)根据采用自注意力机制提取的训练样本特征和测试样本特征之间的最大均值差异,和深度迁移网络的预测输出与样本的真值标签自检的交叉熵构建损失函数,并以损失函数收敛为目标,对深度迁移网络进行训练,以获得软件缺陷预测模型;(4)应用时,采用可视化方法将待检测源代码文件转化为图像,并将图像输入至软件缺陷预测模型,经计算,输出待检测源代码文件的缺陷预测结果。
Description
技术领域
本发明属于软件缺陷预测领域,具体涉及一种基于深度迁移的软件缺陷预测方法。
背景技术
软件缺陷预测可分为项目内缺陷预测和跨项目缺陷预测。项目内缺陷预测需要大量该项目内已知是否有缺陷的样本,如文件、类和函数等,将其作为训练集,结合机器学习的方法生成分类器后对目标样本进行预测。跨项目缺陷预测则能够根据其他相关项目的样本对目标项目进行缺陷预测。现实开发过程中由于目标项目太新或者获取标签的成本过高,导致目标项目内训练样本过少,常常需要进行跨项目缺陷预测。
目前缺陷预测方法主要有基于传统机器学习和基于深度学习这两种,前者需要利用特征工程对源代码文件进行特征提取后进一步采用机器学习分类模型进行预测,后者直接将源代码文件作为深度学习模型的输入从而端到端地输出缺陷预测结果。其中由于深度学习在许多领域的出色表现,如何利用深度学习进行软件缺陷预测成为了当前的研究热点。利用深度学习进行缺陷预测的难点在于:一是如何将缺陷文件输入到深度模型中;二是由于目标项目与源项目开发过程的不同,两者样本分布往往存在差异,直接影响预测效果,怎样减少这方面的障碍。
为了将缺陷样本输入到深度模型中,目前最主要的方法是利用语法分析树(AST)对源代码文件进行关键词提取,将代码文件转换为语法序列输入到深度模型中。Wang等人利用深度置信网络对语法序列进行特征提取,然后构建基于机器学习的分类器进行分类从而进行缺陷预测;相似地,Li等人利用基于卷积神经网络的深度模型对语法序列提取特征后与原传统的人工提取特征一起作为机器学习模型的输入进行缺陷预测;Dam等人利用长短记忆网络作为深度模型,将语法序列作为输入后直接获得预测结果。以上方法都基于利用AST提取的语法序列进行缺陷预测操作,获得AST信息需要额外的工具,增加操作的困难并且降低了效率。
另外,为了解决跨域样本分布差异较大的问题,迁移学习被引入到深度学习中,称为深度迁移学习。深度迁移学习方法主要可以分为基于映射和基于对抗两种,前者将源项目和目标项目的样本通过深度模型映射到同一个潜在的特征空间使得两者样本分布变得相似,后者通过样本生成器和判别器的对抗学习策略使得最终的样本分布相似,两者都可以解决源项目与目标项目样本分布不同的问题。Long等人利用最大均值差异(MMD)来衡量两个域之间样本分布的差异并在已有深度网络结构上根据计算MMD的策略不同提出了DAN和JAN两种深度迁移模型;Ajakan等人通过在损失函数中添加域适应正则化项提出了一种基于对抗的深度迁移学习方法。但是上述方法均未被用与软件缺陷的预测。
总的来说,目前的软件缺陷预测方法存在以下几个问题:在软件缺陷预测中,如何发挥深度学习强大的表征能力,从而提升对缺陷预测问题更好的解决;迁移学习对于跨项目缺陷预测十分重要,如何使得迁移学习方法充分利用源项目的有用信息,从而提升对目标项目的缺陷预测性能。
发明内容
鉴于上述,本发明提出了一种基于深度迁移的软件缺陷预测方法,该方法能够较准确地实现端到端的软件缺陷预测。
本发明的技术方案为:
一种基于深度迁移的软件缺陷预测方法,包括以下步骤:
(1)采用可视化方法将源项目和目标项目的源代码文件转化为图像文件,转化时,针对源项目的源代码文件,采用三原色排列组合策略对图像进行扩充,形成训练集;将目标项目的源代码文件转化为图像文件作为测试集;
(2)构建深度迁移网络,其中,所述深度迁移网络包含用于提取特征的特征提取单元和用于软件缺陷预测的软件缺陷预测单元,并在特征提取单元采用自注意力机制;
(3)根据采用自注意力机制提取的训练样本特征和测试样本特征之间的最大均值差异,和深度迁移网络的预测输出与样本的真值标签自检的交叉熵构建损失函数,并以损失函数收敛为目标,采用训练集和测试集对深度迁移网络进行训练,当满足训练截止条件时,网络参数确定,将获得软件缺陷预测模型;
(4)应用时,采用可视化方法将待检测源代码文件转化为图像,并将图像输入至软件缺陷预测模型,经计算,输出待检测源代码文件的缺陷预测结果。
与现有技术相比,本发明具有的有益效果为:
本发明采用可视化方法将源代码文件转化为图像文件,并采用三原色排列组合策略实现对图像的扩充,巧妙地实现了对源代码文件的转化,并采用注意力机制集中提取有效特征,提升了数据的准确性,同时引入测试集进行比对训练,进一步提升了软件缺陷预测模型的准确性。利用该软件缺陷预测模型能够准确地实现对软件缺陷的预测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的基于深度迁移的软件缺陷预测方法的流程图;
图2是实施例提供的可视化方法的流程图;
图3是深度迁移网络的训练及利用训练好的深度迁移网络进行软件缺陷检测的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
参见图1,本实施例提供的基于深度迁移的软件缺陷预测方法包括模型建立阶段和应用阶段。
模型建立阶段主要是构建深度迁移网络,并构建训练集和测试集,利用训练集和测试集对深度迁移网络进行训练,以获得软件缺陷预测模型。具体过程如下:
S101,采用可视化方法将源项目和目标项目的源代码文件转化为图像文件。
本实施例中,源项目和目标项目对应的源代码文件均作为样本用于对深度迁移网络的训练,具体地,采用可视化方法将源代码文件转化为图像文件的过程包括:
首先,将源代码转化为二进制表达序列,并将二进制表达序列转换为八进制向量,再将八进制向量转化为0~255之间的文件向量file(xi),其中,0≤xi≤255,i为索引号,取决于源代码文件的大小;
然后,将R、G、B三原色按照不同的排列顺序形成RGB、RBG、GBR、GRB、BGR和BRG六种排列方式,命名为三原色排列组合策略;
最后,按照三原色排列组合策略中至少一种排列方式将文件向量转化为预测尺寸的图像。
按照三原色排列组合策略中的排列方式将文件向量转化为图像时,是将文件向量file(x0,x1,…,xn)中以三个相邻数字为一组,该组中的三个数字赋值给R、G、B,三个相邻数字构成一个像素点,这样即将源代码文件转化为了图像。举例说明,假设文件向量file=(1,74,85,46,56,32,85,……),按照三原色排列组合策略中的BGR排列方式进行转化,则第一个像素点的B、G、R分别为1,74,85,即第一个像素点为(1,74,85),第二个像素点为(46,56,32)。
为了扩充训练样本的数量,本发明中,针对源项目的源代码文件,采用三原色排列组合策略中六种排列方式将文件向量转化为预测尺寸的图像,以实现对图像的扩充。这样可以将同一个源代码文件转化为六张不同的彩色图像,达到对原数据集进行扩充。本发明选取六种不同的三原色排列组合作为代码文件向量转换为彩色图像时的输入顺序,扩充了训练集,丰富了源项目数据的信息表达。
正常应用时和不需要扩充样本数量时,即针对目标项目的源代码文件和待检测源代码文件,可以采用三原色排列组合策略中任意一种排列方式将文件向量转化为预测尺寸的图像。
在对源代码文件进行转化时,图像的预设尺寸是实验探究获得的,具体地,预测尺寸设定规则为:
其中,生成图像长度取决于根据源代码文件大小。
这样就可以将源代码文件转化为图像,这样巧妙地将对源代码文件的检测问题转化为了对图像的检测问题。在图像检测领域,深度学习网络一种非常智能的检测工具。本发明中也将构建适合的深度学习网络,利用该深度学习网络对图像进行检测,以实现对源代码文件的缺陷检测。
本发明基于神经网络构建了深度迁移网络,其中,所述深度迁移网络包含用于提取特征的特征提取单元和用于软件缺陷预测的软件缺陷预测单元,并在特征提取单元采用自注意力机制。
具体地,所述深度迁移网络包括:
特征提取单元,其包括依次连接的卷积层conv1、卷积层conv2、卷积层conv3、卷积层conv4、卷积层conv5;
注意力层,其包含有自注意力机制,作用于特征提取单元的任意卷积层上,用于对有利于分类的特征进行加权;
软件缺陷预测单元,其包括依次连接的全连接层fc6、全连接层fc7、全连接层fc8、全连接层fc9,且全连接层fc6的输入连接卷积层conv5的输出,全连接层fc9作为二分类的输出层。
其中,自注意力机制包括:
(a)对于特征提取单元输出的特征矩阵X,进行卷积核为1*1的卷积操作,获得矩阵F(x),G(x),H(x),其中,矩阵H(x)尺寸与特征矩阵X相同,矩阵F(x),G(x)的深度变为特征矩阵X的1/8;例如特征矩阵X的尺寸为(THW*1024),则F(x),G(x)的尺寸为(THW*128),而H(x)的尺寸为(THW*1024)。
(b)将矩阵F(x)的转置矩阵F(x)T与矩阵G(x)相乘,获得自相关矩阵S(x):
S(xij)=F(xi)T*G(xj)
其中,F(xi)T表示矩阵F(x)中第i列,G(xj)表示矩阵G(x)中第j列,S(xij)表示图像中位置(i,j)处像素点与所有像素点在特征上的自相关特征值,形成自相关矩阵S(x);
(c)对自相关矩阵S(x)进行softmax处理,以获得每个自相关特征值在0到1范围内的注意力权重αj,i,并形成注意力权重矩阵Oj:
其中,H(xi)表示矩阵H(x)中第i列;
(d)通过注意力层输出加权后的特征矩阵XAttention:
XAttention=(O1,O2,…,ON),其中N=h*w
生成h*w的向量,输入全连接层。
fl(x)=max(0,x)
本模型中包含四层全连接层(fc6-fc9),其中(fc6-fc8)为AlexNet的全连接层,由于缺陷预测实质上是一个二分类问题,因此fc9为得到二分类结果而设。
在构建完网络结构后,还需要构建损失函数,具体地,根据采用自注意力机制提取的训练样本特征和测试样本特征之间的最大均值差异,和深度迁移网络的预测输出与样本的真值标签自检的交叉熵构建损失函数。即深度迁移网络的损失函数L为:
L=LClassification+λ*LMMD
其中,λ为人为设定的惩罚系数,经实验发现设为0.5时效果较好;
交叉熵损失函数LClassification为:
其中,Θ代表该深度迁移网络中所有的参数,n0为样本总个数,na为样本类标种类的个数,φ(·)表示深度迁移网络所隐藏的非线性表达式,表示类标应该为a的第i个样本的深度迁移网络的输出预测值,为第i个样本类标为a的真值标签,F(·)为交叉熵计算函数;
最大均值差异损失函数LMMD为:
其中,src为训练集,tar为测试集,n1为训练集中样本个数,n2为测试集中样本个数,srci为训练集第i个样本,tari为测试集中第i个样本,dist(·)为最大值差异函数。
在训练的过程中,通过调整模型参数使得源项目数据集和目标数据集生成的特征所表示的样分布尽可能相似,两者各层最大均值差异之和尽可能小。
MMD算法是用于双样本检测的一种度量方法,其用于判断两个分布p和q是否相同。它的基本假设是:对于所有以分布生成的样本空间为输入的函数f,如果两个分布生成的足够多的样本在f上的对应的像的均值都相等,那么可以认为这两个分布是同一个分布。在训练的过程中,通过调整模型参数使得源项目数据集和目标数据集生成的特征所表示的样分布尽可能相似,两者各层最大均值差异之和尽可能小。
在构建完深度迁移网络结构和损失函数L时,以损失函数L收敛为目标,采用训练集和测试集对深度迁移网络进行训练,根据该损失函数对整个深度迁移网络进行参数调整,当满足训练截止条件(可以是达到预设的迭代次数)时,网络参数确定,获得对目标项目预测效果较好的软件缺陷预测模型。
在训练前,还需要对训练样本和测试样本进行缩放得到256*256尺寸的图片并从中随机切割出224*224的图像作为输入,并将训练样本和测试样本同时输入到前五层卷积层(conv1-conv5),卷积层的结构与AlexNet的前五层卷积层相同,作为特征提取网络,对原样本进行特征提取。
该软件缺陷预测模型能够充分利用深度学习强大的表征能力,获得深层次的代码语义和结构特征,并结合迁移学习机制增加特征的在项目之间的可迁移性,最终能够优化跨项目软件缺陷预测性能。
应用时,采用上述的可视化方法将待检测源代码文件转化为图像,并将图像输入至软件缺陷预测模型,经计算,输出待检测源代码文件的缺陷预测结果。
本发明将需要检测的代码文件只需要转换为图像作为软件缺陷预测模型的输入,而不是利用AST获取的语法序列作为输入,不需要额外的辅助工具。这是首次利用可视化方法进行软件缺陷预测,实现对每个目标待测样本进行跨项目缺陷预测的任务。
通过可视化方法将源代码文件转化为彩色图像的形式作为深度学习模型的输入,对源代码文件进行语义和结构的有效表达的同时提供了一种将深度学习应用至软件缺陷预测领域的新思路。并且利用对三原色输入顺序进行排列组合的方法达到数据扩充的目的,解决了由于新的项目带类标样本数量过小而带来的训练集过小无法进行有效模型训练的问题。另外,结合自注意力机制改进了深度迁移模型,对源项目与目标项目样本分布差异缩小的同时尽可能充分地利用源项目能提供的所有信息,构建一个更加有效的端到端的软件缺陷预测模型,对目标待测样本进行缺陷预测时调用该模型可以进行有效的缺陷预测。利用F-measure作为评价指标来衡量其性能。F-measure的计算方法为:
F-measure=(2*P*R)/(P+R)
P=TP/(TP+FP)
R=TP/(TP+FN)
其中,TP为真正样本数,代表预测为有缺陷的样本中真的含有缺陷的样本数;FP为假正样本数,代表预测为有缺陷的样本中实际上不含缺陷的样本数;FN为假反样本数,代表预测为无缺陷的样本中实际上含有去缺陷的样本数。在此基础上可以计算出,P为分类的准确率,指预测为有缺陷的样本中真实为有缺陷的样本比例,该值越高代表分类器越准;R为分类的召回率,指真实为有缺陷的样本中被预测为有缺陷的样本比例,该值越高代表有缺陷的样本被发现得越多。F-measure为准确率和召回率的调和平均值,该值越高则说明利用该组权重和阈值构成的协同分类器对有缺陷样本分得又多又准,即预测性能越好。
该软件缺陷预测方法对共计10个软件项目进行测试,在项目内缺陷预测实验中,平均F-measure为0.642,接近目前最好的基于深度学习的软件缺陷预测方法;在跨项目缺陷预测实验中,平均的F-measure为0.618,要明显优于其他基于深度学习和迁移学习的跨项目缺陷预测方法。因此综合实验结果表明,该缺陷预测方法能够完成端到端地软件缺陷预测任务,并有效提高预测的效果。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于深度迁移的软件缺陷预测方法,包括以下步骤:
(1)采用可视化方法将源项目和目标项目的源代码文件转化为图像文件,转化时,针对源项目的源代码文件,采用三原色排列组合策略对图像进行扩充,形成训练集;将目标项目的源代码文件转化为图像文件作为测试集;其中,采用可视化方法将源代码文件转化为图像文件的过程包括:
首先,将源代码转化为二进制表达序列,并将二进制表达序列转换为八进制向量,再将八进制向量转化为0~255之间的文件向量file(xi),其中,0≤xi≤255,i为索引号,取决于源代码文件的大小;然后,将R、G、B三原色按照不同的排列顺序形成RGB、RBG、GBR、GRB、BGR和BRG六种排列方式,命名为三原色排列组合策略;最后,按照三原色排列组合策略中至少一种排列方式将文件向量转化为预测尺寸的图像;
(2)构建深度迁移网络,其中,所述深度迁移网络包含用于提取特征的特征提取单元和用于软件缺陷预测的软件缺陷预测单元,并在特征提取单元采用自注意力机制;
(3)根据采用自注意力机制提取的训练样本特征和测试样本特征之间的最大均值差异,和深度迁移网络的预测输出与样本的真值标签自检的交叉熵构建损失函数,并以损失函数收敛为目标,采用训练集和测试集对深度迁移网络进行训练,当满足训练截止条件时,网络参数确定,将获得软件缺陷预测模型;
(4)应用时,采用可视化方法将待检测源代码文件转化为图像,并将图像输入至软件缺陷预测模型,经计算,输出待检测源代码文件的缺陷预测结果。
2.如权利要求1所述的基于深度迁移的软件缺陷预测方法,其特征在于,针对源项目的源代码文件,采用三原色排列组合策略中六种排列方式将文件向量转化为预测尺寸的图像,以实现对图像的扩充。
3.如权利要求1所述的基于深度迁移的软件缺陷预测方法,其特征在于,针对目标项目的源代码文件和待检测源代码文件,采用三原色排列组合策略中任意一种排列方式将文件向量转化为预测尺寸的图像。
5.如权利要求1所述的基于深度迁移的软件缺陷预测方法,其特征在于,所述深度迁移网络包括:
特征提取单元,其包括依次连接的卷积层conv1、卷积层conv2、卷积层conv3、卷积层conv4、卷积层conv5;
注意力层,其包含有自注意力机制,作用于特征提取单元的任意卷积层上,用于对有利于分类的特征进行加权;
软件缺陷预测单元,其包括依次连接的全连接层fc6、全连接层fc7、全连接层fc8、全连接层fc9,且全连接层fc6的输入连接卷积层conv5的输出,全连接层fc9作为二分类的输出层。
6.如权利要求1或5所述的基于深度迁移的软件缺陷预测方法,其特征在于,所述自注意力机制包括:
(a)对于特征提取单元输出的特征矩阵X,进行卷积核为1*1的卷积操作,获得矩阵F(x),G(x),H(x),其中,矩阵H(x)尺寸与特征矩阵X相同,矩阵F(x),G(x)的深度变为特征矩阵X的1/8;
(b)将矩阵F(x)的转置矩阵F(x)T与矩阵G(x)相乘,获得自相关矩阵S(x):
S(xij)=F(xi)T*G(xj)
其中,F(xi)T表示矩阵F(x)中第i列,G(xj)表示矩阵G(x)中第j列,S(xij)表示图像中位置(i,j)处像素点与所有像素点在特征上的自相关特征值,形成自相关矩阵S(x);
(c)对自相关矩阵S(x)进行softmax处理,以获得每个自相关特征值在0到1范围内的注意力权重αj,i,并形成注意力权重矩阵Oj:
其中,H(xi)表示矩阵H(x)中第i列;
(d)通过注意力层输出加权后的特征矩阵XAttention:
XAttention=(O1,O2,…,ON),其中N=h*w
生成h*w的向量,输入全连接层。
7.如权利要求1所述的基于深度迁移的软件缺陷预测方法,其特征在于,深度迁移网络的损失函数L为:
L=LClassification+λ*LMMD
其中,λ为人为设定的惩罚系数;
交叉熵损失函数LClassification为:
其中,Θ代表该深度迁移网络中所有的参数,n0为样本总个数,na为样本类标种类的个数,φ(·)表示深度迁移网络所隐藏的非线性表达式,表示类标应该为a的第i个样本的深度迁移网络的输出预测值,为第i个样本类标为a的真值标签,F(·)为交叉熵计算函数;
最大均值差异损失函数LMMD为:
其中,src为训练集,tar为测试集,n1为训练集中样本个数,n2为测试集中样本个数,srci为训练集第i个样本,tari为测试集中第i个样本,dist(·)为最大值差异函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910446546.2A CN110162475B (zh) | 2019-05-27 | 2019-05-27 | 一种基于深度迁移的软件缺陷预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910446546.2A CN110162475B (zh) | 2019-05-27 | 2019-05-27 | 一种基于深度迁移的软件缺陷预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162475A CN110162475A (zh) | 2019-08-23 |
CN110162475B true CN110162475B (zh) | 2023-04-18 |
Family
ID=67629295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910446546.2A Active CN110162475B (zh) | 2019-05-27 | 2019-05-27 | 一种基于深度迁移的软件缺陷预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162475B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751186B (zh) * | 2019-09-26 | 2022-04-08 | 北京航空航天大学 | 一种基于监督式表示学习的跨项目软件缺陷预测方法 |
CN111259941B (zh) * | 2020-01-10 | 2023-09-26 | 中国科学院计算技术研究所 | 基于细粒度领域自适应的跨领域图像分类方法及系统 |
CN111290947B (zh) * | 2020-01-16 | 2022-06-14 | 华南理工大学 | 一种基于对抗判别的跨软件缺陷预测方法 |
CN111340727B (zh) * | 2020-02-26 | 2022-05-17 | 电子科技大学 | 一种基于gbr图像的异常流量检测方法 |
CN111401387B (zh) * | 2020-03-10 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 异常样本构建方法、装置、计算机设备和存储介质 |
CN111667000B (zh) * | 2020-06-05 | 2023-02-07 | 成都理工大学 | 自适应领域深度神经网络的地震预警方法 |
CN112015659A (zh) * | 2020-09-02 | 2020-12-01 | 三维通信股份有限公司 | 基于网络模型的预测方法及装置 |
CN112597038B (zh) * | 2020-12-28 | 2023-12-08 | 中国航天系统科学与工程研究院 | 软件缺陷预测方法及系统 |
CN113419948A (zh) * | 2021-06-17 | 2021-09-21 | 北京邮电大学 | 一种基于gan网络的深度学习跨项目软件缺陷的预测方法 |
CN114782967B (zh) * | 2022-03-21 | 2024-02-20 | 南京航空航天大学 | 一种基于代码可视化学习的软件缺陷预测方法 |
CN115048316B (zh) * | 2022-08-15 | 2022-12-09 | 中国电子科技集团公司第三十研究所 | 一种半监督的软件代码缺陷检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622510A (zh) * | 2012-01-31 | 2012-08-01 | 龚波 | 一种软件缺陷量化管理系统和方法 |
CN107957946A (zh) * | 2017-12-01 | 2018-04-24 | 北京理工大学 | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160210334A1 (en) * | 2015-01-15 | 2016-07-21 | Salesforce.Com, Inc. | Deep linking and state preservation via a url |
US10152544B1 (en) * | 2015-08-31 | 2018-12-11 | Facebook, Inc. | Viral content propagation analyzer in a social networking system |
CN107316061B (zh) * | 2017-06-22 | 2020-09-22 | 华南理工大学 | 一种深度迁移学习的不平衡分类集成方法 |
CN107451661A (zh) * | 2017-06-29 | 2017-12-08 | 西安电子科技大学 | 一种基于虚拟图像数据集的神经网络迁移学习方法 |
CN108537825B (zh) * | 2018-03-26 | 2021-08-17 | 西南交通大学 | 一种基于迁移学习回归网络的目标跟踪方法 |
-
2019
- 2019-05-27 CN CN201910446546.2A patent/CN110162475B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622510A (zh) * | 2012-01-31 | 2012-08-01 | 龚波 | 一种软件缺陷量化管理系统和方法 |
CN107957946A (zh) * | 2017-12-01 | 2018-04-24 | 北京理工大学 | 基于邻域嵌入保护算法支持向量机的软件缺陷预测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110162475A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162475B (zh) | 一种基于深度迁移的软件缺陷预测方法 | |
CN112818903B (zh) | 一种基于元学习和协同注意力的小样本遥感图像目标检测方法 | |
CN114926746B (zh) | 基于多尺度差分特征注意力机制的sar图像变化检测方法 | |
CN114332649B (zh) | 基于双通道注意力的跨场景遥感图像深度对抗迁移方法 | |
CN109902761B (zh) | 一种基于海洋环境因子融合和深度学习的渔情预测方法 | |
CN109635763B (zh) | 一种人群密度估计方法 | |
CN114092697B (zh) | 注意力融合全局和局部深度特征的建筑立面语义分割方法 | |
CN112151192B (zh) | 一种基于隐空间重投影的遗传代谢病筛查方法 | |
CN113468531A (zh) | 基于深度残差网络和混合注意力机制的恶意代码分类方法 | |
CN113688830A (zh) | 基于中心点回归的深度学习目标检测方法 | |
CN113297429A (zh) | 一种基于神经网络架构搜索的社交网络链路预测方法 | |
CN112784173A (zh) | 一种基于自注意力对抗神经网络的推荐系统评分预测方法 | |
CN112819063A (zh) | 一种基于改进的Focal损失函数的图像识别方法 | |
CN115310355A (zh) | 考虑多能耦合的综合能源系统多元负荷预测方法及系统 | |
CN114969367A (zh) | 基于多方面子任务交互的跨语言实体对齐方法 | |
CN117516937A (zh) | 基于多模态特征融合增强的滚动轴承未知故障检测方法 | |
CN115131747A (zh) | 基于知识蒸馏的输电通道工程车辆目标检测方法及系统 | |
CN115147727A (zh) | 一种遥感影像不透水面提取方法及系统 | |
CN117173449A (zh) | 基于多尺度detr的航空发动机叶片缺陷检测方法 | |
CN118427720A (zh) | 基于可解释图神经树的电力系统暂稳判别方法与系统 | |
AU2020103207A4 (en) | A novel method of introducing basic elementary disturbances for testing machine learning models | |
CN113609904A (zh) | 一种基于动态全局信息建模和孪生网络的单目标跟踪算法 | |
CN117371511A (zh) | 图像分类模型的训练方法、装置、设备及存储介质 | |
CN117196033A (zh) | 基于异构图神经网络的无线通信网络知识图谱表示学习方法 | |
CN117056226A (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 |