[发明专利]一种基于JCUDASA_BP算法的软件缺陷预测方法有效
| 申请号: | 201510148727.9 | 申请日: | 2015-03-31 |
| 公开(公告)号: | CN104731709B | 公开(公告)日: | 2017-09-29 |
| 发明(设计)人: | 单纯;薛静锋;张亮;周杨森;董磊 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/08 |
| 代理公司: | 北京理工大学专利中心11120 | 代理人: | 仇蕾安 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 jcudasa_bp 算法 软件 缺陷 预测 方法 | ||
1.一种基于JCUDASA_BP算法的软件缺陷预测方法,其特征在于,包括以下步骤:
步骤一、构建一个BP网络,初始化BP网络中各层的权值;其中所述网络包含一个输入层、一个隐含层和一个输出层,确定网络输入、输出节点数,确定隐藏节点,明确初始化权值,完成初始化BP网络结构;
步骤二、根据步骤一构建的BP网络结构,统计输入样本数量,根据输入样本情况利用JCUDA平台实现在GPU中启动线程计算各层输出,根据输出值与期望误差计算误差值;
步骤三、统计输出值与期望值之间的误差后,利用模拟退火算法计算是否接受当前误差,接受则完成;否则继续调整网络权值,每一个样本分条进行处理;
利用JCUDASA_BP算法对软件缺陷预测的运行时间进行优化、模拟,包括以下步骤:
第一步:设软件缺陷预测模型的学习样本为S,样本数为N,表示为公式1;
S=(S1,...,SN) 公式1
第二步:JCUDASA_BP算法在CPU中将学习样本划分为X个组合,则学习样本S表示为公式2;
S=S'=(S′1,...,S'X) 公式2
第三步:在公式2中,每一个S′i,i=(1,X)对应着N/X学习样本,当N/X的计算值不为整数时,分组阶段自动对该N/X的计算值进行向下取整获得一个参数n表示该N/X的计算值,公式2中,第i样本组的数据用公式3进行表示;
S′i=(S1·i,...,Sn·i) 公式3
第四步:当进行到S样本最后一个分组时,自动取剩余所有样本,以保证分组数据的正确与完整;
第五步:基于JCUDASA_BP算法的软件缺陷模型在GPU中启动多个线程,分别计算公式2中学习样本S的平均误差值,所有的样本的误差的表示为公式4;
公式4中,Δej表示第j个样本组合计算完的误差值,Δe表示全部样本集计算的平均误差值。
2.如权利要求1所述的一种基于JCUDASA_BP算法的软件缺陷预测方法,其特征在于,上述方法基于JCUDASA_BP算法利用梯度下降法和模拟退火算法对网络的权值进行修正,获得新的权值矩阵PR,即产生一个很小的随机扰动值Δ;利用模拟退火算法时,首先针对输入层与输出层的权值引入一个随机扰动Δpr,针对输出层与隐含层之间的权值引入随机扰动Δph,然后,分别计算Δph和Δpr的期望误差值;如果期望值变化量小于零,则接受该随机扰动;如果该变化量大于零时,根据模拟退火算法,以一个概率ρ接受当前解;当接收当前解时,记录前一任的解,以防止当前解陷入局部最小值或者局部最优解的情况。
3.如权利要求1所述的一种基于JCUDASA_BP算法的软件缺陷预测方法,其特征在于,在上述方法执行过程中,如果计算未完成则不停止GPU中计算BP算法的线程;当线程长期无反应时,基于JCUDASA_BP算法的软件缺陷预测,利用监控线程,根据其他学习样本的计算结果重新设定线程计算样本的结果,以获得更快的处理效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510148727.9/1.html,转载请声明来源钻瓜专利网。





