In plain words: When a learned logic program gets an example wrong, the system traces which pieces caused the failure and rules out other programs sharing those flaws. This cuts the search through possible programs and speeds up learning far more than discarding each wrong candidate whole.
Abstract · Learning logic programs by explaining their failures
Scientists form hypotheses and experimentally test them. If a hypothesis fails (is refuted), scientists try to explain the failure to eliminate other hypotheses. The more precise the failure analysis the more hypotheses can be eliminated. Thus inspired, we introduce failure explanation techniques for inductive logic programming. Given a hypothesis represented as a logic program, we test it on examples. If a hypothesis fails, we explain the failure in terms of failing sub-programs. In case a positive example fails, we identify failing sub-programs at the granularity of literals. We introduce a failure explanation algorithm based on analysing branches of SLD-trees. We integrate a meta-interpreter based implementation of this algorithm with the test-stage of the Popper ILP system. We show that fine-grained failure analysis allows for learning fine-grained constraints on the hypothesis space. Our experimental results show that explaining failures can drastically reduce hypothesis space exploration and learning times.
Rolf Morel, Andrew Cropper
arXiv:2102.12551 · cs.AI, cs.LO · submitted Feb 18, 2021 · updated May 24, 2023
abstract · pdf · html · 26 pages; under review at the Machine Learning journal since February 2022