Feedforward Neural Network Software

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.

Network Training Software

BackPropagation.cpp constructs a feedforward network according to user specifications, trains the network using the backpropagation algorithm. The network is built from BackpropagationNode objects.
sine.dat is a small (17 vector) training set for testing the software; each vector has three input values and one output value.

Updated January 8, 2001