科学的规划

PDF
科学的规划/2020年/文章
特殊的问题

代码分析和软件矿业在科学和工程应用

把这个特殊的问题

研究文章|开放获取

体积 2020年 |文章的ID 7426461 | https://doi.org/10.1155/2020/7426461

中村。Mostafizer拉赫曼Yutaka Watanobe说,凯塔, 基于神经网络的智能支持模型程序代码完成”,科学的规划, 卷。2020年, 文章的ID7426461, 18 页面, 2020年 https://doi.org/10.1155/2020/7426461

基于神经网络的智能支持模型程序代码完成

学术编辑器:Miroslav助教
收到了 2020年1月09
修改后的 2020年5月20
接受 2020年6月11日
发表 2020年7月14日

文摘

近年来,数以百万计的源代码生成在不同的语言每天世界各地。深神经网络智能支持源代码完成模型将是一个很大的优势在软件工程和编程教育领域。大量的语法,逻辑,和其他关键的错误不能被正常编译器源代码的继续存在,和一个智能的发展评价方法不依赖于手工编译已经成为必不可少的。即使是经验丰富的程序员常常发现有必要分析整个程序为了找到一个错误,因此被迫浪费宝贵的时间调试他们的源代码。记住这一点,我们提出了一个智能模型,该模型是基于长期短期记忆(LSTM),并把它跟一个源代码的注意力机制完成。因此,该模型可以检测源代码错误位置,然后预测正确的单词。此外,该模型可以将源代码是否他们是错误的。我们训练我们的模型使用的源代码,然后评估性能。所有的数据用于我们的实验提取Aizu在线法官(AOJ)系统。实验结果表明,错误检测和预测的准确性方面我们提出的模型大约是62%和源代码分类精度是大约96%,表现优于标准LSTM和其他先进的模型。 Moreover, in comparison to state-of-the-art models, our proposed model achieved an interesting level of success in terms of error detection, prediction, and classification when applied to long source code sequences. Overall, these experimental results indicate the usefulness of our proposed model in software engineering and programming education arena.

1。介绍

编程是一种人类最具创造力的和有效的努力,和大量的研究一直致力于提高软件的建模和理解代码(1]。现在许多此类研究的结果支持各种各样的核心软件工程(SE)的目的,如错误检测、错误预测,误差位置识别、片段建议,代码补丁一代,源代码开发建模和分类(1]。从学习者和世界各地的专业人士不断创造大量新项目来改善我们的生活,这是一个普遍真理,没有程序发布没有经历一场全面的显影后调试过程。几乎每个软件产品通过不同的测试阶段SE周期。事实上,一旦检测到错误的源代码在生产或测试阶段,调试过程立即开始找到并修复错误。这意味着学习者和专业人员花费大量的时间试图找到源代码中的错误。发现一个错误,常常需要验证整个程序,这是一个非常漫长的过程和费时的。这种不利情况的出现导致了新的SE研究窗口(2]。有相当数量的错误,通常由学生,程序员和开发人员。这些包括缺少分号分隔符,无关的符号、变量,丢失的括号,括号不完善、运营商、缺失的方法、类、不恰当的类,不恰当的方法,不相关的参数,逻辑错误,和其他关键错误。尽管这些错误通常意味着缺乏经验,浓度对细节的不足,和其他不合适的行为,谷歌研究编程显示这些错误可以潜入的作品即使是最有经验的程序员(3]。通常情况下,编程是一个非常敏感和容易出错的任务,一个错误最终可以有害软件最终用户。此外,源代码在开发过程中很容易出错,所以智能支持代码完成模型已经成为一个有趣的研究领域。中正在探索解决方案,使用人工智能(AI)提供引人入胜的潜力解决源code-related并发症。在过去的几年中,自然语言处理(NLP)开发人员产生了一些非凡的结果在语言处理等不同的领域,机器翻译和语音识别。NLP的广泛成功的原因被发现在其基于语料库方法,统计应用程序,信使建议,手写识别,增加通过大型语料库的文本。例如,n克模型中随机语言模型形式,可用于预测下一项基于语料库。不同的n克模型如三元、卦,skip-gram [4),和手套5)都是统计语言模型是非常有用的在语言建模任务。这一新兴的使用促进了可用性的大型文本语料库和帮助NLP技术成为每天更有效。NLP语言模型不使用时特别有效的复杂SE努力但仍然有用直观的语言模型。因此,许多研究人员将努力集中在使用神经网络源代码完成任务语言模型。在[6],作者提出了一个本地缓存模型,处理localness软件代码,但仍然遇到问题small-context源代码使用语法模型。研究确定神经网络语言模型可以提供健壮的替代品源代码插图。此外,另一项研究表明,递归神经网络(RNN)模型,它能够保持更长时间的源代码内容比传统语法和其他语言模型、在语言建模取得了值得提的成功(7]。然而,RNN模型面临着限制时代表了源代码的背景下,由于梯度消失或爆炸(8),这使得它很难被训练使用长序列相关的源代码。因此,只有有效的小型语料库的源代码。尽量减少梯度消失或爆炸问题,RNN模型已经扩展到创建长短期记忆(LSTM)网络8]。LSTM网络是一种特殊的RNN记得再源代码序列由于其非凡的内部结构。

在本文中,我们提出一种智能支持源代码完成模型设计使用一个LSTM结合注意力机制(当时称为LSTM-AM)这就增加了性能比标准LSTM模型。注意机制是一个有用的技术,考虑了所有过去的隐状态预测的结果。注意机制可以提高神经网络智能模型的准确性。我们训练LSTM, RNN、CNN和LSTM-AM网络等不同的隐藏单元(神经元)50,100年、200年和300年使用一堆源代码从一个AOJ系统。错误的源代码被输入到所有模型来确定它们的相对能力预测和检测代码错误。结果表明,我们的LSTM-AM网络扩展的功能标准LSTM网络的正确检测和预测此类错误。甚至一些源代码包含逻辑错误和其他重要的错误不能被一般的编译器,而我们的提出的智能支持模型能够检测这些错误。另外,LSTM-AM网络可以保持较长的序列输入源代码,从而生成更精确的输出比标准的LSTM和其他先进的网络。此外,我们多元化的不同设置,隐藏的单位为我们创造最合适的模型研究叉、训练时间、准确性,和其他性能度量。此外,该模型可以将源代码基于代码中的缺陷。 We expect that our proposed model will be useful for students, programmers, developers, and professionals as well as other persons involved in overall programming education and other aspects of SE.

