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:
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.
|
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. |
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. |
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. |
There is also an improved professional version available.
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 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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |