So what is a Neural Network? Rather than embark upon a lengthy description here, I will instead refer you to a couple of useful sites (linked below). These will provide you with an introduction into Artificial Neural Networks (ANNs) and their uses:
I have written my own neural network classes, and I’ve used these in an example project, which you can download here:
You can also download this project from its GitHub repository: github.com/prucha/neural-networks
The project contains C++ classes for creating a Multi-Layer Perceptron Network. I have implemented these classes in an example Win32 Console application (compiled using Visual Studio 2012). You are free to use this code under a MIT License.
Below is a diagram which illustrates an example Perceptron Network that can be configured using the MLP Network classes.
The main source files are as follows:
- perceptron.h – MLP Net class declarations
- perceptron.cpp – class definitions
- testpercept.cpp – test program using the MLP Net classes
Multi-Layer Perceptron networks are probably the best know and most widely used of all Artificial Neural Networks. They are often used to tackle problems such as hand-writing or voice recognition. An MLP net is constructed by arranging perceptron units together in a series of ‘layers’. The neurons in each layer are connected to the neurons in the adjacent layers in a hierarchical fashion (the neurons outputs from one layer supply the inputs for the next). Typically, each neuron within a layer will have an input ‘dendrite’ connected to the output of every neuron in the previous layer (this is known as a FULLY-CONNECTED network, which is the method employed in my classes). The bottom layer is known as an ‘input layer’ and usually receives input data from sensors or some other input device(s). Further documentation of my perceptron classes can be found here: neural.pdf.