基于神经网络语言模型的代码分析方法研究

来源 :电子科技大学 | 被引量 : 1次 | 上传用户:purong0826
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
深度学习已经在人工智能领域中取得了显著的成就。这得益于其捕捉高维复杂特征的强大能力,而且并不需要人工特征的干预。利用深度神经网络来解决代码分析问题要比基于统计的方法更为简单。例如在代码分类问题中,深度神经网络能够自动地抽取出代码中有用的特征。从局部到高层的抽象过程,特征在每一层能够被自动地组织起来。基于这些抽象的特征,我们能够确定一段代码的类别。深度神经网络结构并不像传统的方法需要过多的人工特征。更加自然的特征对于多任务学习是更有利的。深度学习结构对于其他的代码分析任务同样是有效果的。但是,将深度学习应用在代码分析领域还是存在一些困难。因为梯度弥散的问题,导致传统的学习算法并不能对网络进行有效的训练。本文借用了深度学习在解决自然语言处理问题中的思想,构造可以学习代码结构的分布式表示的模型,从而将深度学习应用于代码分析领域。本文提出了一条编码规则建立抽象语法树结点的向量表示,这是将深度学习应用于代码分析问题的基础。根据实验的结果可以得出,该编码规则可以有效地学习到抽象语法树结点的向量表示。为了证明深度学习对于代码分析问题是否真的有效。本文将学习到的特征向量输入到一个深度神经网络中,实验结果表明较浅层学习方法,深度学习方法取得了更好的效果。本文还提出了另一种通过学习程序控制流图的的根子图的向量表示来对代码进行建模的方法。这是受图核函数最近的一些研究成果的启发。该模型以无监督学习的方式,利用邻居结点之间的关系,来学习它们之间隐藏的相似性。通过实验证明了模型与支持向量机这样的核分类器以及关联聚类算法一起在监督学习以及无监督学习任务中均取得了很好的效果。实验不仅仅是在一些基准数据集上进行的,同时还有实际问题中的数据集。相信在未来,深度学习会成为代码分析领域中的一种重要途径。
其他文献
人脸识别是当前计算机模式识别领域中的一个非常活跃的研究课题,在安全检测、身份验证、军事、商业等领域具有广泛的应用前景。基于人脸识别的自动身份认证具有重要的理论意义
远传抄表是一种无需人工现场干预就能完成表具数据抄取的新型抄表方式,有效克服了传统抄表方式工作量大、效率低、误差大等诸多缺点,为实现表具信息化管理提供了技术保障和基础
  随着城市化进程不断加快,城市交通规划欠缺和公交线路设计不合理等问题相继暴露出来,智能化交通应运而生。与传统的城市交通不同,现代化的城市交通要求规划更加合理,并且在公
当今一个主要趋势就是在一个芯片上集成大量的处理器,构成多核系统以实现高性能,而不是像过去那样单纯的依靠提高处理器的频率。这些集成度很高的处理器阵列通过并行和特定指令
无线传感器网络因其广泛的应用范围(如军事国防、医疗救护、交通疏导、环境监测等等),受到了国内外研究者的重视,成为了当今最炙手可热的研究方向之一,而路由技术作为无线传感器网
面对校园网用户和业务流量的不断增长,对网络带宽资源需求也越来越大,但是各种网络应用无序地抢占有限的带宽,必然导致网络运行效率的降低。随着互联网和宽带技术的发展,P2P
自聚焦是非线性光学中最常见最基本的物理问题之一,从上世纪六十年代起,自聚焦就一直是非线性光学领域热门的研究课题。   从实践的角度来看,自聚焦效应限制了允许通过介质的
借助于嫦娥一号星载CCD相机和激光高度计等设备,我们获得了描述月表形貌特征的海量月表地形数据。为此本文主要研究构建多尺度月表地形三维模型的若干关键技术,包括全月球海量
  当今是因特网飞速发展的时代,人们更多的依赖网络去处理平时生活中的各种事情,这样就给网络服务器带来了巨大的压力。传统的、单一的服务器模式受其CPU、内存和磁盘I/O等硬
基因扩增技术即聚合酶链反应(polymerase chain reaction)简称PCR,又称无细胞分子克隆系统或特异性DNA序列体外引物定向酶促扩增法,可将极微量的靶DNA特异地扩增上百万倍,从而大大