介绍了本研究的主要贡献如下:(我)提出了智能支持的模型可以帮助学生和程序员完成的源代码(2)智能支持模型检测此类错误(逻辑)使用传统编译器无法识别(3)提出了智能支持模型精度是优于其他基准模型大约62%(iv)我们建议的模型可以划分源代码基于检测到的错误。分类精度是96%比其他模型(v)该模型突出了缺陷点位置/在源代码行号(vi)该模型可以提高学习者的能力来修复错误的源代码很容易通过使用位置/行号

本文的其余部分的结构如下。节2的背景,我们提出我们的研究和讨论之前的研究。部分3描述了自然语言处理和人工神经网络的概述。节4,我们提出我们的建议的方法。数据收集和问题描述问题提出部分5。实验结果描述部分6。节7,我们将讨论结果。为此,部分8本文总结与未来工作的建议。

2。背景和先前的研究

现代社会进步的繁荣是由于广泛领域的信息和通信技术(ICT),在许多的编程是一个至关重要的方面发展。每天数以百万计的源代码被创建,其中大多数是通过手动编译流程测试。因此,最近出现了一个重要的研究领域,包括使用人工智能系统源代码完成在开发过程中,而不是手动编译流程。更具体地说,人工神经网络模型用于源代码完成为了实现更多的人类的结果。大量研究已经完成和各种不同的方法,提出了人工智能在SE领域的使用,其中一些将在下面被审查。

在[1),作者提出一个语言模型源代码测试使用神经网络代替现有的语言(例如,n克)模型。在大多数情况下,n克语言模型不能有效地处理长源代码序列,因此神经网络语言提高源代码的模型分析。在引用的研究中,RNN和LSTM语言模型训练和获得的结果表明,LSTM模型比RNN的执行模型。研究使用了一个Java项目主体评价语言模型的性能。

在[4),作者提出了一个新颖的LSTM-based源代码校正方法,使用段的相似之处。更具体地说,研究利用sequence-to-sequence源代码(seq2seq)模型校正过程。seq2seq模型是一种机器学习方法非常有效的机器翻译等语言建模,会话模型,文本翻译和字幕。

白等。7使用RNN)提出了一种深软件语言模型。使用Java语料库获得的实验结果表明,该软件语言模型优于传统模型像cache-basedn克和标准语法。软件语言模型显示重大承诺在SE领域使用。

在[9),作者提出了一种新颖的Tree-LSTM-based模型,每个LSTM单元作为一个树。该模型评估基于句子的语义相关度预测任务对和情绪分类。与此同时,在[10),作者提出了一个方法,分类归档由语言类型使用一个LSTM源代码。他们的实验结果表明,该LSTM超越了语言学家分类器,朴素贝叶斯分类器(NB),和其他类似的网络。

在[11),作者提出了一个技术,自动识别并纠正语法错误使用一个RNN源代码。他们提出SYNFix算法找到下一个预测的错误位置标记序列,之后发现错误是解决替换或插入一个合适的词。这种技术的一个重要限制是它不能恢复或处理多个语法错误代码序列。

Pedroni和迈耶12]研究发现适当的类型的编译器的消息可以帮助新手程序员错误识别源代码。错误消息所需的行动是什么?在这项研究中,作者通过实验表明,某些消息类型帮助新手程序员比其他人更。

在[13),作者提出了一个模型源代码语法纠错,用C语言编写的。这种模式称为DeepFix,使用多层sequence-to-sequence神经网络结合一种注意力机制。作者还提出了一种训练RNN可以预测一个错误的位置号码并修复错误与适当的令牌。实验结果表明,共有6971源代码错误,这种方法完全固定约27%,部分固定约19%。

拉赫曼et al。14)提出了一个语言模型使用LSTM修改源代码的错误。该模型是一个结合的注意机制与LSTM增加LSTM标准的有效性。实验结果表明,该模型显著纠正错误的源代码。

在[15),作者提出了一个源代码缺陷检测技术,通过不同的hyperparameters LSTM为了调查困惑问题和训练时间。结果表明,LSTM产生显著的源代码错误检测的结果。

Bahdanau et al。16使用RNN)提出了语言翻译模式。更具体地说,encoder-decoder技术作为翻译时需要编码源文本变成固定长度的向量。利用向量长度,解码器可以翻译句子。本文扩展了固定长度的限制,允许从源句子(软)搜索预测目标词而不是使用源代码的硬段的句子。

李等人。17]指出神经网络语言模型的局限性。为了克服这些问题,作者提出了两种新方法:注重mechanism-enhanced LSTM混合网络和一个指针。注意mechanism-enhanced LSTM用于减轻固定大小的向量和提高记忆能力通过提供多种方式backpropagate梯度。相比之下,指针混合网络预测的词汇(UoV)通过考虑本地重复标记词。该研究还提出了利用基于抽象语法树(AST)——代码完成的方法。

李等人。18)提供了一个源代码缺陷使用一个叫做DP-CNN卷积神经网络预测模型。抽象语法树(AST)用于将源代码转换成向量。使用嵌入的地图,这个词每个令牌向量转换为数值向量。CNN一个数值向量用于培训。此后,CNN模型创建源代码的语义和结构特点。与传统的缺陷预测功能相比,DP-CNN性能提高了12%,其他先进的模型与其他传统特性的基础方法相比,增长了16%。

大坝et al。19]介绍了软件缺陷的深度学习模型预测。模型使用了抽象语法树(AST)纳入LSTM网络。每个节点的AST结构视为一个LSTM单元。深树LSTM模型存储语法和结构信息的源代码进行准确的预测。基于树的LSTM模型是无监督的学习风格。该模型不清洗或更换任何错误的单词通过预测正确的单词。它是用来从一个源代码生成错误概率;之后;一个分类器识别源代码的缺陷用概率的值。

范教授等。20.】美国有线电视新闻网作为语言模型基于前馈神经网络(FFNN)。实验结果表明,CNN语言模型的性能比正常FFNN要好。至于周期性模型,CNN语言模型表现良好与RNN相比,但低于最先进的LSTM模型。

在[21),作者提出了一个源代码RNN-based模型故障预测。有两种常见的评价方法如曲线下的面积(AUC)和F1-measures用于测量性能。建议引起RNN模型提高了源代码分类的准确性。AUC和F1-measure实现7%和14%的精度比其他基准模型。

