  Artificial Neural Networks (ANNs) have demonstrated remarkable utility in
various challenging machine learning applications. While formally verified
properties of their behaviors are highly desired, they have proven notoriously
difficult to derive and enforce. Existing approaches typically formulate this
problem as a post facto analysis process. In this paper, we present a novel
learning framework that ensures such formal guarantees are enforced by
construction. Our technique enables training provably correct networks with
respect to a broad class of safety properties, a capability that goes
well-beyond existing approaches, without compromising much accuracy. Our key
insight is that we can integrate an optimization-based abstraction refinement
loop into the learning process and operate over dynamically constructed
partitions of the input space that considers accuracy and safety objectives
synergistically. The refinement procedure iteratively splits the input space
from which training data is drawn, guided by the efficacy with which such
partitions enable safety verification. We have implemented our approach in a
tool (ART) and applied it to enforce general safety properties on unmanned
aviator collision avoidance system ACAS Xu dataset and the Collision Detection
dataset. Importantly, we empirically demonstrate that realizing safety does not
come at the price of much accuracy. Our methodology demonstrates that an
abstraction refinement methodology provides a meaningful pathway for building
both accurate and correct machine learning networks.
