Logic Programming
06-25433
Autumn 2012

 

 

 

Lecture 14: Inductive Logic Programming as a machine learning technique

The goal of being able to get a computer to learn programs, in effect to program itself, has been around for a very long time. There are many approaches to machine learning. Inductive Logic Programming (ILP) is one particularly successful method that has the ability to learn relations. It has had some successes, notably in learning how protein structures fold. ILP also was used to learn all the main list processing procedures in Bratko's text book.

In particular, the following topics are covered:

  • forming the problem description;
  • refining hypotheses;
  • a depth-first, depth-limited prover;
  • a generate-and-test search for ILP solutions to learning problems;
  • limitations of a simple approach and some solutions.
Video

  Recording of the lecture (Vimeo)

Slides

  If you really want the slides from the lecture ... but don't forget printing the slides is not the same as understanding them.

Summary

  Summary and programs with commentary from the lecture

Programs from the lecture

 
Example 1 - the problem definition Example 2 - the prover Example 3 - ILP generate-and-test engine

Individual study suggestions and further reading

 

The ILP software used in the lecture is based on:

ILP is introduced in:

A description of several applications of ILP, including learning the definitions of 18 list processing predicates from Bratko is:

  • Quinlan, J., & R. Cameron-Jones. (1993) FOIL: a midterm report. In: Brazdil, P. ed. ECML-93: European Conference on Machine Learning, Vienna, 5-7 April 1993. Berlin: Springer. (Lecture Notes in Computer Science: 667) pp. 1-20.
Assessed work associated with this lecture

  Tutorial sheet 5