[发明专利]一种基于迁移学习的软件功能缺陷挖掘方法有效
申请号: | 201910783286.8 | 申请日: | 2019-08-23 |
公开(公告)号: | CN110489348B | 公开(公告)日: | 2023-08-25 |
发明(设计)人: | 冯落落;李锐;于治楼 | 申请(专利权)人: | 山东浪潮科学研究院有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F16/35 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 250100 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 迁移 学习 软件 功能 缺陷 挖掘 方法 | ||
1.一种基于迁移学习的软件功能缺陷挖掘方法,其特征在于,该方法包括训练部分和挖掘部分;
在进行训练之前,首先从开源代码库获取大量的数据集,即text-code集合,用O={o1,o2,...,oN}表示数据集,其中,oi={ci,ti},ci和ti分别表示第i个原生代码片段和对应的文本注释,N表示样本结合的大小;
在训练部分,首先,利用开源源代码和开源源代码的文档解释产生一个text-enriched代码功能空间;随后,基于孪生卷积神经网络构建辅助AM模型,辅助AM模型的孪生卷积神经网络具有相同的卷积网络架构、相同的权重、不同的输入数据,辅助AM模型学习text-enriched代码功能空间产生一个特征映射函数φ(c,t),从数据集O={o1,o2,...,oN}选取Oi、Oj任两组数据输入辅助AM模型的孪生卷积神经网络,辅助AM模型的孪生卷积神经网络分别进行特征提取,把提取的特征进行concate,接着与全连接层进行相连从而获取两个特征向量φ(ci,ti)和φ(cj,tj),两个特征向量通过全连接到输出层,并通过sigmoid函数获得输出相似的概率;最后,基于孪生卷积神经网络构建CFRM模型,并基于text-enriched代码功能空间,构建一个近似特征映射函数φ(c,t)的映射函数ψ(c,t),使得用text-enriched代码功能空间和辅助AM模型产生的特征映射函数训练CFRM模型,CFRM模型捕捉开源源代码文档解释的关键词,并输出开源源代码的功能表示,即可完成CFRM模型的训练;
在挖掘阶段,将需要进行软件功能缺陷挖掘的源代码输入CFRM模型,CFRM模型输出所述源代码的功能表示,且CFRM模型将所述源代码的功能表示输入分类器,分类器对软件功能缺陷进行挖掘,并输出挖掘结果0或1,0表示源代码不存在软件功能缺陷,1表示源代码存在软件功能缺陷。
2.根据权利要求1所述的一种基于迁移学习的软件功能缺陷挖掘方法,其特征在于,辅助AM模型学习text-enriched代码功能空间并产生一个特征映射函数φ(c,t)后,通过sigmoid函数获得输出相似的概率,从而将拥有相似功能的源代码被映射到相近的距离,拥有不相似功能的源代码被映射到相远的距离。
3.根据权利要求2所述的一种基于迁移学习的软件功能缺陷挖掘方法,其特征在于,辅助AM模型学习产生特征映射函数φ(c,t)并将拥有相似功能的源代码被映射到相近的距离、拥有不相似功能的源代码被映射到相远的距离,具体操作为:
一)辅助AM模型学习一个预测函数其中yij表示一个输入对是否相似;
二)基于特征映射函数φ(c,t),获得两个特征向量φ(ci,ti)和φ(cj,tj)求距离L1,随后利用距离L1去加权输入对(oi,oj)的相关性,且输入对(oi,oj)相似的概率由f=σ(αT|φ(oi)-φ(oj)|)计算得到,其中,σ是sigmoid激活函数,α参数由公式(1)学习得到,
其中,L表示交叉熵损失函数,
Ω(f)是L2正则化项,L2正则化项就是对模型中的参数进行平方求和,
λ是平衡因子;
基于计算得到的输入对(oi,oj)的相似概率,进行相似功能源代码、不相似功能源代码的划分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮科学研究院有限公司,未经山东浪潮科学研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910783286.8/1.html,转载请声明来源钻瓜专利网。