总之,人们提出了各种各样的方法和技术在不同的研究中,大部分采用RNN, LSTM或卷积神经网络(CNN)模型操作和其他应用程序源代码。很难解释这提出研究工作优越于其他研究。RNNs执行相对比传统的语言模型,但是RNNs能力有限长源代码输入(7]。LSTM是一种特殊的RNN网络,记得再源代码序列由于其非凡的内部结构,从而克服RNN的缺点。我们建议的模型与其他模型。我们建议LSTM-AM网络进一步扩展了标准LSTM网络的功能,它可以用于检测和预测源代码以及源代码分类错误。标准LSTM网络只使用最后一个隐藏的状态进行预测。相比之下,我们的LSTM-AM网络可以考虑在所有先前的隐藏状态的结果做出预测。因此,它是一种更有前途的技术用于源代码操作比其他先进的语言模型。

3所示。语言模型和人工神经网络的概述

3.1。N克语言模型

自然资源丰富的文本语料积累每天来自多个来源的文本。自然语言处理背后的成功是基于这个富文本语料库。出于这个原因,是由于它的简单性和可扩展性,n克模型在自然语言处理领域的流行。一个n克模型预测即将到来的词或文本基于概率的一个序列,和整个词序列的概率P( , ,…, )可以用链式法则的概率计算。

马尔可夫假设,时使用的一个词的概率完全取决于前面的词,是中描述

因此,的一般方程n只用于下一个单词序列的条件概率如下:

在实践中,许多平滑技术的极大似然估计可以(22),见以下方程:

叉测量来验证预测的一个语言模型23]。低熵值意味着更好的语言模型。

3.2。递归神经网络(RNN)

RNN是神经网络变体,经常被应用于自然语言处理、分类、回归,等等。在传统的神经网络,通过多个隐藏层输入处理,然后通过输出层输出。依赖的顺序输入,一般神经网络不能生产准确的结果。例如,对于依赖句子”玫瑰是一朵美丽的花”,一般神经网络的“玫瑰“生成一个输出完全基于输入”玫瑰”。然后,当““输入被认为是,网络不使用以前的“玫瑰”结果。相反,它只产生结果使用这个词”。同样的,一个简单的神经网络需要句话说”一个”、“美丽的”和““生成结果不考虑前面输入的结果。为解决这一问题,出现了RNN的内存保留之前的时间步的结果。一个简单的RNN结构如图1

在数学上,一个RNN可以使用方程(6)。RNN的当前状态可以表示为 在哪里ht当前状态,ht−1是之前的状态,xt是当前状态输入, 是复发性神经元的重量, 输入神经元的重量。

方程(8)作为一个激活函数(RNN的双曲正切):

最后,输出函数可以写成: 在哪里 输出层和重量吗yt是输出。

RNN有多个输入和输出类型如一对一,一对多,多对一,和许多许多。尽管所有的优势,RNN的主要缺点是容易梯度消失或爆炸。

3.2.1之上。梯度消失和爆炸

在本节中,我们讨论了RNN梯度消失和爆炸问题。火车RNN网络似乎简单,但是很难,因为它的复发性连接。在正向传播的情况下,我们把所有的重量指标和一个类似的过程需要应用反向传播。反向传播,信号强弱导致爆炸和消失。梯度消失使一个复杂的情况来确定模型参数的方向提高损失函数。另一方面,梯度爆炸使学习条件不稳定。隐藏RNN网络的训练是通过不同的时间步骤使用反向传播。不同梯度的总和在每一个时间步等于总误差梯度。表达的错误可以通过考虑总时间的步骤T在以下方程:

现在,我们用链式法则计算总体误差梯度:

这个词 参与雅克比的产品吗 见以下方程:

这个词 在方程(12由方程(评估)7)。

现在,雅可比矩阵的特征分解 给出的 我们获得特征值 在哪里 和相应的特征向量 如果一个隐藏的状态的方向 被转移到 任何修改,然后梯度 从方程(14)产品的雅克比隐藏状态序列 很容易想象 主导 总之,如果最大的特征值 ,然后梯度会消失 导致梯度爆炸(24]。缓解梯度消失或爆炸问题,梯度剪裁,输入逆转,身份的初始化、正规化,LSTM等技术可以使用。

3.3。LSTM网络

一个LSTM神经网络是一种特殊的RNN网络常被用来长输入过程。LSTM并不局限于单一输入但还可以处理完整输入序列。通常,一个LSTM结构等四门忘记,输入、细胞状态和输出。每个门都有一个单独的活动的细胞状态保持完整信息的输入序列和其他用于管理的输入和输出活动。图2显示了一个基本的结构LSTM单位。

在刚开始的时候,处理开始忘记门,以确定哪些信息必须被丢弃(或保持)细胞状态。忘记门在细胞状态ct−1可以通过以下方程(表示15),ht−1隐藏的状态和吗xt是当前输入。的输出(0或1)忘记门是通过一个s形的函数。如果忘记门的结果是1,那么我们保持细胞中的数据状态;否则,我们丢弃的数据。

输入门确定哪些细胞状态值应该是当出现新的数据更新。通过双曲正切函数,候选人的值 现在创建单元格的状态。

现在,我们更新旧的细胞状态ct−1ct

过滤后的版本的细胞状态将被输出ot通过s形的功能和重量也会被更新。

识别LSTM的力量,我们想把这个网络模型应用到错误检测,预测、修正,在源代码和分类。

4所示。建议的方法

我们建议LSTM-AM网络有一个有效的深度学习架构,作为智能支持源代码模型完成。因此,我们训练我们的模型使用正确的源代码,然后使用它成功地检测错误和正确预测单词错误的源代码基于语料库训练。此外,该模型可以将源代码使用的预测结果。我们的模型生成一个完整的反馈包每个源代码检查后,学生和专业人士可以从模型中受益。我们提出的工作流模型如图3

4.1。提出LSTM-AM网络

多年来,注意机制已经适应多种不同的任务(25- - - - - -30.),最受欢迎的和有效的sequence-to-sequence建模。通常情况下,隐藏在sequence-to-sequence建模中,最后的输出状态是用作进一步考虑上下文向量。很难使用sequence-to-sequence模型流程长序列输入(31日]。注意机制可以映射所有先前隐藏状态输出,包括最新的隐藏状态输出,产生最相关和准确的结果。

