CNN for Image Classification

Custom and Pre-Trained models for MNIST Digit Clasification

The project documents collaborative efforts in applying pattern recognition and machine learning techniques. The primary focus is on the MNIST dataset, with projects that explore digit classification and neural network optimizations.

My Contribution

I was the project lead in this Pattern Recognition project. My work included model training and building, hyperparameter optimization, and performance evaluation in both the custom Convolutional Neural Network and DenseNet architecture, achieving significant improvements in accuracy and model convergence.

Overview

Part 1: Custom CNN for Image Classification

This project involves the design and implementation of a custom Convolutional Neural Network (CNN) to classify handwritten digits from the MNIST dataset.

Key Features:

Class Distribution of the Dataset.
PCA on MNIST Dataset.
  • Custom CNN architecture built using PyTorch.
  • Dataset split into training, validation, and testing sets.
  • Comprehensive evaluation using metrics like accuracy, confusion matrix, precision, and recall.

Training and Validation loss curves:

Repository: Custom CNN Implementation

Part 2: State-of-the-Art CNN Implementations

Each team member implemented and fine-tuned a pre-trained CNN architecture to compare its performance with the custom model:

  • DenseNet: Fine-tuned for accuracy improvements and faster convergence.
DenseNet Architecture
Training Curve.
  • ResNet: Utilized residual connections for handling deeper layers.
ResNet Architecture.
Training Curve.
  • GoogLeNet: Fine-tuned for complex image classification tasks.
GoogLeNet Architecture
Training Curve.
  • VGG: Optimized for feature extraction.
Model Accuracy
Custom CNN 99.14%
DenseNet 99.28%
ResNet 99.56%
GoogLeNet 99.04%
VGG 99.15%

</br>

Repositories:

Pending update on overall results.

For more details, visit the Team Synapse organization.