Learning logic programs by explaining their failures
Rolf Morel, Andrew Cropper

TL;DR
This paper introduces failure explanation techniques for inductive logic programming, enabling more precise hypothesis refinement by analyzing failures at the sub-program level, which significantly improves learning efficiency.
Contribution
It presents a novel failure explanation algorithm based on SLD-tree analysis and integrates it into the Popper ILP system to enhance hypothesis space pruning.
Findings
Failure explanation reduces hypothesis space exploration
Learning times are significantly decreased
Fine-grained failure analysis improves hypothesis refinement
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Logic, Reasoning, and Knowledge · Logic, programming, and type systems
