In this project, students will first build a Convolutional Neural Network (CNN) model from scratch to classify images from a given dataset into predefined categories. Then, they will implement a transfer learning approach using a pre-trained model. Finally, students will compare the performance of the custom CNN and the transfer learning model based on evaluation metrics and analysis.
The dataset for this task is the CIFAR-10 dataset, which consists of 60,000 32x32 color images in 10 classes, with 6,000 images per class. You can download the dataset from here.
-
Data Preprocessing
- Data loading and preprocessing (e.g., normalization, resizing, augmentation).
- Create visualizations of some images, and labels.
-
Model Architecture
- Design a CNN architecture suitable for image classification.
- Include convolutional layers, pooling layers, and fully connected layers.
-
Model Training
- Train the CNN model using appropriate optimization techniques (e.g., stochastic gradient descent, Adam).
- Utilize techniques such as early stopping to prevent overfitting.
-
Model Evaluation
- Evaluate the trained model on a separate validation set.
- Compute and report metrics such as accuracy, precision, recall, and F1-score.
- Visualize the confusion matrix to understand model performance across different classes.
-
Transfer Learning
- Perform transfer learning with your chosen pre-trained models i.e., you will probably try a few and choose the best one (e.g., VGG16, Inception, ResNet trained on ImageNet)
- Train and evaluate the transfer learning model.
- Compare its performance against your custom CNN.
- Discuss advantages and trade-offs of using transfer learning over building a model from scratch.
-
Code Quality
- Well-structured and commented code.
- Deadline for submission: end of the week or as communicated by your teaching team.
- Submit the following:
- Python code files (
*.py,ipynb) containing the model implementation and training process. - Any additional files necessary for reproducing the results (e.g., requirements.txt, README.md).
- PPT presentation
- Python code files (
- Students are encourage to experiment with different architectures, hyper-parameters, and optimization techniques.
- Provide guidance and resources for troubleshooting common issues during model training and evaluation.
- Students will discuss their approaches and findings in class during assessment evaluation sessions.