记住这一点,我们把注意力机制到一个标准LSTM LSTM-AM,如图4。这加强了我们的模型预测了源代码的能力序列。通常关注提高语言和翻译模型的性能通过合并所有隐藏的状态输出和将softmax功能;有时,注意力机制作为致密层。最近,注意机制已经被使用在机器翻译任务取得了巨大的成功。此外,有时有必要机器翻译模型压缩整个序列输入到一个更小的尺寸向量,所以有可能损失的信息。注意机制的使用已经修正这个问题。在我们提出的模型中,一个关注机制结合LSTM。虽然标准的能力LSTM捕获远程RNN的依赖远远优于。它仍然遇到问题时一个隐藏的状态必须携带所有必要的数据在一个小型向量(31日]。注意机制的引入及其与神经语言模型如LSTM旨在克服这些问题[16]。注意机制提供神经语言模型和使用适当的信息在过去的所有秘密状态。结果,提高网络的保留能力和不同路径提供backpropagate梯度。可以找到更详细的数学插图的关注机制(17]。

对于我们的注意力机制,我们的外部存储器E前面的隐状态,用 该模型使用注意层通过考虑htt当时t,注意体重αt,和上下文向量ct

在时间步预测下一个单词t、判断不仅是基于当前的隐状态ht而且在上下文向量ct。在这一点上,重点转向词汇空间生成最终的概率 通过softmax函数。在这里,Gt是一个输出向量。 在哪里 是可训练的投影矩阵, 是一种偏见, 是一个词汇/字典大小。

基于以上方面,我们可以看到一个注意力机制的使用有助于有效地从输入序列中提取准确的特点。因此,使用LSTM-AM将增加我们的模型的能力。

5。数据采集和问题描述

一个在线法官(OJ)系统是一个基于web的编程环境,编译并执行提交源代码并返回判断基于测试数据集。橙汁系统是一个开放平台编程实践以及竞争。进行我们的实验工作,我们收集了从AOJ系统源代码32,33]。目前,AOJ系统是毫不费力地执行各种编程比赛和学院。2020年5月,约75000用户经常在AOJ玩他们的编程活动平台,与2100年自治问题集。所有的习题进行分类基于不同算法和计算机科学的分支(14]。因此,大约450万大规模解决方案源代码归档AOJ平台,鼓励更好的软件工程领域的研究。我们使用的所有源代码AOJ系统培训和测试目的,以避免威胁或困难在我们的模型。模型训练,我们选择正确的解决方案写在C语言等三个问题的最大公约数(GCD),插入排序(是),质数(PN)。总共有2285正确的源编码问题和整体解决方案的成功率是35.16%。正确的源代码的总数GCD的问题是1821年总体解决方案的成功率是49.86%。考虑到肾小球囊性肾病问题,我们看到有两个输入(一个b)给出了一条线,之后的最大公约数一个b将输出,如图5(一个)

相比之下,正确的源代码的总数PN的问题是1538年总体解决方案的成功率是30.8%。PN的问题描述中,第一行包含一个整数N。代码需要计数的质数的列表N元素,如图5 (b)

5.1。数据预处理和培训

在我们进行培训之前,原始源代码被过滤删除不必要的元素。为此,我们遵循程序应用于(14]源代码嵌入和标记。首先,我们将所有无关的元素从代码行(n)、评论和标签(\t)。之后,剩下的所有元素的代码被转化成数字单词序列,函数,令牌,关键字、变量、类和字符被视为简单的单词。整个代码转换过程称为标记和词汇的创造。然后,每个词与IDs编码的函数名称,关键词,变量名,和字符编码表中列出1。培训和评估过程的流程图模型如图6


单词 id

汽车、休息,char,情况下,const,继续,做,默认情况下,双,枚举,别的,exturn,,浮动,goto, int,如果长,回报,登记,签订,短,大小,结构、静态的,开关,typedef,无符号,联盟,不稳定,空虚,而 30 - 45
一个来Z(上)和一个z(低) 96 - 121和127 - 152
0 - 9 80 - 89
−∗=,+,/,%,|,<、>、(){},(,) 94,74,75,76,79,69,155,92,93,72,73,153,155,122,124
@、#、$、%和 95、67、68、69、70
!(不)?(问题),(单引号),”(双引号),(点);(分号):(双冒号),(逗号) 63,64,71,66,78,90,91,76

在早期阶段的培训阶段,源代码是首先转换成词序列,然后编码到如图标记id7。这个转换过程称为字嵌入和标记。

完成后,嵌入和标记过程,我们训练模型和其他相关先进的模型与正确的源代码,肾小球囊性肾病,PN的问题。LSTM-based语言模型的简单的培训流程如图8

在训练过程结束时,下一步是检查源代码的性能模型完成的任务。如何准确识别错误和预测修正吗?我们建议的模型创建的每个词的概率。我们认为一个词将是一个错误的概率低于0.1(候选人14]。此外,损失函数来测试模型,我们计算每个时代的叉将softmax层。叉被定义为实际和预测结果之间的区别。Softmax是激活函数,创造了可能性。通常,softmax作为最后一层神经网络。将softmax函数的输出范围在0和1之间。将softmax层收到x= (x1,x2,x3,x4、…xn),并返回概率p= (p1,p2,p3,p4,,pn),定义以下方程:

熵是一种有效的绩效衡量指标的概率模型。低价值叉表明一个好的模型。

预测过程的一个简单的例子使用我们的模型显示在图9。输入序列的例子是{“=”,“x”" + " " y "};然后模型计算下一个可能的正确单词基于语料库的源代码。最后,这个词概率最高的是未来的赢家预测词。基于输入序列在上面的示例中,正确预测单词是{”;“}。

5.2。Hyperparameters

在目前的研究中,我们定义了几个实验hyperparameters为了获得更好的结果。为了避免过度拟合,辍学比例(0.3)被用于我们的模型。使用亚当LSTM网络进行优化,这是一个随机优化方法(34,35]。学习神经网络训练的速度是一个重要的因素,因为学习速率的值可以控制模型的学习速度。网络学习变得越来越快和慢的基础上学习率高和低价值,分别。在本文中,我们确定学习速率l= 0.002,在训练网络权值更新的价值l 是指数衰减率一阶矩和二阶矩估计的估计指数衰减率是 的值 分别是0.001和0.999。的价值 选择,以避免任何除零 我们训练网络在50、100年、150年和200年隐藏的单位。每个模型类型被任命为参照的数量单位,如100 -单元模型和200 -单元模型。训练后,我们评估的能力提出LSTM-AM技术来挑选最好的隐藏的单位数量从创建的模型。

6。实验结果

