Wednesday, April 29, 2009

Final Project

The Final project that was undertaken by my team and myself consisted of completing some work with the Nero Game that was Created by Neural Networks Research Group, the Computer Science Department at the University of Texas at Austin. In a nutshell, this is a war game that was designed so that a player can train teams of neural network-controlled robots and have them fight each other.
It's not exactly data mining, but it is machine learning, and relates to several of the things we've done in class, so it seems like a decent topic for the presentation.

I did not get to play much with the game, though I have loaded it on a couple of my machines at work, one running Linux and another running Windows, very big powerful machines that crush bits and run simulation software all day long, more about that later.
I was mostly a cheerleader on the sidelines.
After loading the game, it was noticed that there were several instances that the troops needed training, I am running it myself and for some reason on my puny processor and negligent memory size, it runs really slow. Anyway when the team ran it, it was noted that the game crashed rather frequently, and very often the training that was accumulated when it was running, was often lost.
There were some really interesting aspects of the game and the troop training these being, if you have a few troops that just don't seem to want to get with the program, and every program seems to have its outliers and random, non behaving data, you can smite the miss behaving rascals in an effort to cull the herd.

When you train the troops in this case, you set specific goals and weights. 
In a manner of speaking this was not unlike a computerized version of the old school yard game capture the flag.
hi game is built using the rtNEAT engine for evolving neural networks in real-time. The basic goal of rtNEAT is to build increasingly complex neural networks to perform increasingly complex tasks, utilizing a genetic algorithm. The technique is not unlike  genetic programming,  because both strive to evolve structures capable of taking inputs, performing some kind of processing, and producing outputs. While genetic programming evolves program trees, the rtNEAT engine and the accompanying  database evolves  the neural networks.

Building a neural network can be a bit complex, however the networks themselves are initially simple. When the network is constructed, the object is for the machine to learn from its mistakes and eventually attain the ability to in some ways think for itself.  As this network grows and otherwise expands, the data contained therein may become less congruent as there will be several instances of the same behavior, and in this way they mutate and there will be series of unintended consequences.
With this in mind, you need to train the soldiers in Nero in order to attain any level of success, I was not able to train my soldiers very well, the first time out and in reality had very limited success, I will attempt to play with it on another day, just to see what can happen when you are able to apply more power. The basic level of training is not really sufficient to achieve anything but very limited results. 
In all I learned a great deal from this experiment and look forward to playing with this program some more.

No comments: