深度学习在软件开发环境提升中的研究
发布时间:2021-01-17 00:36
现有的软件开发环境主要是集成开发环境(IDE),如Eclipse,Intellj和Visual Studio。软件开发环境的优劣很大程度上取决于它对程序员给出的提示的准确率,现有的方法主要是使用概率模型或者上下文无关文法来实现的,本文主要集中在使用上下文无关文法与深度学习相结合的方法来提高软件开发环境在代码提示和语法错误提示两个任务上的准确率。本文的主要贡献有两方面:1.代码提示是软件开发环境的重要功能,它会对程序的下一个token给出提示。为了实现代码提示的功能,主要使用语言模型来预测下一个token的概率。这些语言模型原本是为了在自然语言处理任务中基于前文预测后一个token而设计的,然而却并不完全适用于程序设计语言。在程序设计语言中所有自定义的标识符的含义都是由它的上下文定义的,标识符的名字只是用来区分不同的标识符,这与自然语言中token的含义主要是由token的名字决定的情况有比较大的不同,所以这些语言模型只使用token的名字来输入就有些不适用了;另一方面程序设计语言的语法有着明确而清晰的定义,这与自然语言中语法无法完整定义的情况也是不同的,所以现有的语言模型可能会预测出不...
【文章来源】:南京大学江苏省 211工程院校 985工程院校 教育部直属院校
【文章页数】:69 页
【学位级别】:硕士
【部分图文】:
一卜人类的神经元结构
?I??神经网络是对生物神经网络的模拟,其中最基本的结构被称作神经??元,图2-1是生物的神经元的结构图,每一个生物的神经元都会从它的树突??(dendrites)中接受之前的神经元的信号,然后从它的轴突(axon)产生输出??信号并将它传递给之后的神经元。??X〇?W〇????0synapse??axon?from?a?neuron?、\w〇x〇??denrlr?i?t??Y?Cell?Body?\??wlX,?[?^?^/gwjXj+b)^???1?>?w.Xi+b?尸厂?output?axon??\?/??\?/activ^itive??y?fuiicl?ion??w2x2??图2-2:计算神经元的结构??图2-2是计算神经元的结构图,可以看到它和图2-1中的生物神经元十分??的相似,同样是从之前的神经元接受信号,然后传递给之后的神经元,主要的??区别是计算神经元处理输入的方式,它对于传递进来的数据x,总是先进行一??个线性变换:??z?=?wT?x?+?b?(2-1)??其中VV力都是模型的参数,然后再通过一个激发函数/:??y?=?f{x)?(2-2)??从而得到最后的输出y。这个函数一定要是一个非线性函数,如果不是非线性??函数
?other??>.??如图2-5所示。相对于前两个激发函数,ReLU有两个优点,一是更快的收??敛速度[3G],这主要是由于ReLU函数只要处于激发的状态,相对于x的导??数总是1,从而梯度在经过ReLU函数之后,能够保持不变,从而避免了梯??度消失的问题;二是计算的复杂度更低,计算速度更快。当然这种激发函??数同样有着Sigmoid的第二点问题,它也只能输出非负的结果,ReLU是现??在使用最广泛的激发函数,在本文的后面,在非输出层都将使用ReLU作为??激发函数。??
本文编号:2981844
【文章来源】:南京大学江苏省 211工程院校 985工程院校 教育部直属院校
【文章页数】:69 页
【学位级别】:硕士
【部分图文】:
一卜人类的神经元结构
?I??神经网络是对生物神经网络的模拟,其中最基本的结构被称作神经??元,图2-1是生物的神经元的结构图,每一个生物的神经元都会从它的树突??(dendrites)中接受之前的神经元的信号,然后从它的轴突(axon)产生输出??信号并将它传递给之后的神经元。??X〇?W〇????0synapse??axon?from?a?neuron?、\w〇x〇??denrlr?i?t??Y?Cell?Body?\??wlX,?[?^?^/gwjXj+b)^???1?>?w.Xi+b?尸厂?output?axon??\?/??\?/activ^itive??y?fuiicl?ion??w2x2??图2-2:计算神经元的结构??图2-2是计算神经元的结构图,可以看到它和图2-1中的生物神经元十分??的相似,同样是从之前的神经元接受信号,然后传递给之后的神经元,主要的??区别是计算神经元处理输入的方式,它对于传递进来的数据x,总是先进行一??个线性变换:??z?=?wT?x?+?b?(2-1)??其中VV力都是模型的参数,然后再通过一个激发函数/:??y?=?f{x)?(2-2)??从而得到最后的输出y。这个函数一定要是一个非线性函数,如果不是非线性??函数
?other??>.??如图2-5所示。相对于前两个激发函数,ReLU有两个优点,一是更快的收??敛速度[3G],这主要是由于ReLU函数只要处于激发的状态,相对于x的导??数总是1,从而梯度在经过ReLU函数之后,能够保持不变,从而避免了梯??度消失的问题;二是计算的复杂度更低,计算速度更快。当然这种激发函??数同样有着Sigmoid的第二点问题,它也只能输出非负的结果,ReLU是现??在使用最广泛的激发函数,在本文的后面,在非输出层都将使用ReLU作为??激发函数。??
本文编号:2981844
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2981844.html