The goal of inductive logic programming is to induce a logic program (a set of logical rules) that generalises training examples. Inducing programs with many rules and literals is a major challenge. To tackle this challenge, we introduce an approach where we learn small non-separable programs and combine them. We implement our approach in a constraint-driven ILP system. Our approach can learn optimal and recursive programs and perform predicate invention. Our experiments on multiple domains, including game playing and program synthesis, show that our approach can drastically outperform existing approaches in terms of predictive accuracies and learning times, sometimes reducing learning times from over an hour to a few seconds.
翻译:归纳逻辑编程的目标是归纳出一个逻辑程序(一组逻辑规则)以泛化训练样本。归纳包含多条规则和文字的程序是一项重大挑战。为应对这一挑战,我们提出了一种方法,通过学习小型不可分离程序并将其组合来实现。我们基于约束驱动的ILP系统实现该方法。该方法能够学习最优递归程序并执行谓词发明。在包括游戏博弈和程序合成在内的多个领域实验中,我们的方法在预测准确率和学习时间上显著优于现有方法,有时能将学习时间从超过一小时缩短至数秒。