NeuRecover: Regression-Controlled Repair of Deep Neural Networks with
  Training History
  Systematic techniques to improve quality of deep neural networks (DNNs) are
critical given the increasing demand for practical applications including
safety-critical ones. The key challenge comes from the little controllability
in updating DNNs. Retraining to fix some behavior often has a destructive
impact on other behavior, causing regressions, i.e., the updated DNN fails with
inputs correctly handled by the original one. This problem is crucial when
engineers are required to investigate failures in intensive assurance
activities for safety or trust. Search-based repair techniques for DNNs have
potentials to tackle this challenge by enabling localized updates only on
"responsible parameters" inside the DNN. However, the potentials have not been
explored to realize sufficient controllability to suppress regressions in DNN
repair tasks. In this paper, we propose a novel DNN repair method that makes
use of the training history for judging which DNN parameters should be changed
or not to suppress regressions. We implemented the method into a tool called
NeuRecover and evaluated it with three datasets. Our method outperformed the
existing method by achieving often less than a quarter, even a tenth in some
cases, number of regressions. Our method is especially effective when the
repair requirements are tight to fix specific failure types. In such cases, our
method showed stably low rates (<2%) of regressions, which were in many cases a
tenth of regressions caused by retraining.
