Debugging Machine Learning Tasks - Chakarov, Aleksandar; Nori, Aditya; Rajamani, Sriram; Sen, Shayak; Vijaykeerthy, Deepak (2016)
Unlike traditional programs (such as operating systems or word processors) which have large amounts of code, machine learning tasks use programs with relatively small amounts of code (written in machine learning libraries), but voluminous amounts of data. Just like developers of traditional programs debug errors in their code, developers of machine learning tasks debug and ﬁx errors in their data. However, algorithms and tools for debugging and ﬁxing errors in data are less common, when compared to their counterparts for detecting and ﬁxing errors in code. In this paper, we consider classiﬁcation tasks where errors in training data lead to misclassiﬁcations in test points, and propose an automated method to ﬁnd the root causes of such misclassiﬁcations. Our root cause analysis is based on Pearl’s theory of causation, and uses Pearl’s PS (Probability of Suﬃciency) as a scoring metric. Our implementation, Psi, encodes the computation of PS as a probabilistic program, and uses recent work on probabilistic programs and transformations on probabilistic programs (along with gray-box models of machine learning algorithms) to eﬃciently compute PS. Psi is able to identify root causes of data errors in interesting data sets.