买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于注意力网络的代码修复方法_大连海事大学_202210456344.8 

申请/专利权人:大连海事大学

申请日:2022-04-27

公开(公告)日:2024-04-26

公开(公告)号:CN115016961B

主分类号:G06F11/07

分类号:G06F11/07;G06F11/36;G06N3/0455;G06N3/045;G06N3/084

优先权:

专利状态码:有效-授权

法律状态:2024.04.26#授权;2022.09.23#实质审查的生效;2022.09.06#公开

摘要:本发明公开了一种基于注意力网络的代码修复方法,包括:S1:将源代码中的方法名、变量名进行统一替换并记录替换关系生成预处理数据;S2:生成基于注意力机制的神经网络模型;S3:训练基于注意力机制的神经网络模型,将预处理数据输入神经网络模型中,采用梯度下降方式训练该模型直至收敛,保存神经网络模型参数;S4:将实际应用场景中将有缺陷的源代码执行S1操作获得预处理后数据,将预处理后数据转换成向量输入至完成训练的模型中生成修复补丁,将生成的修复补丁执行一次S1中替换关系的逆过程获得真实修复补丁。该方法通过自注意力网络来学习代码中的缺陷模式从而自动修复软件中的缺陷,提高软件缺陷的修复效率。

主权项:1.一种基于注意力网络的代码修复方法,其特征在于包括:S1:将源代码中的方法名、变量名进行统一替换并记录替换关系生成预处理数据;S2:生成基于注意力机制的神经网络模型;S3:训练基于注意力机制的神经网络模型,将预处理数据输入神经网络模型中,采用梯度下降方式训练该模型直至收敛,保存神经网络模型参数;S4:将实际应用场景中将有缺陷的源代码执行S1操作获得预处理后数据,将预处理后数据转换成向量输入至完成训练的模型中生成修复补丁,将生成的修复补丁执行一次S1中替换关系的逆过程获得真实修复补丁;所述神经网络模型包括编码器和解码器,所述编码器包括自注意力网络和注意力网络,其中自注意力网络初步提取软件缺陷特征,将生成的特征向量输入到注意力网络从而标注软件缺陷的重点特征,得到软件缺陷的上下文向量;所述解码器包括自注意力网络与复制注意力网络,所述自注意力网络解码软件缺陷的上下文向量、将上下文信息初步翻译为修复补丁信息,复制注意力网络允许源代码中不需要修改的词元直接复制到生成的修复补丁中;其中注意力网络的具体结构是:神经网络在处理当量的信息时利用注意力机制做到只选择关键的输入信息进行处理,注意力机制层的输入h={h1,h2,...,hm},其中m为源代码中的词元长度,d为特征维度,输出为s={s1,s2,...,sm},eij为计算解码器中任意两个输出向量的关联度,其计算方法为: hi与hj为任意两个时刻的词元信息,Wa为训练参数,αij为每个输出向量分数的权重,其计算方法为:再计算解码器的每个输出向量的加权值si,此加权值表示在位置i的词元所受的关注度的大小,其计算方式为: 编码器通过自注意力机制与注意力机制标注了带有缺陷的软件源码的特征,并得到特征向量si;在编码器提取缺陷信息生成中间向量后,将编码器得到的中间向量输入到解码器中,通过解码器就得到软件缺陷的补丁;为了保证解码过程中生成的代码在语法上的正确性,采用注意力模型有针对性地生成候选词元;解码器的作用是从编码向量中提取软件缺陷的特征信息,并通过特征向量解码出相应的补丁信息,在解码器阶段,为了使输入到解码器的特征更平滑,将解码器的输出s={s1,s2,...,sm}进行归一化处理:s=LayerNorms9在将输入进行归一化结束之后,将归一化后的输出再一次通过自注意力层Eq1,Eq2进行特征解码,为了使解码器的输出特征更平滑,再解码之后又进行了一次归一化,则解码器的输出o为:o=LayerNorms+SubLayers10考虑到有缺陷的代码与修复后的代码存在大量重复的词元,添加了注意力机制,以允许模型在生成补丁期间既可以通过模型生成词元,又允许模型从输入序列中复制词元:pyt|ot,yt-1,ht=pyt,g|ot,yt-1,ht+pyt,c|ot,yt-1,ht11其中yt为t时刻生成某一词元的概率,yt-1为t-1时刻生成某一词元的概率,ot为t时刻编码器的输出,ht为t时刻解码器的中间输出,其中pyt,g|·为模型生成词元的概率,pyt,c|·为模型需要复制输入的概率,其中: 上述公式1213的核心在于当词元仅出现在源代码中时,将pyt,g|·置为0,当词元没有在源代码中出现时,将pyt,c|·置为0,为生成模式的打分函数: 其中vi为单词vi的one-hot向量,ψc·为复制模型的打分函数: 其中Z为两种模式共享的归一化项: 解码器通过自注意力机制与复制机制解码出最终软件补丁的信息,并通过反向传播算法不断提高模型性能,直至模型收敛。

全文数据:

权利要求:

百度查询: 大连海事大学 一种基于注意力网络的代码修复方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。