About the project
The project's idea is the creation of an API to help software programmers' implementating neural networks (a.k.a. NNs) technology in different types of applications.
Main features of NNs are pattern recognition and prediction, though they can be used in a lot different areas.
I'm not going to enter in more detailed info on the history or applications of NNs, because I believe the being here on this website
willing to use this API you are probably documented on the current subject.
So, with these being said, I'd rather talk a little about the API itself. It has been designed object-oriented, containing, for now, 4 classes.
The main class is the neuron with the following specifications:
- Selectable sum, product, minimum, maximum input function;
- Selectable hyperbolic tangent, sigmoidal, linear activation function;
- Selectable real, binary output function;
The next class is the nn class, representing the actual neural network. It has the following specs:
- teoreticaly, unlimitted number of layers and neurons-per-layer, though you should consider a reasonable number of elemnts for faster data processing;
- printing, on screen, the entire structure of the current network;
- saving/loading synaptic weights values to a text file, with data being interchangeable between the different API versions (e.g.: PHP<->C#);
This is useful for training the network on the local machine, then using the trained values for a web application;
Class nnBackpropagation is used for training a neural network using the backpropagation method.
The 4th class is the dataNormalization class used to normalize values to be compatible with a neural network;
In order to improve this API I would really appreciate some feedback from those of you who really want to use this application, through the
forum. I also should mention that user registration has some benefits like newslettering (if selected) with the latest info about the API, latest upgrades and so.
Also, in the near future, registered users will have access to files with allready trained networks for specific problems and also
the option to make a pending for certain network to be trained for a certain problem or simply a pending for some training data.
|