Multi-Class Image Classification Deep Learning Model for Kaggle 275 Bird Species Using TensorFlow Take 4

Template Credit: Adapted from a template made available by Dr. Jason Brownlee of Machine Learning Mastery.

SUMMARY: This project aims to construct a predictive model using a TensorFlow convolutional neural network (CNN) and document the end-to-end steps using a template. The Kaggle 275 Bird Species dataset is a multi-class classification situation where we attempt to predict one of several (for this dataset 275) possible outcomes.

INTRODUCTION: This dataset contains 275 bird species with 39364 training images, 1375 test images (5 per species), and 1375 validation images (5 per species. All images have a resolution of 224 X 224 X 3 color images in the jpg format. Each dataset includes 275 subdirectories, one for each bird species.

From iteration Take1, we constructed a simple three-layer CNN model to predict the species for the image.

From iteration Take2, we constructed a CNN model based on the InceptionV3 architecture to predict the species for the image.

From iteration Take3, we constructed a CNN model based on the VGG19 architecture to predict the species for the image.

In this Take4 iteration, we will construct a CNN model based on the ResNet152V2 architecture to predict the species for the image.

ANALYSIS: From iteration Take1, the simple three-layer CNN model’s performance achieved an accuracy score of 68.87% after 50 epochs using the validation dataset. The same model processed the test dataset with an accuracy score of 69.24%.

From iteration Take2, the InceptionV3 model’s performance achieved an accuracy score of 96.51% after 20 epochs using the validation dataset. The same model processed the test dataset with an accuracy score of 97.53%.

From iteration Take3, the VGG19 model’s performance achieved an accuracy score of 91.27% after 20 epochs using the validation dataset. The same model processed the test dataset with an accuracy score of 94.84%.

In this Take4 iteration, the ResNet152V2 model’s performance achieved an accuracy score of 97.96% after 20 epochs using the validation dataset. The same model processed the test dataset with an accuracy score of 97.60%.

CONCLUSION: In this iteration, the ResNet152V2-based CNN model appeared to be suitable for modeling this dataset. We should consider experimenting with TensorFlow for further modeling.

Dataset Used: Kaggle 275 Bird Species dataset

Dataset ML Model: Multi-class image classification with numerical attributes

Dataset Reference: https://www.kaggle.com/gpiosenka/100-bird-species

One potential source of performance benchmarks: https://www.kaggle.com/gpiosenka/100-bird-species

The HTML formatted report can be found here on GitHub.