Most work on the formal verification of neural networks has focused on bounding forward images of neural networks, i.e., the set of outputs of a neural network that correspond to a given set of inputs (for example, bounded perturbations of a nominal input). However, many use cases of neural network verification require solving the inverse problem, i.e, over-approximating the set of inputs that lead to certain outputs. In this work, we present the first efficient bound propagation algorithm, INVPROP, for verifying properties over the preimage of a linearly constrained output set of a neural network, which can be combined with branch-and-bound to achieve completeness. Our efficient algorithm allows multiple passes of intermediate bound refinements, which are crucial for tight inverse verification because the bounds of an intermediate layer depend on relaxations both before and after this layer. We demonstrate our algorithm on applications related to quantifying safe control regions for a dynamical system and detecting out-of-distribution inputs to a neural network. Our results show that in certain settings, we can find over-approximations that are over 2500 times tighter than prior work while being 2.5 times faster on the same hardware.
翻译:对神经网络进行正式核查的多数工作侧重于将神经网络的远方图像,即神经网络的一组产出,与特定一组投入(例如,名义投入的受约束扰动)相对应的神经网络的一组产出。然而,许多神经网络核查的运用案例要求解决反面问题,即过度使用导致某些产出的一组投入。在这项工作中,我们提出了第一个有效的有效约束传播算法,即INVPROP,用于核实神经网络线性限制产出组合的预感的特性,该神经网络可与分支和约束组合相结合,以实现完整性。我们的高效算法允许多个中间线性改进的通过,这对于进行严密的反向核查至关重要,因为中间层的界限取决于该层前后的放松程度。我们展示了我们有关应用应用的算法,即对动态系统的安全控制区域进行量化,并检测向神经网络的分布性投入。我们的结果显示,在某些环境中,我们可以发现过度的过度应用,在硬度上超过2.5倍的硬度,比先前的工作要快。