CSCI 335 - Artificial Intelligence

Spring 2020

Programming Project #5: 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

Programming Assignment

The new files are in the handwriting.learners.som package. The file SOM6.java in the handwriting.learners package is an example of a fully configured classifier. Create your own with different sized maps. For your experiments, use the training and testing files you created (or borrowed) as part of Project 4.

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 H is given below.

Presentations

Paper

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

Grading criteria

AchievementPoints
Passes testEuclideanDistance()3
Passes testAvg()3
Passes testDistanceWeight()3
Passes testLearningRate()3
Passes testTrain()8
Passes testLabel()5
Ran fourteen experiments, from 2 to 8 letters, alternating training/testing sets20
Paper quantitatively assesses each of the fourteen experiments4
Paper includes at least one visualization, and insightfully discusses its implications5
Paper insightfully discusses how the SOM performs with respect to their data set4
Paper insightfully discusses how the SOM performs in comparison with the multi-layer perceptron4
Paper insightfully discusses the distinctions in performance as the number of letters increases4
Paper insightfully discusses the impact of variations in the map size4