  Deep neural networks (DNN) are growing in capability and applicability. Their
effectiveness has led to their use in safety critical and autonomous systems,
yet there is a dearth of cost-effective methods available for reasoning about
the behavior of a DNN. In this paper, we seek to expand the applicability and
scalability of existing DNN verification techniques through DNN refactoring. A
DNN refactoring defines (a) the transformation of the DNN's architecture, i.e.,
the number and size of its layers, and (b) the distillation of the learned
relationships between the input features and function outputs of the original
to train the transformed network. Unlike with traditional code refactoring, DNN
refactoring does not guarantee functional equivalence of the two networks, but
rather it aims to preserve the accuracy of the original network while producing
a simpler network that is amenable to more efficient property verification. We
present an automated framework for DNN refactoring, and demonstrate its
potential effectiveness through three case studies on networks used in
autonomous systems.