我们提出了智能支持模型可以用于源代码完成。此外,它是一个通用模型,可以适应任何源代码模型训练和测试。在提出的模型中,我们定义了一个最小概率值的模型可以识别错误候选词根据训练语料库。因此,我们随机选择了一些不正确的,肾小球囊性肾病,PN源代码,用它们来评估模型的性能水平。在这里,我们应该注意到,我们所有的研究工作和语言模型训练进行Intel®™核心i7 - 5600 u中央处理单元(CPU)个人电脑定时在2.60 GHz 8 GB的RAM 10在64位Windows操作系统。

6.1。隐藏的测量单位选择和叉

我们使用一些隐藏的单位如50,100年、150年和200年来训练我们的提议LSTM-AM和其他先进的模型。在训练中,正确的源代码,肾小球囊性肾病,和PN问题分别使用的所有源代码,肾小球囊性肾病,PN结合使用。数量的每种类型的问题的源代码是列在表中2


问题类型 的源代码

最大公约数(GCD) 964年
插入排序(是) 1518年
质数(PN) 972年

我们训练提出LSTM-AM和不同的先进的模型使用正确的源代码。表3介绍了叉在30时代在训练使用PN源代码。50 - 100 - 150,和200 -单元模型总共花了11483,20909,38043,和59065秒训练使用PN LSTM-AM模型问题,分别。


模型 单元(神经元)
50 One hundred. 150年 200年

LSTM-AM 4.35 3.90 2.87 2.23
LSTM 4.75 3.31 2.37 2.02
RNN 6.35 4.72 4.21 3.95

45叉的不同模型在训练使用肾小球囊性肾病和源代码,分别。50 - 100 - 150,和200 -单元模型总共花了19005,24110‬,24273,和30420秒训练使用GCD LSTM-AM模型问题,分别是问题,总共花了39643,62756‬,80100,和100803秒。相比之下,其他车型如LSTM和RNN相对更少的时间进行训练。


模型 单元(神经元)
50 One hundred. 150年 200年

LSTM-AM 2.22 1.80 1.75 1.30
LSTM 2.56 1.91 1.80 1.39
RNN 5.11 4.36 3.50 3.23


模型 单元(神经元)
50 One hundred. 150年 200年

LSTM-AM 3.12 1.55 1.40 1.27
LSTM 3.26 1.63 1.48 1.26
RNN 4.99 3.78 2.89 3.11

评估该模型的效率,培训期间的epochwise叉使用200 -单元模型计算图中描述10

正如上面提到的,一个模型的效率强烈取决于叉的价值。在培训期间,200 -单元模型产生最低的叉叉的使用每种类型的习题。200 -单元模型使用,PN,肾小球囊性肾病问题如图11

我们旨在找到最适合隐藏单位LSTM-AM网络和其他先进的模型。在这方面,我们一起把所有的源代码(约3442)来训练我们的提议和其他先进的模型。叉和总时间记录在最后时代的所有模型如表所示6。200 -单元模型的熵低于其他模型。


模型 单元(神经元)
50 One hundred. 150年 200年

LSTM-AM 3.96 2.99 2.75 2.17
LSTM 3.89 3.26 2.50 2.31
RNN 5.11 4.36 3.87 3.53

基于以上方面,确保200 -单元模型提供了最好的结果,因为它的熵最小值在所有单位;因此,我们选择了200个单位的模型LSTM-AM网络和其他先进的网络。

6.2。错误检测和预测

在我们的评估中,我们测试了LSTM-AM使用错误的源代码和其他先进的模型。可能错误的位置是通过改变文本颜色和突显出疑似错误的部分。同时,该模型生成错误单词,并预测单词的概率。因为标准LSTM和LSTM-AM网络识别源代码错误很好而RNN和其他网络200 -单元模型时使用,200个单位的模型被用于所有的实证实验。

一个错误的源代码序列评价标准LSTM网络如图12。在这里,可以看出错误检测到线路2,6,15和16。在第2行中,“一个“在”肾小球囊性肾病”功能是检测到一个错误的候选人,在预测正确的词是“概率0.62435395)”。该模型认为“肾小球囊性肾病”功能可能不带参数,“)”是预测相反的词一个”。在第6行,错误的单词是“如果”和预测的词是“其他”概率0.5808078。此外,在第15行,预测词是“空白空间”的“双引号的地方。“最后,在16日模型检测”c“作为一个错误对象并建议有高水平的概率,取而代之的应该是“b”。“c“程序的上下文中是无关紧要的;它可以证实标准LSTM模型成功地检测到错误候选人如图12,如表中列出7


错误的单词 错误的词的概率 位置 预测的话 概率

一个 0.000496462 2 ) 0。6243539
如果 0.014852316 6 其他的 0.5808078
0.029112648 15 空间 0.6583209
c 8.5894303e−10 16 b 0.9261215

同样的错误的源代码被LSTM-AM然后评估网络,如图13。错误的地方在2行,15和16。这个词一个“在”肾小球囊性肾病”功能是检测到一个错误的候选人和预测“)”建议。在第15行,“双引号”这个词被确认为一个错误,和预测提出词“空白空间”。这个词c”在16行被认为是一个错误和相应的预测词建议是“b”概率为0.9863272,如表所示8


错误的单词 错误的词的概率 位置 预测的话 概率

一个 0。000309510 2 ) 0。5722154
0。045484796 15 空间 0。7051629
c 2.838025e−07 16 b 0.9863272

另一个有趣的错误的源代码,它存在于一些逻辑错误,由标准评估LSTM网络,如图14。所有检测到的错误的单词和相应的预测修正图14表中列出9


错误的单词 错误的词的概率 位置 预测的话 概率

0.049593348 31日 0.1376049
rst 0.02372846 38 限制型心肌病 0.6147145
} 0.0470908 39 返回 0.95013565

类似地,相同的错误的源代码被LSTM-AM网络测试,如图15。图的详细的错误描述15表中列出10,可以看出LSTM-AM网络检测到所有的潜在错误,包括真正的逻辑错误,成功。


错误的单词 错误的词的概率 位置 预测词 概率

一个 0.034574546 12 x 0.9269715
= 0.012642788 13 b 0.9468921
限制型心肌病 0.03553478 23 } 0.6362259
0.037460152 31日 0.5292723
rst 0.025345348 35 0.8597483

6.3。源代码的分类

