OCR with Multi-Layer Perceptrons
This applet illustrates some pattern recognition capabilities of
the multi-layer perceptrons with an Optical Character Recognition
(OCR) application. A database is used to learn handwritten digits
ranging from 0 to 9. Then, the user can draw digits himself, and
try to make the perceptron recognize them.
The original applet was written by
A database of bitmaps is used to learn to recognize handwritten
figures between 0 and 9. Each bitmap is a 15x20 binary map
representing an handwritten digit. 100 samples (10 for each digit)
were drawn by hand, with a computer mouse. The input layer of the
neural network fcontains 80 neurons representing a 8x10 matrix
corresponding to a subsampling of the actual sample matrix. For
each input unit, a preprocessing module computes a value equal to
the average of the four corresponding input pixels of the input
matrix. The output layer is made up of 10 units, each one
indicating a symbolic value for the digit recognized.
- Learning: How many iterations are necessary to make the
error reach 0 on the training set ? Which parameters (learning
rate, momentum, number of hidden units) provide an optimal
compromise between performance and time of convergence ?
- Learning: Try to find optimal parameters for a neural
network witout hidden layer (set the H1 value to 0, or simply
delete it). How good is the performance compared to that of
larger networks ? What is your conclusion regarding the
separability of the classes in the learning set ?
- Testing: Try to draw digits with the mouse and test the
answer of the neural network. Do you think there are good
generalization properties ? How can you explain this ?
- Improving the learning: In order to get better results
when testing, how can you change the learning so that
generalization is better ? Does early stopping provides better