In this task, you'll dive into the world of Convolutional Neural Networks (CNNs) by working with the CIFAR-10 dataset, a staple in image classification challenges. Your goal is to build and evaluate two different CNN models to classify images into one of the ten categories accurately.
The dataset is availabel in pytorch and keras.
- Design and train a CNN model from scratch tailored for the CIFAR-10 dataset.
- Focus on the architecture that you believe will perform best for this specific task.
- Integrate various techniques such as batch normalization, dropout, learning rate schedulers, and early stopping to improve model training. Experiment with these methods and finetune them to see how they affect training stability, convergence speed, and overall performance.
- Implement a transfer learning approach using a pre-trained model of your choice.
- Fine-tune the model on the CIFAR-10 dataset to achieve the best possible performance.
Ensure that both models are robust and generalized well to unseen data.
After training both models, you will evaluate them on a provided test dataset.
Compare your models based on:
- AUC-ROC: How well does each model discriminate between classes?
- Model Size: Consider the trade-offs in model complexity.
- Inference Speed: Evaluate how quickly your model can predict classes for new images.
Reflect on the performance, size, and inference speed of both models. What insights can you draw from these comparisons?
- Understand and apply CNNs for image classification.
- Explore the impact of model architecture on performance and efficiency.
- Learn the process and benefits of transfer learning in deep learning.
Remember, the key to this task is not just about achieving the highest accuracy but also understanding the strengths and limitations of different approaches in machine learning model development.