Assignment: Due Monday December 9 or Tuesday December 10. I will in my office Monday evening at 6:45pm; if no one is there, I will go home. I will also be in my office Tuesday from 10am until noon. You must demo your program to me.


ADALINE NETWORK

The following represent 3 different font representations for the letters A,B,C,D . Letters are presented on a 9 x 7 grid for a total of 63 pixels. Your network should have 64 inputs ; 63 for each pixel and 1 for the bias. You should write 4 neural networks that will:
- recognize the letter A,B,C, and D. The 'A-network' would output a 1 if it recognizes the letter 'A' on input, and a -1 otherwise. Simarlarly for the other three networks.
- try different learning rates and report how many epochs it took your program for the weights to stabilize. Let us define "stabilize" as meaning that the total weight change of any single weight was not more than 0.02 for the entire epoch (12 instances). Try learning rates of {0.2 , 0.1 , 0.05 , 0.02 , 0.01}. Recall that we have a "rule" that asserts that the learning rate a should be bound by 0.1 <= na <= 1.0    where n= the number of neurons. Thus, you may get some "bad" results for the different learning rates

What to hand in:
- a well documented program (please make sure your name and student number are on it)
- a table summarizing the results of the different learning rates
- the weights that your network learned


You must demo your program to me.


I will have a data file that will contains 9 lines of 7 characters (either a  .  or a  #  ) , no spaces, tabs, etc. There will be 9 newline characters in a file.
Your program should prompt the user for an input file name, and then output what letter it believes the input is.

If the program thinks the input character is a 'C', the A-network, B-network and D-network should output -1, while the C-network would output a 1. You may encounter situations where all the networks output -1, or two or more networks output a 1.

I will run the program several times with different input. Please note: I will be watching many programs....you MUST follow these directions (no exceptions). Let me be explicit:
    - You will sit with me and run your program. It will train the net. After the net is trained, we enter the following loop:
            -  A program prompt will be displayed:  "Please enter input file name, STOP to terminate"
            - I will type in the name of a data file. The data file will be created using NotePad. It will contain 9 lines of 7 characters. Each line
            will be terminated with a newline character (including the last line)
           - Your program will output "Is an A", "Is a B", "Is a C",  "Is a D" or "Not Identified" depending upon what it thinks the input letter is (or is not)
           - Your program loops back to the line prompting for input
I will try approximately 4 different input files. If you program does not operate exactly in the manner described here, I will deduct 50% of the points.

Training Font 1

#####.. ..##... ######. ..#####
.#...#. ...#... .#....# .#....#
.#....# ...#... .#....# #......
.#....# ..#.#.. .#....# #......
.#....# ..#.#.. .#####. #......
.#....# .#####. .#....# #......
.#....# .#...#. .#....# #......
.#...#. .#...#. .#....# .#....#
#####.. ###.### ######. ..####.

D A B C

Training Font 2

#####.. ...#... ######. ..###..
#....#. ...#... #.....# .#...#.
#.....# ...#... #.....# #......
#.....# ..#.#.. #.....# #......
#.....# ..#.#.. ######. #......
#.....# .#...#. #.....# #......
#.....# .#####. #.....# #......
#....#. .#...#. #.....# .#...#.
#####.. .#...#. ######. ..###..

D A B C

Training Font 3

#####.. ...#... ######. ..###.#
.#...#. ...#... .#....# .#...##
.#....# ..#.#.. .#....# #.....#
.#....# ..#.#.. .###### #......
.#....# .#...#. .#....# #......
.#....# .#####. .#....# #......
.#....# #.....# .#....# #.....#
.#....# #.....# .#....# .#...#.
######. ##...## ######. ..###..

D A B C