Using deep learning for classification - Samuel Matthews
InceptionV3
Utilizing the InceptionV3 CNN for our image classification. We downloaded pre-trained weights from ImageNet to increase the accuracy of our classification. Later on, we retrained the model to fit our ten classes specifically.
Data augmentation
Since we had a small data set we had to use augmented data to get the best results. We did this with the help of ImageDataGenerator class from the tensorflow library.
Training paramaters
For the optimizer we used the RMSProp optimization. A learning rate of 10E-4. And a batch size of 8. This combination gave us really good results. One thing to note is that the batch size seemed to play the most significant role in maximum accuracy, however we could not increase it further because of the google colab resourses limitation.
Results
Here we can see the average loss and accuracy per epoch. This is data from training without the segmentation of the images. As we can see, the accuracy is extremely good even without the segmentation part. The highest average accuracy is 97.5%.
Correctly classified test set image
Incorrectly classified test set image
Incorrectly classified test set image #2
Here we can see another image which the model failed to classify correctly and on the right is this type of butterfly the model thinks the input is.
Online images
Here we found an example of correct and incorrect classification from images the model has never seen before.