Date of Award


Degree Type


Degree Name

Master of Science (MS)

First Advisor

Lutz Hamel


he ideas and technology behind artificial neural networks have advanced considerably since their introduction in 1943 by Warren McCulloch and Walter Pitts. However, the complexity of large networks means that it may not be computationally feasible to retrain a network during the execution of another program, or to store a network in such a form that it can be traversed node by node. The purpose of this project is to design and implement a program that would train an artificial neural network and export source code for it so that the network may be used in other projects.

After discussing some of this history of neural networks, I explain the mathematical principals behind them. Two related training algorithms are discussed: backpropagation and RPROP. I also go into detail about some of the more useful activation functions.

The actual training portion of the project was not self implemented. Instead, a third party external library was used: Encog, developed by Heaton Research. After analyzing how Encog stores the weights of the network, and how the network is trained, I discuss how I used several of the more important classes. There are also details of the slight modifications I needed to make to one of the classes in the library.

The actual implementation of the project consists of five classes, all of which are discussed in the fourth chapter. The program has two inputs by the user (a config file and a training data set), and returns two outputs (a training error report and the source code).

The paper concludes with discussions about additional features that may be implemented in the future. Finally, an example is given, proving that the program works as intended.