As the number of deep learning frameworks increase and certain ones gain popularity, it spurs the discussion of what methodologies are employed by these frameworks and the reasoning behind them. The goal of this survey is to study how symbolic techniques are utilized in deep learning. To do this, we look at some of the most popular deep learning frameworks being used today, including TensorFlow, Keras, PyTorch, and MXNet. While these frameworks greatly differ from one another, many of them use symbolic techniques, whether it be symbolic execution, graphs, or programming. We focus this paper on symbolic techniques because they influence not only how neural networks are built but also the way in which they are executed. Limitations of symbolic techniques have led to efforts in integrating symbolic and nonsymbolic aspects in deep learning, opening up new possibilities for symbolic techniques. For example, the Gluon API by Apache MXNet bridges the gap between imperative programming and symbolic execution through hybridization. Frameworks such as JANUS attempt to translate imperative programs into symbolic graphs, while approaches like DeepCheck attempt to use symbolic execution to analyze and validate imperative neural network programs. Symbolic analysis has also been paired with concrete execution in a technique called concolic testing in order to better test deep neural networks. Our study of these developments exemplifies just a few of the many ways the symbolic techniques employed by popular frameworks have the opportunity to be altered and utilized to achieve better performance.
翻译:随着深层次学习框架数量的增加和某些框架的受欢迎程度的增多,它促使人们讨论这些框架采用哪些方法,以及这些框架背后的推理。本调查的目的是研究在深层次学习中如何使用象征性技术。为了这样做,我们审视了今天使用的一些最受欢迎的深层次学习框架,包括TensorFlow、Keras、PyTorrch和MXNet。虽然这些框架彼此差异很大,但其中许多框架使用象征性技术,无论是象征性执行、图表还是方案化。我们把本文件的焦点放在象征性技术上,因为它们不仅影响神经网络的建立,而且影响其执行方式。象征性技术的局限性促使人们努力在深层次学习中结合象征性和非象征性的方面,为象征性技术开辟新的可能性。例如,Apache MXNet的Gluon API 缩小了通过混合化进行必要方案编制和象征性执行之间的差距。JANUS试图将紧急方案转化为象征性图表,同时采用诸如深层次核查试图使用象征性执行更好的象征性执行来分析和验证紧迫的神经网络方案的方法。在采用这种具体方法时,也利用了一种改良的方法来测试。