Basser Seminar Series

Inductive Programming

Lloyd Allison
School of Computer Science & Software Engineering, FIT, Monash University, Victoria

Wednesday 7 September 2005 2-3pm

Basser Conference Room (G92) Madsen Building

Abstract

CSSE at Monash started a project to write some generalized machine- learning software - with a GUI to do common, anticipated tasks, a 'scripting language' for unanticipated but not too hard tasks, and an implementation language for major extensions. We soon came to realise that the major design issue was "what was to be the notion of 'type', and/or 'class', of data and of statistical models of data?" Defining this notion was the big problem for the scripting language which really defines the heart of such a system.

This talk describes an approach to writing machine-learning software using the stock functional language Haskell for both scripting and implementation purposes (no GUI, yet). There is some evidence to suggest that functional programming (FP), which derives from lambda calculus, is a good general paradigm for machine learning (e.g. Lisp is popular in AI, and the 'S' package has a Lisp-ish scripting language). But type checking is often weak and/or done at run-time. Perhaps it is even a trap to design a custom (scripting) language when your main focus is on some application area – will the language be professional and will it develop?

The talk uses practical examples including Bayesian networks (BNs) with discrete and continuous attributes to illustrate 'inductive programming' through FP and MML. The broader seminar's area: inductive inference, i.e. inferring general models from given data (artificial intelligence, data mining, machine learning).

Speaker's Biography

Lloyd Allison received his PhD from Manchester University and is currently Reader in Computer Science at Monash University. His major research interests are in the areas of programming languages, machine learning, and algorithms for bioinformatics. For further info, please see: http://www.csse.monash.edu.au/~lloyd/