买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京邮电大学
摘要:本发明公开了一种基于混合项目对抗学习的跨项目软件缺陷预测方法,使用对抗学习的来改进特征学习的过程,以极大极小博弈的策略使得项目内的原始特征和重构特征难以判别,更好地保留原始鉴别特征。通过生成模型与判别模型的相互作用,在保留原始鉴别特征的同时,不同项目间的分布差异得到了有效的减小。值得注意的是,为了更充分利用不同项目间的信息,本发明提出了一种将源项目与目标项目按照随机比例进行混合的训练方法,通过该方法使得域分类器有了更加强大的判别能力,也为训练集数据不充足提供了一个可靠的解决方法。通过这种方式将增加了模型的泛化能力,使得模型通过在有标签源项目上训练更容易捕捉域间不变性特征。
主权项:1.一种基于混合项目对抗学习的跨项目软件缺陷预测方法,其特征在于,包括如下步骤:S1:获取跨项目软件缺陷数据集,划分为训练集和测试集,训练集包括源项目和目标项目,测试集包括目标项目,源项目是有标签实例,目标项目是无标签实例;源项目特征表示为目标项目特征表示为xs,ys分别表示源项目及其对应的标签,分别表示源项目中第i个实例及其对应的标签,ns表示源项目实例的数量,xt表示目标项目,表示目标项目中第i个实例,nt表示目标项目实例数量;S2:初始化比例因子λ,λ服从β分布,其值大小在0和1之间;对训练数据集中源项目和目标项目按照比例因子进行混合,得到一个混合后的项目特征表示为其中下标i表示第i个实例;S3:对训练数据集中源项目和目标项目分别进行特征提取;S3.1:构建一个三层的全连接神经网络作为源项目和目标项目的特征映射网络,经过特征映射网络分别得到关于源项目和目标项目特征的表示为通过特征映射网络挖掘项目内的相似性信息,然后将输入分类器进行类别判断,即进行缺陷预测,分类器输出0或1,其中1代表有缺陷;S3.1.1:分类器由两层全连接神经网络组成,设网络映射函数为C·,通过定义在源项目上的交叉熵损失Lce进行学习,通过训练分类器对不同的软件实例进行缺陷预测;交叉熵损失函数Lce定义为 式中E表示期望,Ps表示源项目的数据分布;S3.1.2:使用监督对比学习损失函数Lsc利用源项目中的标签信息,挖掘实例间存在的潜在判别信息,在模型学习判别特征过程中使同类别实例的相关性增大,不同类别实例的相关性减小;监督对比学习损失函数Lsc定义为 其中集合Pi中所有的索引p属于集合Ai,并且Pi中索引为p的实例的标签与索引为i的实例的标签相同;|Pi|是Pi的基数,表示与索引i具有相同标签的索引p的数量;Ai≡{1,...,ns}\{i}表示不包括当前所计算的索引i的源项目索引的集合;符号“·”表示内积,并且τ∈R+是一个标量温度参数;S4:对来自不同项目中提取的特征按照比例因子进行混合;S5:将提取的特征分别输入对抗网络模型的生成器,生成器根据输入特征进行特征重构;在重构特征阶段之前,首先为源项目和目标项目这两个项目以及混合的特征定义一个one-hot类标签向量lcla和一个一维的不确定性补偿值lcomp,具体表示如下: 式中,和分别表示源项目的类标签向量和一维的不确定性补偿值,对于源项目标签对应的one-hot编码,1在向量中的索引为的位置;和分别表示目标项目的类标签向量和一维的不确定性补偿值;对于混合项目对应的one-hot编码λ位于向量中的索引为的位置;和分别表示混合项目的类标签向量和一维的不确定性补偿值;lcomp是一个用于规范化向量的补偿值,lcla与lcomp相加之和为1;生成器Nd根据辅助特征lcla和lcomp来进行重构的特征表示为其中[·]代表向量的拼接,指代的是源项目、目标项目或者混合项目中的任意实例经过特征映射后的特征表示或S6:对抗网络模型的判别器对重构的特征和原始输入特征进行真假判断;S6.1:通过对抗训练增强判别器的判别能力,判别器D由三个分支子网络组成,分别是判别器下的域判别子网络Ddom、特征映射子网络fD和分类子网络Dcla;三个分支子网络的输入为重构后的特征;Ddom用于判断特征是否是重构特征;针对来自不同项目数据,判别器分别通过以下损失函数来指导学习: 式中和分别表示源项目、目标项目和混合项目的判别损失,和是生成器生成的源项目和目标项目数据;S6.2:在训练过程中,混合特征由源项目和目标项目特征级别上的某个位置混合而成,并且域分类器将预测分数分配到0到1之间;域分类损失用于指导域分类器输出一个软分数, 式中Ps和Pt分别表示源和目标项目的数据分布,表示混合项目的标签;S6.3:引入三元组损失约束混合项目到源项目和目标项目的距离来帮助域分类器进行领域判别, 其中fD作为判别器D的特征提取器;[·]+=max0,·表示hinge损失函数;当λ0.5时,a,p,n=xm,xs,xt,否则为a,p,n=xm,xt,xs,边界阈值ftriλ=|2λ-1|;S7:根据判别器损失函数,生成器损失函数和监督对比学习损失函数训练对抗网络模型,模型的输出为0或1,模型输出为1表示为是缺陷实例;S8:待网络收敛后,对测试集的实例进行软件缺陷预测。
全文数据:
权利要求:
百度查询: 南京邮电大学 一种基于混合项目对抗学习的跨项目软件缺陷预测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。