The Pattern Recognition Basis of AI NN Software

When I started writing my textbook, The Pattern Recognition Basis of Artificial Intelligence I learned the neural network algorithms by programming them. For the benefit of readers of my book and for students in general the code, binaries and examples for these algorithms are available here. All the programs have a command line (non-GUI) interface plus the backprop programs have a GUI interface. The source is suitable for Unix and DOS, there are 16-bit DOS binaries (uses hardware floating point) for all the programs and a Windows 3.1 binary for backprop. The newest Unix version requires the free Tcl/Tk package and includes a binary compiled for Ubuntu 7.04 Linux.

The algorithms are:


The Backprop Package

Backprop and its variations are the most useful and perhaps the most interesting algorithms. Starting in 1990 I began posting the backprop software and people around the world have used it and liked it. From time to time people have said that it is more useable than other backprop programs they've tried. This version includes Quickprop and Delta-Bar-Delta both of which can speed up training by quite a lot on most problems.

This UNIX version has been compiled under Ubuntu 7.04 using gcc 4.1 and uses Tcl/Tk 8.4 for the graphical user interface.

If you need a tutorial on the basics of backprop see my new HTML version of the tutorial or get the postscript version If you need postscript on your PC, Mac or UNIX system see my web page on the subject.

Backprop Packages

Windows 3.1 Backprop Version from November 6, 1998

3.1 binary, examples, html documentation but no source. Lately the scrolling has been improved. About 155k. See a screen image.

Download bp.zip

Unix/Linux Tcl/Tk Version from August 25, 2007

Binary, C++ source, examples, hypertext documentation, about 162k. This new version corrects some fine details that more recent compilers objected to. Produced under Ubuntu 7.04 with gcc 4.1 and Tcl/Tk 8.4. See a screen image.

Download bp.tar.gz

Non-GUI DOS/Unix Version from 4/27/96

A non-GUI version compilable by DOS and Unix systems, includes examples, source, plain ASCII documentation and a 32-bit DOS extended binary, about 308k. See the bug report.

Download bp042796.zip

There is also an improved professional version available.

Comments on the "Ugly" DOS/UNIX PD Version

   I would like to get the Pro version of our c code bp
   simulator, for DOS. I find the pd version quite a treat to
   use and would like to have the extra functionality of the
   bigger version.

   ...the pd version was used in teaching an advanced Machine
   Learning subject, with great success, and the Pro version was
   extremely useful in a hard medical classification problem -
   83 input attributes, twelve atomic classes and a very intricate
   mapping between input and output.

      Tom Osborn
      School of Computing Sciences,           
      University of Technology, Sydney,        


           It's got a very traditional UI (a bit ugly really :-)) but
   what a package! I'd rather have this than a lot of the fancy
   interfaces with no functionality underneath them. It's also the
   only one that I could find with any 'real' test sets too.

           Just a short mail to say thanks very much. The lab session
   that I did with your software went brilliantly today. Crap UI or
   not you've helped me capture the imagination of some (on average)
   fairly unimaginative students. 

           After 2 hours the better guys were writing their own
   character recognition training sets. 

           I've never seen anything like it! Maybe it is a good idea
   to remove cute UI's in order to help folks concentrate on the task
   in hand.

           Some stayed for hours after the end of the class and were
   determined to get their own training sets working ... I've seen
   fiddling with the free parameters etc etc. 

      (Dr) Ian Cresswell
      Research Coordinator,
      School of Computer Science, UCE


The Nearest Neighbor Algorithms

The package contains the k nearest neighbor algorithm, a very simple clustering algorithm, decision surface mapping (DSM) and learning vector quantization 1 (LVQ1) and includes a 16-bit DOS binary, an ASCII readme file, a C++ source file and the circle in the square example. The nearest neighbor and DSM algorithms are described in The Pattern Recognition Basis of AI while LVQ1 and simple clustering are described in the online Other NN Chapter. There is now an HTML version of the chapter.

DOS/Unix Version from 8/13/98

DOS 16-bit binary, Unix/DOS C++ source, one example and an ASCII readme. About 57K.

Download nn.zip


The Interactive Activation Network Algorithm

A very elementary non-GUI implementation of the algorithm in the book with the AM/AN example included.

DOS/Unix Version from 8/13/98

DOS 16-bit binary, Unix/DOS C++ source, one example and an ASCII readme. About 34K.

Download interact.zip


Hopfield and Boltzman Algorithms

A program to make Hopfield networks and a recall program that completes an incomplete pattern using the Hopfield, Boltzman and interactive activation network methods.

DOS/Unix Version from 8/13/98

DOS 16-bit binaries, Unix/DOS C++ source, examples and an ASCII readme. About 51K.

Download hb.zip


The Linear Pattern Classifier

The simple linear pattern classifier with the example from the book.

DOS/Unix Version from 8/13/98

DOS 16-bit binary, Unix/DOS C++ source, one example and an ASCII readme. About 21K.

Download linear.zip


ART I

The ART I algorithm implemented in the non-differential equation version. ART I is only described in my online Other NN Chapter. There is now an HTML version of the chapter.

DOS/Unix Version from 8/13/98

DOS 16-bit binary, Unix/DOS C++ source, two examples and an ASCII readme. About 33K.

Download art.zip


The Bi-Directional Associative Memory

A simple BAM described in my online Other NN Chapter. There is now an HTML version of the chapter.

DOS/Unix Version from 8/13/98

DOS 16-bit binary, Unix/DOS C++ source, one example and an ASCII readme. About 30K.

Download bam.zip


The Feedforward Counter-Propagation Network

The feed-forward counter-propagation network is described in my online Other NN Chapter. There is now an HTML version of the chapter.

DOS/Unix Version from 8/19/98

DOS 16-bit binary, Unix/DOS C++ source, one example and an ASCII readme. About 82K.

Download cpn.zip


Tcl/Tk Example

When I wanted to do a GUI for my backprop program I thought I'd use tcl/tk since it looked simpler than learning and writing a GUI in C. But actually it drove me nuts trying to get the idea until someone sent me an example. So if you're going nuts trying to figure out how to use Tcl/Tk within a C program here is a pretty short version I put together to make the plan clear.

Ubuntu Linux Version from 8/25/2007

Three files, interface.cpp, interface.tcl and makefile. Works under Ubuntu 7.04, gcc 4.1 and Tcl/Tk 8.4.

Download tcltk-example.zip


If you have any questions or comments, write me.

To Don's Home Page