I started out with a model that had a single 64 neuron hidden layer, 16 Convolutional layer with the size 3x3 and a single 2x2 pooling layer with 0.5 dropour.The results were well... to put it nicely, not too great(loss: 3.4969 - accuracy: 0.0547
). This showed me that I clearly needed more hidden layers sinceapparently, the network was not large enough to capture the number of features that a traffic sign has. So this time, I tried two hidden layers(with 64 and 32neurons respectively) and left everything as it was so that I can observe the change. However, to my surprise the results were not effected at all by thi(loss: 3.4959 - accuracy: 0.0537
). Since I didn't want to cause overfitting in the system, I started playing around with the convolutional layers.
I added 16 more 3x3 layers, making a total of 32. This caused a huge improvement in the accuracy of our model(loss: 1.3380 - accuracy: 0.5404
), still it wasnot good enough. So then, I changed the size of those layers to 5x5 matrices which created a big difference (loss: 0.3753 - accuracy: 0.8984
). The interestingoutcome that I noticed during the training process of the model was that the more and the larger Convolutional layers I had, the faster accuracy improved. Ibelieve that's because as the CLs that I added got bigger, the more features about the image were extracted before reaching the hidden layers, which enabled thenetwork to infer results and connections faster than when it does when we feed it with more raw data.