Learning programs by learning from failures

by   Andrew Cropper, et al.

We introduce learning programs by learning from failures. In this approach, an inductive logic programming (ILP) system (the learner) decomposes the learning problem into three separate stages: generate, test, and constrain. In the generate stage, the learner generates a hypothesis (a logic program) that satisfies a set of hypothesis constraints (constraints on the syntactic form of hypotheses). In the test stage, the learner tests the hypothesis against training examples. A hypothesis fails when it does not entail all the positive examples or entails a negative example. If a hypothesis fails, then, in the constrain stage, the learner learns constraints from the failed hypothesis to prune the hypothesis space, i.e. to constrain subsequent hypothesis generation. For instance, if a hypothesis is too general (entails a negative example), the constraints prune generalisations of the hypothesis. If a hypothesis is too specific (does not entail all the positive examples), the constraints prune specialisations of the hypothesis. This loop repeats until (1) the learner finds a hypothesis that entails all the positive and none of the negative examples, or (2) there are no more hypotheses to test. We implement our idea in Popper, an ILP system which combines answer set programming and Prolog. Popper supports infinite domains, reasoning about lists and numbers, learning optimal (textually minimal) programs, and learning recursive programs. Our experimental results on three diverse domains (number theory problems, robot strategies, and list transformations) show that (1) constraints drastically improve learning performance, and (2) Popper can substantially outperform state-of-the-art ILP systems, both in terms of predictive accuracies and learning times.



There are no comments yet.


page 1

page 2

page 3

page 4


Learning logic programs by discovering where not to search

The goal of inductive logic programming (ILP) is to search for a hypothe...

Learning Logic Programs by Explaining Failures

Scientists form hypotheses and experimentally test them. If a hypothesis...

Learning Logic Programs From Noisy Failures

Inductive Logic Programming (ILP) is a form of machine learning (ML) whi...

Top Program Construction and Reduction for polynomial time Meta-Interpretive Learning

Meta-Interpretive Learners, like most ILP systems, learn by searching fo...

Learning large logic programs by going beyond entailment

A major challenge in inductive logic programming (ILP) is learning large...

Playgol: learning programs through play

Children learn though play. We introduce the analogous idea of learning ...

Learning Families of Formal Languages from Positive and Negative Information

For 50 years, research in the area of inductive inference aims at invest...

Code Repositories


Metagol - an inductive logic programming system

view repo
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.