Multi-Class Image Classification Deep Learning Model for Intel Image Classification Using TensorFlow Take 5

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 Intel Image Classification dataset is a multi-class classification situation where we attempt to predict one of several (more than two) possible outcomes.

INTRODUCTION: This dataset contains over 17,000 images of size 150×150 distributed under six categories: buildings, forest, glacier, mountain, sea, and street. There are approximately 14,000 images in the training set and 3,000 in the test/validation set. This dataset was initially published on https://datahack.analyticsvidhya.com by Intel as part of a data science competition.

From iteration Take1, we constructed a simple three-layer CNN neural network as the baseline model. We plan to use this model’s performance as the baseline measurement for future iterations of modeling.

From iteration Take2, we constructed a VGG16 neural network as an alternate model. We also compared this model’s performance with the baseline model from iteration Take1.

From iteration Take3, we constructed an InceptionV3 neural network as an alternate model. We also compared this model’s performance with the baseline model from iteration Take1.

From iteration Take4, we constructed a ResNet50V2 neural network as an alternate model. We also compared this model’s performance with the baseline model from iteration Take1.

In this Take5 iteration, we will construct a DenseNet201 neural network as an alternate model. We will compare this model’s performance with the baseline model from iteration Take1.

ANALYSIS: From iteration Take1, the baseline model’s performance achieved an accuracy score of 88.62% after 30 epochs using the training images. The baseline model also processed the validation images with an accuracy score of 85.37%.

From iteration Take2, the VGG16 model’s performance achieved an accuracy score of 83.57% after 30 epochs using the training images. The VGG16 model also processed the validation images with an accuracy score of 79.53%.

From iteration Take3, the InceptionV3 model’s performance achieved an accuracy score of 91.24% after 30 epochs using the training images. The InceptionV3 model also processed the validation images with an accuracy score of 87.10%.

From iteration Take4, the ResNet50V2 model’s performance achieved an accuracy score of 88.93% after 30 epochs using the training images. The ResNet50V2 model also processed the validation images with an accuracy score of 87.17%.

In this Take5 iteration, the DenseNet201 model’s performance achieved an accuracy score of 91.44% after 30 epochs using the training images. The DenseNet201 model also processed the validation images with an accuracy score of 87.27%.

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

Dataset Used: Intel Image Classification Dataset

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

Dataset Reference: https://www.kaggle.com/puneet6060/intel-image-classification

One potential source of performance benchmarks: https://www.kaggle.com/puneet6060/intel-image-classification

The HTML formatted report can be found here on GitHub.