Learning programs by learning from failures

05/05/2020
by   Andrew Cropper, et al.
6

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.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

02/20/2022

Learning logic programs by discovering where not to search

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

Learning Logic Programs by Explaining Failures

Scientists form hypotheses and experimentally test them. If a hypothesis...
12/28/2021

Learning Logic Programs From Noisy Failures

Inductive Logic Programming (ILP) is a form of machine learning (ML) whi...
01/13/2021

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

Meta-Interpretive Learners, like most ILP systems, learn by searching fo...
04/21/2020

Learning large logic programs by going beyond entailment

A major challenge in inductive logic programming (ILP) is learning large...
04/18/2019

Playgol: learning programs through play

Children learn though play. We introduce the analogous idea of learning ...
01/31/2018

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

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.