我们评估提出LSTM-AM和其他基准模型使用清洁和错误的源代码。广泛的实验,我们选择了几个基准模型比较分类结果如(i)随机森林(RF) (36)方法,(2)训练随机森林(RF)法与秘密属性限制玻耳兹曼机(元)37),和(3)随机森林(RF)方法学习秘密属性用很深的信念网络(DBN) [38]。

精度、召回和F测量方程表达的(23)- (25),分别验证分类性能: 在哪里 被称为真阳性,如此吗 意味着源代码缺陷分类错误, 被称为假阳性;这个案子 意味着清洁源代码是归类为错误的。这个词 被称为假阴性在哪里 意味着错误的源代码被列为一个干净的源代码。F测量称为谐波平均查全率和查准率。一般来说,我们不能同时达到最优结果的查全率和查准率。例如,如果所有的源代码被归类为有缺陷,由此产生的回忆得分将100%精度的得分将会很小。因此,F测量是一个回忆和精度之间的权衡。的范围F测量分数是介于1和0;分数越高意味着更好的分类模型。

在正常情况下,我们建议的语言模型检测所有可能的错误在源代码中发现错误不正确的错误(TE)。所以,我们只考虑TE分类过程。一个错误被称为预测概率超过0.90时TE。我们一致的术语正确积极的 与我们提出的模型,当模型检测TE错误的源代码。再一次,如果假阳性 ,至少一个TE中检测到正确的源代码。最后,假阴性 ,没有一个TE,检测到错误的源代码中这意味着它干净代码分类错误的源代码。正如上面提到的,所有的模型都是训练有素的通过使用正确的源代码和测试500随机选择的源代码从每个问题集(肾小球囊性肾病,和PN)。分类结果列在表中11- - - - - -13是,肾小球囊性肾病,分别和PN源代码。


模型 精度(P) 回忆(R) F测量

LSTM-AM 0.99 0.97 0.97
LSTM 0.90 0.88 0.88
RNN 0.82 0.79 0.80
美国有线电视新闻网 0.85 0.80 0.82
射频 0.62 0.55 0.58
射频+遏制 0.66 0.65 0.65
射频+ DBN 0.71 0.66 0.68


模型 精度(P) 回忆(R) F测量

LSTM-AM 0.98 0.95 0.96
LSTM 0.87 0.89 0.87
RNN 0.80 0.81 0.80
美国有线电视新闻网 0.83 0.84 0.83
射频 0.64 0.59 0.61
射频+遏制 0.70 0.63 0.66
射频+ DBN 0.75 0.80 0.77


模型 精度(P) 回忆(R) F测量

LSTM-AM 0.95 0.94 0.94
LSTM 0.88 0.86 0.86
RNN 0.76 0.79 0.77
美国有线电视新闻网 0.80 0.82 0.80
射频 0.59 0.60 0.59
射频+遏制 0.63 0.62 0.62
射频+ DBN 0.65 0.66 0.65

在分类过程中,F测量分数LSTM-AM和其他先进的模型如图16F测量结果表明,我们提出的模型的分类性能优于其他方法。

7所示。讨论

评估我们的提出的智能支持模型,我们定义了三种性能测量指标,如误差预测精度(EPA),错误检测准确性(EDA),和模型精度(MA),方程所示(26)(28)。特别是,我们评估模型和其他基准模型使用方程(28)。

在大多数情况下,该模型检测代码中潜在的错误。在这些错误中,有一些原始的错误称为真正的错误(TE)。同样,总数的预测的话,一些最初的正确的话,他们被称为真正的正确的单词(但)。

在评估过程中,我们放弃了RNN和其他基准模型,因为他们获得高LSTM达到非常低的叉叉而标准。因此,我们验证标准LSTM和LSTM-AM网络使用几个随机选择错误的源代码。图12和表7现在的细节标准LSTM错误检测和预测。标准LSTM发现错误行2,6,15、16和提供相应的候选词”一个”、“如果”、“双报价,”和c,分别。预测正确的字是“)”、“,”“空白”,和“b”。虽然这些结果表明,标准LSTM发现最可能的错误的单词和地点,并不是所有的错误是正确的错误(TE)候选人。在第2行中,模型检测”一个“作为一个错误候选人猜”肾小球囊性肾病“是一个函数没有参数。然后,作为一个结果,它预测关闭括号“)”作为正确的单词。同样,在第6行,模型检测到“如果”作为候选人错误单词和预测“其他”作为相应的校正。在这种情况下,模型计算,在第3行“如果”这个词开始和结束在5行,第5行后应该”这个词。“结果,标准LSTM预测“其他”在第6行而不是“如果。“然而,错误的预测线2和6都是不正确的,即使他们假设是合理的。应该注意的是,错误的候选词c“行16是一个真正的错误(TE)和预测“b”是正确的。错误的评估结果使用标准LSTM源代码在图12展示在表14


评价指标 结果(%) 描述

EDA 25 TE = 1,语音= 4
环境保护署 25 TCW = 1,课程结业者将加入慈善研讨课程= 4
25 EDA = 25, EPA = 25

在图13,LSTM-AM模型共有三行错误检测到2,15日和16日预测相应的正确的单词被“),”“空白”,和“b“分别如表所示8。错误的评估结果使用LSTM-AM源代码在图13展示在表15


评价指标 结果(%) 描述

EDA 33.33 TE = 1,语音= 3
环境保护署 33.33 TCW = 1,课程结业者将加入慈善研讨课程= 3
33.33 EDA = 33.33, EPA = 33.33

进一步评估模型的性能,然后更大,更复杂的错误的源代码和使用标准LSTM和验证它LSTM-AM网络,如图1415,分别。错误的源代码在第23行包含一个逻辑错误。在这个源代码,两个从键盘上输入被称为“一个”和“b”变量。更高的值分配给变量”x”和较低的值分配给变量”y”。最初,变量”x“被认为是股息和变量”y“被指定为一个除数。然而,第23行检查发现初始模运算符所使用的最大公约数的小价值变量”y“被认为是红利,更高的价值变量”x”被认为是一个除数。通过遵循代码序列,将正确的逻辑x%y。基于这方面,LSTM-AM网络发现逻辑错误正确通过考虑前面的代码序列,而标准LSTM不能探测线23中的逻辑错误。错误的源代码的评价结果数据1415表中列出16,可以看出LSTM-AM网络性能更好的长源代码和复杂的代码和逻辑或其他错误。


模型 EDA (%) 美国环境保护署(%) 马(%)

LSTM 66年 30. 48
LSTM-AM 90年 72年 81年

