Optimizer, Image classification, neural network, convolutional neural network


Computer and Systems Architecture | Computer Engineering


Greg Wolffe


Machine Learning is an important and growing field within Artificial Intelligence. It is particularly useful in situations where developing an algorithm to perform the task in a conventional way would be extremely difficult. Instead of being programmed specifically to complete a task, a program embodies a trained model that can recognize patterns present in given example data, and is able use that model to make predictions on future data. Neural networks are a prominent example of machine learning models used for this purpose. Neural networks are models that are based on how brains work, with massive numbers of connected processing elements called nodes. Training the model is a process of iteratively assigning different weights to node connections; in effect, the network “learns” to recognize patterns. This process of training a neural network to perform a task involves repeatedly testing it with example data and using the results to modify the parameters or weights within the model in such a way as to minimize error. The component that makes these changes is called the optimizer. As the field of machine learning has grown and matured, many different types of optimizers have been proposed and developed, each with their own set of advantages and disadvantages. The goal of this research project is to conduct a performance evaluation of different optimizers, quantifying the speed and accuracy with which they perform an image classification task.