Fisrt, this is not an attempt at one upmanship with Thomas, I had intened to release this, he just released his digibrain app first. And might I add what a wonderful and professional app itis, very good work Thomas. :)

Also I have to thank Thomas as it was his first version of digibrain which prompted me to write this very library.

AI has always been of great interest to me, and while I now feel that Neural Nets of this type at least will never emulate/simulate intelligence on a complete scale they are at least useful for some things. Uses range from data analysis to expert systems and even to very complex actions such as Thomas demonstrates, handwriting recognition.

It should also be noted that there are many types of NN; Hopfield Nets, Adaptive Resonance Nets (ARTS) & Kohenen Nets are all examples. However (and this is debatable) I feel there is only one true type of NN, this BackProp Net I provide, ARTS, Kohenen and some others belong to that type. Hopfield Nets are not true Neural Nets, but they still have their uses, both practical and educational.

Thoses interested should read the articles at Generation5, however for source code I recommend you check out Neural Networks at your Fingertips not only is this an execellent site in its own right, but the b@$t@rds at Gen5 actually robbed some code from here without acknowledgement, tut tut :rolleyes: .

Anyway, onto this library, it provides some useful functions for creating, using and training a Back Propagation Neural Net, either standard (0.0 - 1.0) or BiPolar (-1.0 - 1.0).

I have no idea how this performs in relation to other similar Net available as I haven't found any available in such an accesible form. Few nets are written in this form, i.e. it is possible to create multiple, independant nets form this library. Those that are, usually are written in OOP code, and no offence to Thomas, who did a great job with his Neural Net and OOP code, or anyone else for that matter, but I find such code difficult to use. Due to that I've been unable to peform any decent timings to test this Net againts others.

I would appreciated feedback on this code, I will strive to answer any questions people have. Also if you like this I can have a similar package for a Hopfield Net. The only problem is that in its current state it doesn't exist as a seperat lib so I'll only convert it if its wanted, just ask.

So enjoy, and don't worry about the commercial restrictions, its just to stop people taking advantage ;) I'm very easy going really :) .
Posted on 2002-09-08 19:37:46 by Eóin
Well done! :alright: Back-propagation isn't easy, and an assembly implementation is even harder :)
The xor demo seems to work fine, do you have any plans for future programs using the net?

Posted on 2002-09-09 13:32:02 by Thomas
Thanks Thomas.

Yep your right, backpropagation isn't easy. In fact when I wrote that it was probably the first time I'd written such a complex algo involing three nested loops. But it was fun, and that case study at Gen5 was a great help.

Unfortunatly the Xor example is too simple to demonstrate the true power of these Nets, thats why I like your digibrain so much. As for me having other apps in mind, yeah I do have a few, even have two in development but they tend to use the Nets only in parts and sadly I don't think I'll be releasing the code for them anyway :( .

I just wanted to release this to allow people play around with these things, they're great for learning. I'm still waiting for questions, or did I actually manage to sufficiently document a release this time :grin: .
Posted on 2002-09-09 16:17:23 by Eóin