$25
Pattern Classification Using CNN
The purpose of this computer assignment is to design and test a deep CNN for pattern classification application. A subset of the CIFAR-10 data set which consists of 60000 32x32 color images of 10 different (no overlap) classes, with 6000 images per class, is used for this assignment. The original dataset has 50000 training images and 10000 test images of various animals (birds, cats, deer, dogs, frogs, horses), vehicles (cars, trucks), airplanes, and ships. This data set may be downloaded from http://www.cs.toronto.edu/~kriz/cifar.html.
1. Randomly select and divide the dataset into training (equal number of samples for each class), validation, and testing data sets that could be used to properly train and select optimum performing deep network and to demonstrate its generalization property on the testing set.
2. Design a stacked three-layer (3 convolutional and 3 max pooling layers) with softmax classification output layer and appropriate number of convolutional filters and mask sizes. Try at least two different learning algorithms e.g., stochastic gradient descent with a momentum term and an alternative faster learning algorithm e.g., RMSprop. Additionally, you can try two different loss functions to study their effects on the classification performance. At least 5 random weight initializations should be used for each structure in order to select the best performing network on the validation set. The number of deep layers can be adjusted, if necessary, depending on the performance on the validation data set.
3. Provide the learning curves and performance plots during the learning for every CNN structure, learning algorithm, and choice of loss functions ONLY for those properly trained networks and determine their generalization ability on the testing data set. Provide a comprehensive benchmarking of different networks based upon their overall correct classification rates, the associated confusion matrices, number of neurons in each layer and number of layers.