Part 2 Questions:
In this lab, we will look at the processing of the MNIST data set using ConvnetJS. This demo uses this page: http://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html The MNIST data set consists of 28x28 black and white images of hand written digits and the goal is to correctly classify them. Once you load the page, the network starts running and you can see the loss and predictions change in real time. Try the following:
- Name all the layers in the network, describe what they do.
There is 24x24 input layer, representing image, followed by two sequences of a convolutional layer followed by a pooling layer, and then a softmax classification output layer (for 10 classes). The convolutional layers use a filter to assess each pixel in the context of its surrounding pixels. The pooling layer reduces the size of the representation from the convolutional layer.
- Experiment with the number and size of filters in each layer. Does it improve the accuracy?
Increasing number and size of first filter modestly descreased validation accuracy of model. Likewise lower both on first convolutional layer reduced validation accuracy.
- Remove the pooling layers. Does it impact the accuracy?
Yes
- Add one more conv layer. Does it help with accuracy?
I added another convolutional layer and another max pooling layer and it seemed to increase validation accuracy.
- Increase the batch size. What impact does it have?
It seemed to slow the improvemnet of training and validation accuracy
- What is the best accuracy you can achieve? Are you over 99%? 99.5%?
Adding another convolutional and pooling layer and reducing learning rate and momentumcaused it to bounce around between 95% and 99%