CSCI 335 - Artificial Intelligence

Fall 2017

Programming Project #6: Handwriting Recognition with Self-Organizing Maps


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.


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, and place it in the handwriting.learners package. 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: For your experiments, use the training and testing files you created (or borrowed) as part of Project 5.


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.



When you are finished with your experiments, write a paper summarizing your findings. Include the following: