【技术实现步骤摘要】
一种基于深度强化学习的实时Bug分派方法
本专利技术涉及缺陷报告指派
,尤其涉及一种基于深度强化学习的实时Bug分派方法。
技术介绍
随着互联网的迅速发展和软件开发技术的成熟,越来越容易产生大量的软件bug。传统的依赖人工进行浏览和分析软件,并且进行bug修复的方法无法适应大规模的bug数据。人工进行bug分派是一项十分耗时耗力的事情。在这一问题下,基于机器学习的自动bug分派技术应运而生。缺陷报告的自动分配,是数据分析中的一个经典任务,由于解决该问题具有较大的复杂性和挑战,所以一直都是研究者关注的热点。关注缺陷报告的哪些信息,开发者和缺陷报告之间存在怎样的关系时,能高质量的完成缺陷报告的修复都是我们需要考虑的问题。文献[1]中Lee等人首次尝试使用神经网络进行bug分派,他们用卷积神经网络(CNN)和词嵌入(wordembedding)技术建立了一个自动分类器。实验结果表明,使用所有开发者数据训练的CNN模型,表现要比人工分类的要好得多。文献[2]中Mani等人提出了DBRNN-A算法,算法提出使用双 ...
【技术保护点】
1.一种基于深度强化学习的实时Bug分派方法,其特征在于包括:/n对初始的bug数据进行预处理,预处理过程包括删除无效开发者修复的bug、删除低效开发者修复的bug、统计并过滤高频和低频词、从而提取bug报告的文本信息,并根据每个bug报告对应的真实开发者,对一段时间内具有相同产品和组件的bug报告进行汇总,获取每个bug报告的开发者活跃度信息;/n使用深度强化学习DQN算法,将缺陷报告修复任务分派给合适的开发者:初始化循环神经网络参数w
【技术特征摘要】
1.一种基于深度强化学习的实时Bug分派方法,其特征在于包括:
对初始的bug数据进行预处理,预处理过程包括删除无效开发者修复的bug、删除低效开发者修复的bug、统计并过滤高频和低频词、从而提取bug报告的文本信息,并根据每个bug报告对应的真实开发者,对一段时间内具有相同产品和组件的bug报告进行汇总,获取每个bug报告的开发者活跃度信息;
使用深度强化学习DQN算法,将缺陷报告修复任务分派给合适的开发者:初始化循环神经网络参数w1,w2,基于w1,w2初始化所有状态动作对的价值Q;
将缺陷报告的文本信息和修复者活跃度信息向量化并作为状态S的初始特征向量;
将初始特征向量输入到神经网络Q,通过神经网络Q的前向传播输出每个动作at对应的Q值,根据策略π选择对应的动作;
在状态S执行当前动作at得到新的状态s'、奖励R以及是否终止状态的标志flag;
将{st,at,Rt,s′t,flag}五元组放入经验回放池D中,更新当前状态s=s';
从经验回放池D中随机采样m个样本{st,at,Rt,s′t,flag},t=1,2,...,m,通过深度多语义特征融合方法计算当前期望目标值Q:
使用均方...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。