Inductive Inference

LA home
Computing
 Algorithms
 Bioinformatics
 FP,  λ
 Logic,  π
 MML
 Prog.Langs

FP
 II
  #aims
  #analogies
  #it's not
  #references
  ver.1.0 (.hs)
  ver.1.1 (.hs)
  IP 1.2+(.hs)
 Data

Also see:
MML
 Structured

The project is to form a "theory" (or prelude or semantics or model(!)) of `programming with "statistical models" from AIDMIIMLSI', using Haskell as the analytical tool.

The project aims are, in order of priority:

  1. Understand and formally define exactly what "statistical models" (i.e. the products[1] of AIDMIIMLSI[2]) really are from a programming point of view, that is how do they behave, what can be done to each one, and how can two or more be combined?
  2. Develop
    1. (polymorphic) types and type-classes to define "statistical models", and
    2. a useful set of operators (functions, combinators, methods) to act on them,
    i.e. a prelude (library).
  3. Dismember and reconstruct a few representative, important and well-known "statistical models" from AIDMIIMLSI and, while doing so,
    1. add generality, and
    2. make a broad claim to being realistic.
  4. Eventually, encode as much as possible of AIDMIIMLSI in a convenient, compact library while adding lightness and generality.

[1] E.g. Mixture-modelling (unsupervised classification, clustering), classification- (decision-) trees (supervised classification, expert systems), or Bayesian/ causal networks/ models, etc..

[2] Definition: AIDMIIMLSI = artificial-intelligence/ data-mining/ inductive-inference/ machine-learning/ statistical-inference/ etc., call it what you will, i.e. somewhere between the intersection and union of these areas. ( ~ Super Thunder Sting Car Ray Bird -- Pete & Dud.)

Note that the getting of understanding is the primary aim, and it could, for example, be used to (i) design better components for an existing AIDMIIMLSI platform, (ii) design a better AIDMIIMLSI platform, or even (iii) build a serious platform in Haskell, but these other things are secondary not primary aims.

Analogies

  (notes)
  This exercise is to artificial-intelligence/ data-mining/ inductive-inference/ machine-learning/ statistical-inference  
as PreludeList (map, fold, zip, ...) is to list-processing Imagine yourself in the late 1950s or the early 1960s developing Lisp (McCarthy et al), or APL (Iverson), or similar. NB. PreludeList now has 40+ years of experience behind it!
parser combinators parsing  
the mathematical semantics of Algol-60 (Moses 1974) the programming language Algol-60 Understanding of Algol-60 compared to other languages.
and
  function is to functional- programming  
as statistical model is to <what?>- programming, perhaps 'inductive- programming'? The term I.P. was suggested by Charles Twardy (2004).

other "possible" approaches
approach why not
Create a new language for machine learning A lot of work. Hard to maintain, 'port, etc.. Unlikely to improve on Haskell's notion of value and type (although a simplified, specialised subset might be a "goer"). Don't create languages without good reasons.
1-1 translate some existing AIDMIIMLSI platform directly into Haskell, say. Might be useful but does not aid understanding.

the project is not primarily about... ...because
Any particular application area or problem instance of AIDMIIMLSI (if it was it might use R,  rather)  it is about understanding what AIDMIIMLSI could be.
Software Engineering although it has aspects of a software engineering job on AIDMIIMLSI.
Stamp (i.e. model) collecting no way, but it is about understanding the machinery that allows stamps to be produced, and generalized.
Haskell Haskell is "just" a good tool. But it is curious that there is no built-in [class Function], or [class Pair], etc..

References

Terminology

Terminology is a problem. Just consider the many uses of the words "model" and "class" in computing, mathematics and statistics.

window on the wide world:

Computer Science Education Week

Linux
 Ubuntu
free op. sys.
OpenOffice
free office suite,
ver 3.4+

The GIMP
~ free photoshop
Firefox
web browser
FlashBlock
like it says!

© L. Allison   http://www.allisons.org/ll/   (or as otherwise indicated),
Faculty of Information Technology (Clayton), Monash University, Australia 3800 (6/'05 was School of Computer Science and Software Engineering, Fac. Info. Tech., Monash University,
was Department of Computer Science, Fac. Comp. & Info. Tech., '89 was Department of Computer Science, Fac. Sci., '68-'71 was Department of Information Science, Fac. Sci.)
Created with "vi (Linux + Solaris)",  charset=iso-8859-1,  fetched Friday, 25-Apr-2014 04:46:31 EST.