[发明专利]面向基于深度学习的代码注释生成模型鲁棒性提升方法在审
申请号: | 202011178831.X | 申请日: | 2020-10-29 |
公开(公告)号: | CN112270358A | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 周宇;张晓晴;沈娟娟 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06N3/04;G06N3/08;G06N20/20 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 贺翔 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 基于 深度 学习 代码 注释 生成 模型 鲁棒性 提升 方法 | ||
本发明公开了一种面向基于深度学习的代码注释生成模型鲁棒性提升方法,步骤如下:利用已公开的数据集训练基于深度学习的代码注释生成模型和基于深度神经网络的代码编码网络;利用上述训练后的代码注释生成模型和代码编码网络,对所用的数据集中训练数据集上的每一条数据采用基于变量名替换的方法生成对抗样本;将生成的训练集上的对抗样本与训练数据集样本按照1:1混合,以保证模型参数不变的情况下重新训练模型。本发明的方法提升了代码注释生成模型对对抗样本的防御能力,提高了代码注释生成模型在异常情况下的可靠性,进一步保证生成注释质量。
技术领域
本发明属于机器学习技术领域,尤其指代一种面向基于深度学习的代码注释生成模型鲁棒性提升方法。
背景技术
在软件开发和维护中,程序理解是一项非常耗时的任务;自然语言编写的注释可以极大地减轻程序员理解代码片段的负担,提高开发效率,因此,注释在促进程序理解方面起着重要的作用。近年来,深度学习在计算机视觉、自然语言处理等应用领域取得前所未有的成功。研究者逐渐提出将深度神经网络用于代码注释自动生成任务中,并取得了巨大的进步。
然而,在深度学习技术迅猛发展的同时,深度学习模型的可靠性问题也逐渐暴露出来,深度学习模型的质量问题逐渐被关注。由于深度学习模型的结构复杂,使其极易受到对抗样本的威胁,即数据中无法被人类发现的微小扰动,都可能造成深度学习模型做出错误的判断,输出错误的结果。对抗样本的存在无疑会对现实应用带来巨大的威胁,例如支付宝等支付工具,对抗样本的存在会让识别系统错误地将付款者识别成其他人甚至特定的人;高铁买票进站都是通过人脸识别系统的,对抗样本攻击会使检票系统瘫痪,甚至被犯罪者用来逃避追捕。
国内外许多研究者对如何提高模型对对抗样本的防御能力从而提高深度学习模型的鲁棒性进行探讨和研究,涌现了大量的研究成果,但目前绝大多数工作只针对于图像、自然语言等,少有对于代码相关任务的研究,尤其针对于代码注释生成任务。以下将介绍关于研究提升代码相关任务模型鲁棒性的几个主要方面。
提升深度学习模型对对抗样本的防御能力,首先要研究如何生成对抗样本。Yefet等人针对于方法名预测任务,提出了一种基于梯度的对抗样本生成方法,Yefet等人利用梯度上升方法,对原始代码段进行变量名替换或死代码插入,从而生成对抗样本。另外,Yefet在他们的模型中引入了一种基于检测的防御方法,在样本送入模型之前先进行检测是否为对抗样本。
Zhang等人针对代码分类任务,使用Metropolis-Hastings算法基于黑盒的方式进行标识符重命名进而生成对抗样本。Zhang等人为了提高模型的鲁棒性,引入了基于数据增强的对抗训练,将原始样本和干净样本混合重新训练模型。
Ramakrishnan等人针对代码注释生成任务,采用基于梯度的方法,考虑八种代码变换生成对抗样本,并利用基于鲁棒优化的对抗训练方法生成对抗样本。
对于代码注释生成模型的鲁棒性而言,目前尚缺少相关研究,Ramakrishnan等人只是利用代码中的方法名作为注释,训练模型生成方法名这种短的注释,本质仍是方法名生成,非程序员书写的注释。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种面向基于深度学习的代码注释生成模型鲁棒性提升方法,以解决现有技术中对于代码片段对抗样本生成难,搜索空间大,查询次数多的问题;本发明的方法提升了代码注释生成模型对对抗样本的防御能力,提高了代码注释生成模型在异常情况下的可靠性,进一步保证生成注释质量。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种面向基于深度学习的代码注释生成模型鲁棒性提升方法,步骤如下:
步骤1)模型训练:利用已公开的数据集训练基于深度学习的代码注释生成模型和基于深度神经网络的代码编码网络;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011178831.X/2.html,转载请声明来源钻瓜专利网。