一种基于深度学习的异质软件工作量估计方法技术

技术编号:22296293 阅读:66 留言:0更新日期:2019-10-15 05:18
本发明专利技术涉及计算机软件技术领域,更具体地,涉及一种基于深度学习的异质软件工作量估计方法,包括:步骤S1:建立数据集,包括源数据集与目标数据集;其中,目标数据集为用户自有的一个数据集;源数据集为与目标数据集存在异质性的一个数据集;步骤S2:利用源数据集与目标数据集训练自编码器;步骤S3:从自编码器提取数据特征,把数据特征输入卷积神经网络训练预测器,使用预测器生成软件工作量的预测值。卷积神经网络能自动提取数据的高层次含义,使软件工作量估计的工作更为高效,还节省了资源。

A Heterogeneous Software Workload Estimation Method Based on Deep Learning

【技术实现步骤摘要】
一种基于深度学习的异质软件工作量估计方法
本专利技术涉及计算机软件
,更具体地,涉及一种基于深度学习的异质软件工作量估计方法。
技术介绍
随着互联网走进千家万户,计算机技术日新月异,软件作为一种信息技术的主要载体已成为了人类社会不可或缺的一部分。软件需求的日益增多,软件开发的代码也愈加复杂,对软件工作量的估计也愈加困难。软件工作量估计(SoftwareEffortEstimation,简称SEE)是企业软件项目开发中的一项重要活动,准确的软件工作量估计能使企业做出合理的规划,降低管理成本,从而增强运作效率,提高经济效益。对于软件工作量估计目前已有不少对应的方案,但普遍都存在无法适用或预测结果不准确的问题,究其原因在于考量的因素有限导致的。例如Boehm等人提出的COCOMO模型,其模型的原理是:用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。又例如Albrecht提出了一个基于功能点分析的项目评价方法,将团队的生产率比如每人月的功能点数用于所需工作量的评估。上述的两种方案在软件工作量估计的实际应用中都有不俗的表现,与众多的方案对比也算得上优秀,但是这两种方案的实现都是建立在数据充足的基础上的。在对软件工作量估计的工作中,往往会面临数据干涸的问题。这大多发生在新成立的企业或部门身上,因为本身历史数据的缺乏,无法提供足够的数据进行软件工作量估计,还有的就是企业对于隐私和安全方面考虑,无法对外公开足够的数据。这种种的情况,使企业内部可提供的数据十分有限,并且数据可用性也不高。而数据量的不足与数据的可用性差会导致预测出来的结果不准确,甚至无法进行预测。针对数据干涸的问题,研究者们提出一种新的方案:通过使用外部企业的数据集学习出预测模型,用预测模型对本企业的工作量进行估计,解决内部数据不足的问题。然而不同的公司数据之间通常都存在异质性(heterogeneous),即数据所使用的度量标准和度量集的大小不同。因为数据之间的异质性,从外部企业采集的数据是无法直接利用的,若是重新计算度量值代价又太高,而且有可能缺乏相关数据。对此,Jing等人提出一种基于统一度量表示(Unifiedmetricrepresentation,简称UMR)和典型相关性分析(Canonicalcorrelationanalysis,简称CCA)的方法解决数据异质的问题,即:将异质数据集先用0填充策略进行规整,再应用CCA转换至共同特征空间。在此基础上,Tong等人又提出了MCA的方法,该方法将UMR、CCA和受限玻尔兹曼机进行组合,并使用Knn分类器将获得的混合值作为SEE的预测值。上述的方法虽然解决了数据之间异质性的问题,但所使用的方法存在着缺陷,导致预测的结果并不准确,例如:基于UMR与CCA的方法会因为多个异质数据集结合时顺序的不同,对学习到的特征空间产生不同影响,又例如MCA的方法,由于其每一步之间存在较大的分离性,导致在实现时,上一步的输出对于当前步可能不是最优,并且工作量数据的采集通常是一个动态过程,MCA仅考虑了静态场景下的异质工作量估计。
技术实现思路
为了解决上述问题,本专利技术提供一种基于深度学习的异质软件工作量估计方法,该方法使软件工作量估计的工作更为高效,预测出来的结果更准确。本专利技术采取的技术方案是:一种基于深度学习的异质软件工作量估计方法,包括:步骤S1:建立数据集,包括源数据集与目标数据集;其中,目标数据集为用户自有的一个数据集;源数据集为与目标数据集存在异质性的一个数据集;步骤S2:利用源数据集与目标数据集训练自编码器;步骤S3:从自编码器提取数据特征,把数据特征输入卷积神经网络训练预测器,使用预测器生成软件工作量的预测值。建立的数据集,目标数据集一般由本企业内部的数据构成,源数据集一般由外部企业的通用数据构成,两者存在数据异质性。将目标数据集与源数据集输入自编码器,让自编码器学习出一个所有目标、源的数据集共享的特征空间,在空间里所有的数据集都有较好的性能,将两个数据集转化同质。使用数据集进行训练的特征空间会携带数据集的数据特征,把特征空间携带的数据特征输入卷积神经网络,用于对预测器训练,提高预测器的性能。卷积神经网络能自动提取数据的高层次含义,使软件工作量估计的工作更为高效,还节省了资源。进一步地,所述步骤S2包括:自编码器通过输入向量的聚合后验分布和任意的先验分布进行匹配来完成正则化;所述输入向量的聚合后验分布为:q(z)=∫xq(z|x)pd(x)dx所述任意的先验分布为:p(z)其中,x表示输入向量,z表示自编码器的潜在编码向量,q(z|x)表示将x编码为z的编码分布,pd(x)表示数据分布,p(x|z)表示将z解码为x的解码分布。自编码器将两个数据集映射至特征空间的过程,即训练自编码器的过程,其训练使特征空间能很好地融合异质数据,并携带两个数据集的数据特征。具体实现的方法是,对输入向量进行编码得到聚合后验分布,根据编码过程与任意分布得到任意先验分布,将两者进行匹配完成正则化。至此,两个作为输入向量的数据集在空间里的性能得到了很好的提升,异质数据转化为同质数据,空间的得到数据集的数据特征。进一步地,所述输入向量为目标数据集x1,聚合后验分布为:所述任意的先验分布为源数据集x2的先验分布,所述自编码器通过q(z)与p(z)进行匹配来完成正则化,完成训练。上述方法,更具体的是目标数据集x1的聚合后验分布与源数据集x2的先验分布进行匹配完成正则化;即自编码器不断调整根据目标数据集x1的编码过程,使生成的潜在编码向量(聚合后验)分布接近源数据集x2编码得到的先验分布。进一步地,所述自编码器包含编码器和解码器,所述编码器对目标数据集与源数据集进行编码,生成潜在编码向量;所述解码器对潜在编码向量进行解码,重构编码前的数据。自编码器在本方案里作为完成正则化的工具,一般的自编码器包含编码器和解码器,主要负责对数据集进行编码和对编码后的数据集解码,重构数据集分布,上述过程在自编码器的训练中称为重构阶段。进一步地,所述自编码器为对抗自编码器,所述对抗自编码器包含生成器和判别器,所述生成器与判别器对抗,两者的对抗求解公式如下:其中,G表示生成器,D表示判别器,x表示根据真实数据分布生成的样本,G(z)表示根据先验概率p(z)生成的样本,训练判别器D时,logD(x)越大判别器D区分真实数据分布与模拟数据分布的能力越强,所以需要maxD,训练生成器G时,1-D(G(z))越小生成器G生成的训练样本数据分布与真实数据分布的差异越小,所以需要minG;所述生成器为编码器,对目标数据集进行编码,生成训练样本,所述训练样本即潜在编码向量;判别器对训练样本进行辨别,判断训练样本是服从真实数据编码分布还是服从模拟数据编码分布;所述目标数据集编码分布为模拟数据分布,所述源数据集编码分布为真实数据分布。生成器G和判别器D形成对抗网络进行联合训练:首先,进入重构阶段,对抗自编码器给输入的目标数据集与源数据集进行编码生成样本,所述样本为潜在编码向量,然后解码器解码样本,重构出原始数据的内容;然后,进入正则阶段,判别器D不断学习提高辨别能力,辨别样本由哪个数据集编码而成,生成器G不断调整生成过程,使生成的样本更本文档来自技高网
...

