Nowadays, we are witnessing an increasing demand in both corporates and academia for exploiting Deep Learning (DL) to solve complex real-world problems. A DL program encodes the network structure of a desirable DL model and the process by which the model learns from the training dataset. Like any software, a DL program can be faulty, which implies substantial challenges of software quality assurance, especially in safety-critical domains. It is therefore crucial to equip DL development teams with efficient fault detection techniques and tools. In this paper, we propose NeuraLint, a model-based fault detection approach for DL programs, using meta-modelling and graph transformations. First, we design a meta-model for DL programs that includes their base skeleton and fundamental properties. Then, we construct a graph-based verification process that covers 23 rules defined on top of the meta-model and implemented as graph transformations to detect faults and design inefficiencies in the generated models (i.e., instances of the meta-model). First, the proposed approach is evaluated by finding faults and design inefficiencies in 28 synthesized examples built from common problems reported in the literature. Then NeuraLint successfully finds 64 faults and design inefficiencies in 34 real-world DL programs extracted from Stack Overflow posts and GitHub repositories. The results show that NeuraLint effectively detects faults and design issues in both synthesized and real-world examples with a recall of 70.5 % and a precision of 100 %. Although the proposed meta-model is designed for feedforward neural networks, it can be extended to support other neural network architectures such as recurrent neural networks. Researchers can also expand our set of verification rules to cover more types of issues in DL programs.
翻译:目前,我们正目睹企业和学术界对利用深学习(DL)解决复杂的现实世界问题的日益需求。 DL 程序将理想的 DL 模型的网络结构与模型从培训数据集学习的过程编码起来。像任何软件一样, DL 程序也可能是错误的,这意味着软件质量保障面临巨大的挑战,特别是在安全关键领域。因此,至关重要的是为DL开发团队配备高效的错误检测技术和工具。在本文中,我们提议NeuraLint,这是基于模型的错误检测方法,用于解决复杂的现实世界问题。DL 程序使用元模型和图形转换。首先,我们为 DL 程序设计了一个包含其基本骨架和基本属性的网络网络结构结构。然后,我们建立一个基于图表的核查程序,涵盖在元模型顶端界定的23条规则,作为图表转换来检测错误和设计生成模型中的低效率问题(即,元模型的例子)。首先,我们提出的方法可以通过查找错误和设计效率低下的28个综合模型来评估 Duralway 。随后,NeLint 正在发现,在Silb Produstrual Prostration Prostrual Prostrual erval Prostration Prostration 和 Stalde Produstration Produ 这样的设计结果。