Ok now that we're all acquainted let me describe who ANNIE is:
ANNIE is exactly what her name stands for, an artificial neural network intelligence engine. For those not familiar with the concept basically its a form of fuzzy AI in which takes in input and generates output. ('Ok thats great so does a script, so what...?'). The cool thing about a ANN is that it learns, and in this case when it gives the wrong output you can tell it what the output should have been and it will adjust its calculations. An ANN is not good for coming up with exact,optimal solutions. Instead it is best used for pattern recognition when the pattern isn't exactly clear. So for example you can use it to recognize a number or letter with different fonts, or make predictions based on fuzzy or inexact information. For more information on ANNs visit: http://en.wikipedia...._neural_network and http://en.wikipedia....Neural_networks
Ok, now that we all know what a neural network is let me continue to describe ANNIE. She is a supervised feed-forward ANN that uses backpropagation as the teaching method. She also enjoys long walks on the beach and watching the sunrise over the cit-ay.
Basically she is a set of scripts which allows you to create many different ANNs. You can also connect different ANNs together using the the annie_send_input() function by sending the output of one ANN as another's input. She also currently only accepts binary input and only outputs binary.
'Alright, I really feel like I'm getting to know ANNIE now, but what does she need to have looked at?' Long story short, everything. I started this project simply to understand the basic concepts of how ANNs work. I thought I'd post my work on here in the hopes of the community making it that much better. ANNIE is completely functional as-is, but I don't like the exact algorithm I used in the backpropagation and she doesn't get as accurate as I would have hoped, right now she seems to output quite randomly no matter how many iterations you train her. She needs a save and load function (the current save function is only for human readability). Overall, I am happy with her skeleton, but the details need to be worked out, and I think the community would do a better job than me. Plus, there are many different types of input and outputs that could be possible (integer, decimal, strings, etc) instead of just binary, which requires a completely different algorithm for each one in terms of running and training the network.
Welp, I think thats pretty much it. Have fun
Edited by margoose, 09 September 2010 - 03:26 AM.