除了上述评估源代码和示例,我们评估约300随机选择错误的源代码使用LSTM和LSTM-AM模型和发现他们的平均精度值约31%和62%,分别。这些详细统计数据如表所示17


的名字 不。 模型
LSTM LSTM-AM
EDA 环境保护署 EDA 环境保护署

肾小球囊性肾病 One hundred. 34.27 32.13 33.2 65.47 59.04 62.26
PN One hundred. 28 31日 29.5 64.6 57.3 60.95
One hundred. 31.4 29.8 30.6 63.6 61年 62.3
31.1 61.84

与在这项研究中,所使用的示例程序的长度可以相差很大,许多包含从500年到1000行源代码,或者更多。都有一个共同点是,在编写程序时,众多的变量和函数可能在许多行之前宣布。因此,关注机制需要在长期的源代码的依赖性,以及正确评估代码错误。我们的实验结果表明,该LSTM-AM模型更加成功了再测序源代码比标准LSTM模型,如图17

此外,一些语法和逻辑错误不能被传统的编译器源代码。在这种情况下,我们建议LSTM-AM-based学习者语言模型可以提供有意义的反应和专业人士可用于源代码调试和重构的过程。这将节省时间当努力检测错误从数千行源代码,以及限制的区域必须搜索找到的错误。此外,使用这种智能支持模型可以帮助学生和专业人士更容易找到逻辑的源代码和其他重要错误。此外,我们建议的模型的分类精度比其他先进的模型。的平均精度、召回和FLSTM-AM模型的测量分数是97%,96%,和96%,分别比其他先进的模型。

8。结论

在目前的研究中,我们提出了一个基于ai模型帮助学生在源代码和程序员完成。我们建议的模型预计将有效的提供端到端解决方案编程学习者和SE领域的专业人士。实验这一研究获得的结果表明,使用我们的错误检测和预测的准确性提出LSTM-AM模型约62%,而标准LSTM模型精度大约是31%。此外,我们的方法为预测提供位置数据错误,有效地限制了区域必须搜索发现错误,从而,减少所需的时间修复大型源代码序列。此外,我们的模型生成可能改正单词每个错误位置和检测逻辑和其他错误不能被传统的编译器。同时,在源代码LSTM-AM模型显示了巨大的成功比其他先进的分类模型。因此,它特别适合应用程序源代码长序列,可以预期做出显著贡献的源代码调试和重构的过程。尽管有上述优势,我们提出的模型也有一些局限性。例如,错误检测和预测并不总是完美的,有时无法理解语义模型的源代码,因为错误的检测和预测。因此,未来的工作将使用一个双向LSTM神经网络来提高这种智能支持源代码模型完成。

数据可用性

我们收购了所有的训练和测试从AOJ系统源代码。资源是通过API访问以下网站:https://onlinejudge.u-aizu.ac.jp/http://developers.u-aizu.ac.jp/index

的利益冲突

作者宣称没有利益冲突。

确认

这项研究是由jsp KAKENHI(批准号19 k12252)。

