This program supports the use of custom training methods that can be used by extending the LearningMethod.java file. Built in support includes the backpropagation, genetic and momentum algorithms.
Written in the Java Programming Language
In the main package, run the class Main.java to get the visual interface for drawing, prediction and saving functionality. To just run training tests that output the neural network's performance to a file, run the Trainer.java in the neural_networks package. The purpose of this project was to gain an understanding of how neural networks work. The results of the experiment conclude that training algorithms that rely more directly on the training data (like the backpropagation algorithm, and not the genetic algorithm) will be more specific about the shape of the letter that needs to be inputted, while training algorithms that did not rely on training data tend to be able to classify more shapes of letters that don't fit exactly one shape.
