Skip to content

mahdi-darvish/Convolutional-Neural-Network-on-Fashion-MNIST

Repository files navigation

Convolutional Neural Network Implementation on Fashion-MNIST

Brief Introduction

This notebook will cover the following two major topics :

  • Understand the basic concepts of CNN model
  • Implement CNN model in realtime using Fashion MNIST dataset

Fashion-MNIST is a dataset of Zalando's article images—consisting of a training set of 60,000 examples and a test set of 10,000 examples. Each example is a 28x28 grayscale image, associated with a label from 10 classes. Zalando intends Fashion-MNIST to serve as a direct drop-in replacement for the original MNIST dataset for benchmarking machine learning algorithms. It shares the same image size and structure of training and testing splits. The original MNIST dataset contains a lot of handwritten digits. Members of the AI/ML/Data Science community love this dataset and use it as a benchmark to validate their algorithms.

Data Description

  • Each image is 28 pixels in height and 28 pixels in width, for a total of 784 pixels in total.
  • Each pixel has a single pixel-value associated with it, indicating the lightness or darkness of that pixel, with higher numbers meaning darker. This pixel-value is an integer between 0 and 255.
  • The training and test data sets have 785 columns.
  • The first column consists of the class labels (see above), and represents the article of clothing.
  • The rest of the columns contain the pixel-values of the associated image.
  • To locate a pixel on the image, suppose that we have decomposed x as x = i * 28 + j, where i and j are integers between 0 and 27. The pixel is located on row i and column j of a 28 x 28 matrix. For example, pixel31 indicates the pixel that is in the fourth column from the left, and the second row from the top, as in the ascii-diagram below.

Results

I used a custom CNN using the Sequential model and optimized it with Adam's optimizer. Moreover, I manipulated the data using data augmentation and increased the size of the dataset. The model trained on three epochs and got over 80% accuracy, and you may also train with more epochs ( e.g., 30) and get over 95% accuracy. Loss and accuracy plots are shown below.

Error Display

I used a custom function to show some of the errors when the model couldn't find the right answer and illustrated the model prediction and real value.

About

CNN Modeling on Fashion MNIST dataset. 80% Accuracy on three epochs.

Topics

Resources

Stars

Watchers

Forks