Neural Network Class Library
- Node.h declares a class template for a generic node object. A node is defined by weighted input and output connections to other nodes, and an output value.
- Weight.h declares a class template for a weighted connection from one node to another. The attributes of a weighted connection are a weight, a pointer to the connected node, and the last change made in the weight.
- FeedforwardNode.h declares an abstract base class to represent nodes in feedforward networks. Derived from the Node class, it adds an error attribute and a logistic activation function.
- BackpropagationNode.h declares a class which extends the FeedforwardNode class by adding the functionality necessary for the backpropagation algorithm.
- Node.cpp, Weight.cpp, FeedforwardNode.cpp, and BackpropagationNode.cpp define the relevant member functions.
- DataVector.h declares a container class template for holding network training vectors; DataVector.cpp defines the relevant class functions.
BackPropagation.cpp constructs a feedforward network according to user specifications, trains the network using the backpropagation algorithm. The network is built from BackpropagationNode objects.
Network Training Software
sine.dat is a small (17 vector) training set for testing the software; each vector has three input values and one output value.