CS4811: Homework 7 --- Neural Networks
Due: Friday, April 21, 2006, 11:59pm.
(Assigned: Friday, April 7, 2006.)
Reminder:
This is an individual assignment. All the work should be the
author's and in accordance with the university's academic integrity policies.
You are allowed to use any written source in preparing your
answers, but if you use any other source than the textbook and the class
notes, you should specify it on your assignment.
Note that extensions to this homework will not be possible
because it is the end of the semester.
Problem:
In this assignment, you will implement a backpropagation learner for a
feed forward neural network.
You are not allowed to use code that is not your own. You should
implement the algorithm given in the handouts in a language of your choice.
Task:
Your task is to create 3 different neural networks. Implement the
algorithm and fully comment it so that the relevant sections of the
pseudo code are seen. The first two items below are "warm-up" tasks, the
final one is the main item of this homework. Each of the three will be
graded.
You can use the same neural network structure and program with different
training sets for each of the tasks below.
The neural network should have the real inputs and the bias input.
Create 3 learning systems:
1. One that learns the X-OR function: Train the networks using 4
examples. After the learning process is over, generate several points
in the 1x1 box and show the shape of the function learned by plotting
the positive points.
2. One that learns the y = x2 function: Generate several
examples such that y=x2 and y>x2 are positive
and y<x2 are negative. After the learning process is over,
generate several more points and show the shape of the function learned
by plotting the positive points.
3. One that learns the letter "a". Use the bitmaps provided
in
/classes/cs4811/common/2006-spring/w07-neural-networks/letter-a-examples.
Change the C program provided in the upper directory
to transform the input into a form that is
readable by your program. You can see the bitmaps using X11's bitmap
editor. Any graphics viewer that understands bitmaps should also show
the letter. Train the network using the negative and positive examples
and create one negative and one positive example of your own. Test your
examples on the trained network and report on the results.
Submission:
As usual, submit both a hardcopy and an online copy. Submit three
executables for the above 3 learning systems and provide clear
instructions on how we can test them. Write a report that summarizes your
results, clearly explains the neural network architecture you used, and the
details of the process you used.