CSCI 335 - Artificial Intelligence
Fall 2017
Programming Project #6: Handwriting Recognition with Self-Organizing Maps
Overview
You will implement the self-organizing map. You will experiment with different configurations of this type of
neural network to find the best results for a handwriting recognition problem.
Setup
- Download som.zip.
- Unzip the files into the Eclipse Java project you employed for
Project #5.
- Click on your project in the package explorer, and press F5 to refresh.
Programming Assignment
Two of the new files are in the handwriting.learners.som
package.
Two revised files are in the handwriting.gui
package, and another revised
file is in handwriting.core
. You
will also need to create a class that extends RecognizerAI.java
,
and place it in the handwriting.learners
package.
-
handwriting.learners
- RecognizerAI.java: Slightly expanded
to include a method for visualizing the trained learner on the GUI.
-
handwriting.learners.som
- SelfOrgMap.java: Contains the outline of an implementation of the self-organizing map. You will
need to complete this implementation.
- SOMPoint.java: Used for referencing
an output node of the SOM.
The RecognizerAI
implementation will need
to employ one or more objects of the SelfOrgMap
class for handwriting
recognition. The precise way in which it is used is entirely up to you.
You are encouraged to experiment with different variations of the learning
algorithm, each of which would be implemented as a separate class. Here
are some examples of aspects of the algorithm that you might vary:
- Number of nodes
- Number of training iterations
- Classification scheme
For your experiments, use the training and testing files you created
(or borrowed) as part of Project 5.
Visualization
The nature of the self-organizing map lends itself to very lucid visualization. An example of a
6x6 SOM trained on the letters A and O is given below.
Presentations
- Thursday, October 19: Short presentation detailing progress thus far. Special emphasis on
describing your representation scheme and distance function.
- Tuesday, October 24: Presentation summarizing results from the paper.
Paper
When you are finished with your experiments, write a paper summarizing your findings. Include the following:
- An analysis and discussion of your data. (Be sure to include the data as well.)
- An analysis and discussion of your visualizations.
- How well does the self-organizing map perform for this task?
- What effect did variations in the number of training iterations, the learning rate and the classification scheme have on the results?
- How do the results compare with multi-layer perceptrons?
- Beyond the actual results, what other issues are noteworthy?