【技术保护点】
1.一种基于深度学习的异质软件工作量估计方法,其特征在于,所述方法包括:步骤S1:建立数据集,包括源数据集与目标数据集;其中,目标数据集为用户自有的一个数据集;源数据集为与目标数据集存在异质性的一个数据集;步骤S2:利用源数据集与目标数据集训练自编码器;步骤S3:从自编码器提取数据特征,把数据特征输入卷积神经网络训练预测器,使用预测器生成软件工作量的预测值。

【技术特征摘要】
1.一种基于深度学习的异质软件工作量估计方法,其特征在于,所述方法包括:步骤S1:建立数据集,包括源数据集与目标数据集;其中,目标数据集为用户自有的一个数据集;源数据集为与目标数据集存在异质性的一个数据集;步骤S2:利用源数据集与目标数据集训练自编码器;步骤S3:从自编码器提取数据特征,把数据特征输入卷积神经网络训练预测器,使用预测器生成软件工作量的预测值。2.根据权利要求1所述的一种基于深度学习的异质软件工作量估计方法,其特征在于,所述步骤S2包括:自编码器通过输入向量的聚合后验分布和任意的先验分布进行匹配来完成正则化;所述输入向量的聚合后验分布为:q(z)=∫xq(z|x)pd(x)dx所述任意的先验分布为:p(z)其中,x表示输入向量,z表示编码器的潜在编码向量,q(z|x)表示将x编码为z的编码分布,pd(x)表示数据分布,p(x|z)表示将z解码为x的解码分布。3.根据权利要求2所述的一种基于深度学习的异质软件工作量估计方法,其特征在于,所述输入向量为目标数据集x1,聚合后验分布为:所述任意的先验分布为源数据集x2的先验分布,所述自编码器通过q(z)与p(z)进行匹配来完成正则化,完成训练。4.根据权利要求1所述的一种基于深度学习的异质软件工作量估计方法,其特征在于,所述自编码器包含编码器和解码器,所述编码器对目标数据集进行编码,生成潜在编码向量;所述解码器对潜在编码向量进行解码,重构编码前的数据。5.根据权利要求4所述的一种基于深度学习的异质软件工作量估计方法,其特征在于,所述自编码器为对抗自编码器,所述对抗自编码器包含生成器和判别器,所述生成器与判别器对抗,两者的对抗求解公式如下:其中,G表示生成器,D表示判别器,x表示根据真实数据分布生成的样本,G(z)表示根据先验概率p(z)生成的样本,训练判别器D时,logD(x)越大判别器D区分真实数据分布与模拟数据分布的能力越强,所以需要maxD,训练生成器G时...

【专利技术属性】
技术研发人员:荆晓远齐富民訾璐黄鹤姚永芳
申请(专利权)人:广东石油化工学院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1