Question One
Cifar-10 Dataset is a dataset of 50,000 32×32 color training images and 10,000 test images, labeled in 10 categories. For more information, visit the CIFAR homepage. Using the provided starter code (Jupyter Notebook), complete the following tasks:
- Perform Data Preprocessing on the CIFAR-10 dataset to make it suitable for training Machine Learning models. Clearly document the steps involved.
- Implement at least two supervised learning models discussed in Module-6 and train them on the preprocessed CIFAR-10 dataset.
- Evaluate the performance of both models on the CIFAR-10 test dataset and report their accuracy.
- Analyze and discuss:
-
- The impact of your data preprocessing steps on the model’s performance. (It can be tested on one model or both.)
- Compare and discuss the accuracy of the two models.
– Include your code in the provided Jupyter Notebook file.
– Submit a brief report addressing tasks (3) and (4) with explanations, charts, or tables as needed
Question Two
In this task, you will build and evaluate neural network models for image classification on the CIFAR-10 dataset. Using the provided starter code (Jupyter Notebook), complete the following:
- Implement a simple Artificial Neural Network (ANN) using the framework of your choice (e.g., TensorFlow (Keras) or PyTorch). Train the model on the CIFAR-10 dataset. (Apply the required data pre-processing).
- Build and train a Convolutional Neural Network (CNN) for the same classification task. Ensure that your CNN architecture includes at least one convolutional layer, one pooling layer, and one fully connected layer.
- Compare the performance of the ANN and CNN on the CIFAR-10 test dataset, reporting their accuracy and any observations regarding their training processes.
- Discuss the following:
-
- The advantages of using CNNs over ANNs for image classification tasks.
- Any challenges you faced while training these models and how you addressed them.
Submission Requirements:
- Include your code for both models in the provided Jupyter Notebook file.
- Submit a brief report summarizing the results and addressing the discussion points in task (4).
Question Three
Using the models developed in Questions 1 and 2, evaluate their performance using a confusion matrix. Complete the following:
- Generate a confusion matrix for each model (Machine Learning and Neural Network-based) using the test dataset.
- Calculate and report the precision and recall for each class based on the confusion matrix using (classification report) from the scikit-learn library.
- Calculate and report the IoU metric for your models if applicable. If IoU cannot be evaluated for your specific models or tasks, explain why it is not appropriate.
- Discuss the importance of the confusion matrix, precision, and recall in evaluating classification models. Include observations about:
-
- How the models perform across different classes.
- Any strengths or weaknesses revealed by these metrics that might not be apparent from accuracy alone.
Submission Requirements:
- Include the code used to generate the confusion matrices and calculate precision and recall in the provided Jupyter Notebook file.
- Provide a brief report summarizing the confusion matrices, metrics, and your discussion.