Deep Learning

 This course offers a conceptual and practical introduction to deep learning. Module 1 covers the building blocks: different types of neural networks (convolutional, recurrent, graph) and effective embeddings through state-of-the-art architectures including attention modules, transformers, memory networks, and GPT. The module also addresses perception and generation in text and images. Module 2 reinforces these foundations through applications in NLP (summarization, sentiment analysis, and translation) and in computer vision (object detection, segmentation, monocular depth estimation, stable diffusion, and GANs). The course concludes with advanced topics: self-supervised learning, energy-based models, and stable diffusion. A major project component requires students to engage extensively with research papers and code.

Course Overview

This course advances your skills in machine learning to the next level by exploring how neural networks are used in a wide variety of understanding tasks such as text, image, video, etc. and how the latest advances in AI such as large language models, multimodal LLMs, etc work. This course would also provide you a taste of research. Deep Learning, being a very fast moving field reinvents itself every few years now. In this context, it’s essential that students experience how to keep themselves up to date and push the boundaries of the current state of the art. The course project in Deep Learning provides exactly that experience. If you excel in this course, you would be ready for industrial jobs in machine learning as well as for research positions you may want to consider in the future.

Learning Objectives

By the end of the course, each student has an opportunity to:

  • Understand the typical existing architectures in deep learning
  • Understand which applications they are used for and why
  • Find out the state of the art in a given application that uses deep learning architectures
  • Contribute an incremental advance in an existing solution enabling him/her to test out new ideas
  • Develop intuition about using different elements of deep learning in an application of their choice

Learning Outcomes

After completing this course, students should be able to:

  • Explain the function of a deep learning architecture for an application | Know/Knowledge outcome
  • Explore various types of deep learning solutions possible for a given application and qualify one as better than the other | Comprehend outcome
  • Demonstrate ability to code a certain architecture along with modification of training paradigms | Apply Outcome
  • Conduct an investigation on the state of the art implementations for a certain problem | Apply Outcome
  • Be able to criticize and do incremental advances on an existing system in a quantifiable manner | Apply Outcome
  • Synthesize the intuitions developed and tests conducted in a paper format while clearly highlighting existing gaps and proposed methods | Synthesize Outcome