This repository contains my solutions and code submissions for assignments and projects completed as part of ENPM809K during Fall 2023. It's worth noting that this course is aligned with the curriculum of the Stanford CS231n class. Each assignment is organized in its own folder, with accompanying documentation and any necessary resources.
This course explores the transformative impact of data science in various domains, including consumer products, healthcare, and banking. It focuses on three key pillars:
- Abundant and diverse data availability
- Advancements in AI and ML algorithms for handling complex datasets
- Breakthroughs in computer architectures
Emphasizing deep learning, the course covers foundational machine learning principles, advanced neural network techniques, and practical hands-on experience with leading frameworks like Keras, TensorFlow, and PyTorch, enabling students to develop, assess, and troubleshoot neural networks for real-world applications.
1. Assignment 1: Image classification, KNN, SVM, Softmax, Fully Connected Neural Network using CIFAR-10 dataset
-
k-Nearest Neighbor classifier:
- Test accuracy on CIFAR-10: 0.282
-
Training a Support Vector Machine:
- Test accuracy on CIFAR-10: 0.365
-
Implement a Softmax classifier:
- Test accuracy on CIFAR-10: 0.395
-
- Test accuracy on CIFAR-10: 0.506
-
Higher Level Representations (Image Features):
- Test accuracy on CIFAR-10: 0.598
-
Learnings from Assignemnt 1:
- Developed an understanding of image classification pipelines an implemented various classification algorithms including k-Nearest Neighbor, SVM, Softmax, and Two-layer Neural Network.
- Learned about data driven solutions and recognized the significance of proper data splitting, validation techniques and feature representations for better classification performance.
2. Assignment 2: Fully-Connected Nets, Batch Normalization, Dropout, Convolutional Nets using CIFAR-10 dataset
-
Multi Layer Fully-connected Neural Network:
- Validation / Test accuracy on CIFAR-10: 0.489 / 0.471
-
Pytorch/Tensorflow in CIFAR-10:
- Validation / Test accuracy on CIFAR: 0.791 / 0.789
-
Learnings from Assignemnt 2:
-
Multi Layer Fully-connected Neural Network: Explored fully-connected neural network architecture, considering the impact of hyperparameters.Addressed overfitting using dropout and observed its effectiveness.
-
Batch Normalization: Implemented batch normalization, understanding its role in stabilizing training and enhancing convergence. Recognized its contribution to faster training and improved generalization.
-
Dropout: Implemented dropout regularization to mitigate overfitting. Acknowledged the role of dropout in creating more robust models.
-
Convolutional Neural Networks (CNNs): Implemented CNNs for image classification on CIFAR-10. Understood the significance of convolutional layers, pooling, and fully-connected layers.
-
PyTorch/Tensorflow in CIFAR-10: Applied PyTorch and Tensorflow to construct, train, and assess models on CIFAR-10. Conducted a comparative analysis of model performance between PyTorch and Tensorflow.
-
3. Assignment 3: Image Captioning with Vanilla RNNs, Image Captioning with LSTMs, Network Visualization, Transformer Captioning, Generative Adversarial Networks
-
Network Visualization: Saliency maps, Class Visualization, and Fooling Images (PyTorch)
-
Learnings from Assignemnt 3:
-
Image Captioning with Vanilla RNNs: Explored image captioning using Vanilla RNNs. Addressed challenges in generating captions for images.
-
Image Captioning with LSTMs: Implemented image captioning using LSTMs, achieving improved caption generation compared to Vanilla RNNs.
-
Network Visualization: Learned techniques for visualizing neural network activations. Explored methods to interpret neural network workings.
-
Transformer Captioning: Implemented key pieces of a transformer decoder to peform imaghe captioning task
-
Generative Adversarial Networks (GANs): Understood GANs, DCGANs and applied them for image generation on the MNIST dataset. Implemented a GAN model using PyTorch for realistic image synthesis.
-
Assignment 3 provided insights into advanced deep learning topics, including image captioning, network visualization, Transformer Captioning, and generative models.