引用

  1. k . h .大坝,t . Tran, t·范教授“深语言模型的软件代码,”2016年,https://arxiv.org/abs/1608.02715视图:谷歌学术搜索
  2. m . Monperrus”自动软件修复:参考书目。”ACM计算调查,51卷,不。1 - 24,2018页。视图:出版商的网站|谷歌学术搜索
  3. h . Seo, c·萨多夫斯基s Elbaum e . Aftandilian和r . Bowdidge“程序员构建错误:一个案例研究(谷歌)”美国第36届国际软件工程会议(ICSE 14),页724 - 734,海得拉巴,印度,2014年5月。视图:出版商的网站|谷歌学术搜索
  4. y Pu、k·纳史木汗、a . Solar-Lezama和r .,22”sk_p:神经网络公开课项目校正器,”学报2016年ACM SIGPLAN国际会议系统、编程语言和应用程序:软件的人性,页,阿姆斯特丹,荷兰,2016年11月。视图:出版商的网站|谷歌学术搜索
  5. j·彭宁顿、r . Socher和c·d·曼宁“手套:全球词向量表示,”学报2014年会议上实证方法在自然语言处理(EMNLP)1543年,页1532 -多哈,卡塔尔,2014年10月。视图:出版商的网站|谷歌学术搜索
  6. z z你,苏,p . Devanbu“localness的软件”学报22 ACM SIGSOFT基础软件工程国际研讨会(FSE),页269 - 280,纽约,纽约,美国,2014年11月。视图:出版商的网站|谷歌学术搜索
  7. m .白色,c .溜冰,m . Linares-Vasquez p·丹尼斯,“深入学习软件存储库,”12日工作会议的程序挖掘软件存储库(MSR的15)345年,页334 -佛罗伦萨,意大利,2015年5月。视图:出版商的网站|谷歌学术搜索
  8. y Bengio: Boulanger-Lewandowski, r . Pascanu“反复优化网络的进步,”学报2013年IEEE国际会议音响、演讲和信号处理8628年,页8624 -温哥华,加拿大,2013年5月。视图:出版商的网站|谷歌学术搜索
  9. k . s . Tai, r . Socher和c·d·曼宁“改进的语义表征从树形结构长期短期记忆网络”协会学报》第53届计算语言学和第七届国际联合会议上自然语言处理,第1566 - 1556页,北京,中国,2015年7月。视图:出版商的网站|谷歌学术搜索
  10. j·雷耶斯、d·拉米雷斯和j . Paciello”自动编程语言源代码档案分类:深度学习的方法,”《2016年国际会议上计算科学和计算智能(去找找CSCI)拉斯维加斯,页514 - 519年,NV,美国,2016年12月。视图:出版商的网站|谷歌学术搜索
  11. 克里Bhatia, p, r·辛格“Neuro-symbolic程序校正入门编程作业,”学报40软件工程国际会议(ICSE 18),60 - 70页,哥德堡,瑞典,2018年5月。视图:出版商的网站|谷歌学术搜索
  12. m . Pedroni和b·迈耶”编译器错误消息:什么可以帮助新手?“在美国第39 SIGCSE技术计算机科学教育研讨会上波特兰,页168 - 172,或者美国,2008年3月。视图:出版商的网站|谷歌学术搜索
  13. r·古普塔美国朋友,a·金和s . k . Shevade”DeepFix:修复深度学习常见的c语言错误,”美国31日AAAI人工智能会议(AAAI-17),页1345 - 1351年,旧金山,美国,2017年2月。视图:谷歌学术搜索
  14. m·m·拉赫曼y Watanobe说,k .中村”源代码基于估计误差概率的评估和分类使用细心LSTM语言编程模型及其应用教育,“应用科学,10卷,不。8,2973年,页2020。视图:出版商的网站|谷歌学术搜索
  15. y Teshima y Watanobe说,“基于lstm网络的故障检测和解决方案代码,”学报2018年IEEE国际会议系统,人,控制论(SMC)宫崎骏,页3541 - 3546年,日本,2018年10月。视图:出版商的网站|谷歌学术搜索
  16. d . Bahdanau k .赵,y Bengio”神经由共同学习对齐和翻译,机器翻译”学报(ICLR)第三学习国际会议上表示圣地亚哥,页1 - 15、钙、美国,2015年5月。视图:谷歌学术搜索
  17. m . r . j . Li y . Wang律,我和王,“代码完成与神经网络注意力和指针,”美国27日国际联合会议上人工智能(IJCAI”展出18)。,页4159 - 4165,斯德哥尔摩,瑞典,2018年7月。视图:出版商的网站|谷歌学术搜索
  18. p . j . Li他,朱j . m . r .律,“通过卷积神经网络软件缺陷预测,”2017年IEEE国际会议软件质量,可靠性和安全性(QRS),页318 - 328,布拉格,捷克共和国,2017年7月。视图:出版商的网站|谷歌学术搜索
  19. h . k .大坝,t·范教授s w·Ng et al .,“使用的经验教训深刻的基于树的软件缺陷预测模型在实践中,“2019年IEEE / ACM 16国际会议上挖掘软件存储库(MSR)页46-57蒙特利尔,加拿大,2019年5月。视图:出版商的网站|谷歌学术搜索
  20. N.-Q。范教授,英国德国g . Boleda“卷积神经网络语言模型”学报2016年大会在自然语言处理的经验方法奥斯汀,页1153 - 1162年,TX,美国,2016年11月。视图:出版商的网站|谷歌学术搜索
  21. g .风扇叼x, y Kang h . Yu和l·陈,“通过引起复发性神经网络软件缺陷预测,“科学的规划ID 6230953条,卷。2019年,14页,2019。视图:出版商的网站|谷歌学术搜索
  22. s . f .陈和j·古德曼”平滑技术对语言建模的实证研究,”学报的第34届会议上计算语言学协会(ACL的96)圣克鲁斯,页310 - 318年,CA,美国,1996年6月。视图:出版商的网站|谷歌学术搜索
  23. m . Allamanis和c·萨顿矿业源代码存储库在大规模使用语言建模”10日工作会议的程序挖掘软件存储库(MSR的13)旧金山,页207 - 216年,CA,美国,2013年5月。视图:出版商的网站|谷歌学术搜索
  24. r . Pascanu t Mikolov, y Bengio“复发性神经网络训练的难度,”2012年,https://arxiv.org/abs/1211.5063视图:谷歌学术搜索
  25. 诉Mnih n . Heess a坟墓,k . Kavukcuoglu“复发性的视觉注意力模型,”学报》第27届国际会议上神经信息处理系统(少量)加拿大蒙特利尔,页2204 - 2212,,2014年12月。视图:谷歌学术搜索
  26. t .陈德良、h·范教授和c·d·曼宁,引起神经机器翻译的有效方法,”学报2015年会议上实证方法在自然语言处理(EMNLP)《里斯本条约》,页1412 - 1421年,葡萄牙,2015年9月。视图:出版商的网站|谷歌学术搜索
  27. h . j . Chen, x, l .聂w·刘,t·s·艾。蔡”,细心的协同过滤:多媒体推荐项目和组件级的关注,”40学报》国际市立图书馆会议在信息检索的研究和开发(" 17)新宿,页335 - 344年,日本,2017年8月。视图:出版商的网站|谷歌学术搜索
  28. 方x, z, y, c .林”LSTM-based方法与注意旅行时间预测的机制,”传感器,19卷,不。4 p。861年,2019年。视图:出版商的网站|谷歌学术搜索
  29. y吉泽章和y Watanobe说“逻辑错误检测系统基于结构模式和错误程度,“科学技术的进步和工程系统杂志,4卷,不。5,页1 - 15,2019。视图:出版商的网站|谷歌学术搜索
  30. t .松本和y Watanobe说“对混合智能逻辑错误检测,”推进技术产业化通过智能软件的方法、工具和技术卷,318年,第131 - 120页,2019年。视图:谷歌学术搜索
  31. l . j . Cheng盾,m . Lapata“长机器阅读,短期记忆网络”学报2016年会议上实证方法在自然语言处理(EMNLP)奥斯汀,页551 - 561年,TX,美国,2016年11月。视图:出版商的网站|谷歌学术搜索
  32. y Watanobe说“Aizu在线法官”,2018年,https://onlinejudge.u-aizu.ac.jp/视图:谷歌学术搜索
  33. Aizu在线法官,“开发者网站(API),”2004年,http://developers.u-aizu.ac.jp/index视图:谷歌学术搜索
  34. n .斯利瓦斯塔瓦辛顿,a . Krizhevsky Sutskever,和r . Salakhutdinov”辍学:一个简单的方法来防止神经网络过度拟合,“机器学习研究杂志》上,15卷,不。1,第1958 - 1929页,2014。视图:谷歌学术搜索
  35. d . p . Kingma和b,吉米,”亚当:随机优化方法,”第三国际会议的程序学习表示(ICLR)圣地亚哥,页1-13 CA,美国,2015年5月。视图:谷歌学术搜索
  36. 诉Svetnik, a . Liaw c, j·c·卡尔伯森通过r·p·谢里丹和b . p . Feuston“随机森林:分类和回归工具化合物定量构效关系模型、分类和“化学信息和计算机科学杂志》上,43卷,不。6,1947 - 1958年,2003页。视图:出版商的网站|谷歌学术搜索
  37. Sutskever, g·e·辛顿和g·w·泰勒。”2e复发时间限制玻耳兹曼机”诉讼进展的神经信息处理系统加拿大温哥华,页1601 - 1608,2009年12月。视图:谷歌学术搜索
  38. g .辛顿“深度信念网络,”Scholarpedia,4卷,不。5,5947年,页2009。视图:出版商的网站|谷歌学术搜索

版权©2020 Md。Mostafizer拉赫曼等。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点905年
下载360年
引用

相关文章