In 2006, Geoffrey Hinton proposed the concept of training ''Deep Neural Networks (DNNs)'' and an improved model training method to break the bottleneck of neural network development. More recently, the introduction of AlphaGo in 2016 demonstrated the powerful learning ability of deep learning and its enormous potential. Deep learning has been increasingly used to develop state-of-the-art software engineering (SE) research tools due to its ability to boost performance for various SE tasks. There are many factors, e.g., deep learning model selection, internal structure differences, and model optimization techniques, that may have an impact on the performance of DNNs applied in SE. Few works to date focus on summarizing, classifying, and analyzing the application of deep learning techniques in SE. To fill this gap, we performed a survey to analyse the relevant studies published since 2006. We first provide an example to illustrate how deep learning techniques are used in SE. We then summarize and classify different deep learning techniques used in SE. We analyzed key optimization technologies used in these deep learning models, and finally describe a range of key research topics using DNNs in SE. Based on our findings, we present a set of current challenges remaining to be investigated and outline a proposed research road map highlighting key opportunities for future work.
翻译:2006年,Geoffrey Hinton提出了培训“深神经网络(DNNS)”的概念,并改进了示范培训方法,以打破神经网络发展的瓶颈。最近,2016年推出的AlphaGo展示了深层次学习的强大学习能力及其巨大潜力。深层次学习越来越多地用于开发最新的软件工程研究工具,因为其有能力提高执行各种SE任务的业绩。许多因素,例如深层次学习模式的选择、内部结构差异和模型优化技术,可能对在SE应用的DNS的绩效产生影响。迄今为止,很少有工作侧重于总结、分类和分析在SE应用深层次学习技术的情况。为填补这一差距,我们进行了一项调查,以分析2006年以来发表的相关研究。我们首先举一个例子,说明在SE应用的深层次学习技术是如何应用的。然后,我们总结和分类了在SE使用的不同的深层次学习技术。我们分析了这些深层次学习模型中使用的关键优化技术,最后描述了一系列关键研究专题,利用DNNS在SE应用的DNS系统中,我们为当前研究的研究成果提供了一套关键研究大纲。我们正在研究的路线图。