Robotics and Intelligent Machines
Sanders, Elias (School: Idaho Falls High School)
In my project, I wanted to find out what method, out of the ones that I tested, would best train a neural network. Testing these methods is important because neural networks are used on a wide range of things that can affect daily life. Consequently, quickly and efficiently training a neural network can also impact daily life. Some uses of neural networks are in games, advertisement predictions, therapy, and some can even provide dietary advice. The way that I defined the best method was which one achieved the lowest error rate in the least amount of training iterations. I predicted that backwards propagation would best train a neural network. The methods that I tested are as follows: Backwards propagation using a large training data set, backwards propagation with a smaller training data-set, random splicing using a large training data-set, and random splicing using a smaller training data-set. In order to start experimentation, I wrote a library for making neural networks and populations of neural networks. After that, I wrote several scripts to run the different methods along with one script that runs all of them in order. Each network trains for 1,000 iterations --this is because at this point the error slopes should be pretty apparent, if this isn't enough, I would use 10,000, however, it did end up working-- and every 100 iterations, it saves its error on a new data-set to a file for graphing later. Once all of them were done, I graphed the errors with the error as the y-axis and the iterations as the x-axis. I came to the conclusion that backwards propagation using a large training data-set performed the best by achieving a low error rate before any other method tested.