Programming Assignment: Neural Networks


Due date: Monday, 4/23, start of class.

Last modified: "April 10, 2007 11:16:20 by matt"

Write a neural network implementation and use it to train a network to act like a simple adder. The network should have at least three layers: input, output, and hidden. There should be 6 inputs, 2 sets of 3. Each set of 3 encodes a 3 bit binary number. There should be 4 outputs, which are meant to encode a 4 bit binary number, the sum of the 2 inputs. You are free to use any number of hidden nodes but I would suggest at least 8. You are also free to connect the nodes whoever you will, but a fully-connected, strictly layered topology would be a reasonable approach (and is easy to encode).

After the network is set up, assign random weights to the network and randomly select 50 of the 64 input patterns and train the network using back propagation. Record the total and average error of the network for each training iteration. Once the network successfully works for the 50 input patterns, record that total and average error of the network over the 14 input patterns that were not used for training.

Write a one or two page synopsis of the results of your experiment. Make sure to provide a graph plotting the error of the network vs. number of training iterations. The synopsis should also indicate how long it took to train the network, and should discuss how well the network handled the 14 novel patterns.

Hand in your synopsis and your hard copy.