Thursday, February 25, 2010

ideas

Today I had an interesting chat with someone who did a project which used ANNs who faced a similar problem as one of the problems I face, where there are many librarys and frameworks for using ANNs which use a different programming language to the one the project was using. In his case he solved the problem using an XML layer between the component feeding the ANN (C#) and the ANN itself (Java), where as the approach I've taken is programming the ANN from first principals myself. The argument in support of my approach is that I can optamise my implementation for use with quake reducing the bulkyness you might get with using a framework or api. The counter point I suppose is the time consumed implementing an ANN from scratch.

Monday, February 22, 2010

Net activations

Currently working on an algorithm for iterativly running through a layer of neurons calculating the output for each.

Friday, February 19, 2010

Stuff to fix

Currently to seed the neural network with data or weights I'm using the function to generate ID's for the layers, which due to the structure of how I initialise each layer means that layer id's vary by 11 units.

The XML file's generated can be parsed, however I need to correct some of the indentation, so it will be able to be read properly.

Currently the XML looks like this:





XML woot woot!

Today I've been working on an algorithm to generate xml files of a neural network for storing the data in the neural network to persist through game sessions.


It's almost finished. I just need to write the operations to read from the xml file to reconstruct the neural net.

Wednesday, February 17, 2010

Implementation Progress.

Figured I'd give a little update with regards to my progression in the implementation.
I'm currently working on the implementation of the neural net. The following is from the comments of the function which will initialize a layer of the net.

This function will initialise a layer and return a pointer to it. To initialise a layer, the following must be initialized.
Neural List structure variables:
-Number of Neurons
-Head Neuron of list
-Tail Neuron of list
Layer structure variables:
-ID for the layer, simple index
-List of Neurons in the layer(neural list as above)
-Reference to Input layer for the layer being initialized.
-Reference to Output layer for the layer being initialized.

Memory is assigned dynamically and the network is constructed. A layer seeding function will then be called to seed random values in to the weights of the net.