Saturday, December 6, 2008

Programming a neural net


Programming a neural net is not a big hairy deal. The easiest way to get a good grounding is to log onto Cornell's open source courseware and look for something in about 4th year computer science.

You need:
1) A basic understanding of probability and markov chains
2) The ability to write a tiny little module that takes a single input value and returns one of up to three or four values with stated probability. This will be your node, and you will have as many of them as you can put up with in your net.
3) The ability to use object oriented programming (to create a node class that replicates them a bit more elegantly) and some sense of good structure would save a lot of work and be more elegant besides. Other little things might be useful.

It's really handy to write out your structure on paper before you start - are you familiar with finite state automata? - You want diagrams that look a bit like those. It helps. It also helps to know what you will get your net to do, and how you will teach it - again this comes down to structure, and courseware is really handy for providing examples. Here at UBC the course is at the 400 level, and I think the textbook is cited online. I will try and remember to attach a few links here when orkut is not being overrun by rabid monkeys.

No comments:

Post a Comment