/ENPM809K-Fundamentals-for-Artificial-Intelligence-and-Deep-Learning

This repository contains my solutions and code submissions for assignments and projects completed as part of ENPM809K during Fall2023. Each assignment is organized in its own folder, with accompanying documentation and any necessary resources.

Primary LanguageJupyter Notebook

ENPM809K-Fundamentals-for-Artificial-Intelligence-and-Deep-Learning

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.

📚 Course Overview

This course explores the transformative impact of data science in various domains, including consumer products, healthcare, and banking. It focuses on three key pillars:

  1. Abundant and diverse data availability
  2. Advancements in AI and ML algorithms for handling complex datasets
  3. 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.

📄 Assignment List

1. Assignment 1: Image classification, KNN, SVM, Softmax, Fully Connected Neural Network using CIFAR-10 dataset

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
  • Batch Normalization

  • Dropout

  • Convolutional Neural Networks

  • 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

Assignment 3 provided insights into advanced deep learning topics, including image captioning, network visualization, Transformer Captioning, and generative models.

📝 Additional Resources