Abstract
This paper addresses the problem of building a CNN for specific datasets. Each image-based dataset has different properties such as quality, diversity, noise and clarity. Each of these properties along with the actual subject of the classes requires a custom CNN architecture. CNNs are usually developed at code level, such that a user who is not proficient at programing cannot create and train a CNN. Even programmers are restricted to code level modifications which are risky and limiting. This paper aims to make CNNs available to people with no knowledge of CNNs or programing in general. Also, to create an analysis tool that allows side by side incremental adjustments/analysis of a CNN build to be compared in relation to the other modifications. This is achieved by creating a visual extension to the Python Keras tool. The extension allows a user to create, edit, load, save and evaluate CNNs in an interactive way. The GUI will also have help and hints to instruct users not familiar with CNN builds. Once a CNN is build, a train and test run can be performed on the custom builds. Each of these runs output statistics that can be viewed side by side to help the user determine, the optimal build. Output statistics will help a user determine accuracy, satiability, consistency and weight distribution over all the classes for the training/testing set and for single image prediction. Testing and evaluating the visual CNN extension shows that minimal knowledge of convolutional neural networks is needed by the user to train on their own dataset. Builds are created, trained, tested, and evaluated faster and more intuitively than the static method. A visual GUI also is more intuitive to humans and encourages interaction and manipulation, which in return will produce more data for evaluation. In total, 14 different test cases were evaluated on 3 different datasets, emotion, animal, and leaf. A base architecture is created using the leaf dataset and modified till 75% accuracy is achieved. Then each dataset is compared to the base case and all 14 modifications. In total, 42 output analysis windows are evaluated to show how the 14 modifications effect accuracy, fluctuation, stability and overfitting. These outputs and analysis showed that one wrong modification can render a working CNN useless, as it will stop it from being able to train. Major problems in CNN builds were overfitting, class favoring and accuracy fluctuations. These problems were quickly recognizable using the GUI created in this experiment. It shows that educational observations can be made along the way. Thus, the more users that have access to an intuitive CNN tool, the more exploratory analysis that can be done. In the future this visual extension will encompass more of the expert level CNN elements and have a dynamic training feature available. The dynamic analysis feature will allow the CNN to sense overfitting, fluctuation and class favoring and stop training, augment itself using past training knowledge and continue training without any user input.