Deep Generative Models / Summer 2025
Updates
- New Lecture is up: Lecture 12: Naive Bayes - Most Basic Generative Model
- New Lecture is up: Lecture 11: Discriminative vs Generative Learning
-
Project topics are now available! Check them out here
- New Lecture is up: Lecture 10: Data Generation Problem - Basic Definitions
- New Lecture is up: Lecture 9: Prompt Design
- New Assignment released: [Assignment #1 - Language Modeling]
- New Lecture is up: Lecture 8: Statistical View and LoRA
For the Quercus page of the course please click here
Course Description
This course aims to build a good understanding on Generative Models, the state-of-the-art architectures and their applications. The course in designed in two major parts, where in the first part the basic idea of data generation is introduced, and some mathematical foundations are provided. In this respect, the course looks at Large Language Models as an initial generative model and discusses some advancement in this respect. The second part of the course gets into the three major approaches for designing a generative model: namely, generative adversarial networks (GANs), variational autoencoders (VAEs), and diffusion models. The course finally goes through some recent advancements in generative AI. To follow the contents of this course, the students need to have a good understanding of machine learning models, particularly neural networks. Knowledge in more advanced topics like unsupervised learning methods, or newer architectures will be given in the course throughout the semester. A primary course in Machine Learning has hence been considered as the prerequisite. It is expected that the second part of the course dominates, i.e., approximately half of lectures will be on deep generative models.
Time and Place
Lectures
Lectures start on May 6, 2025. Please note that the lecture halls are different in Tuesdays and Thursdays.
Day | Time | Place |
Tuesdays | 6 - 8 PM | BA1170 - Bahen Centre for Information Technology |
Thursdays | 6 - 8 PM | BA1190 - Bahen Centre for Information Technology |
Tutorials
Tutorials sessions start on May 20, 2025.
Day | Time | Place |
Tuesdays | 5 - 6 PM | BA1170 - Bahen Centre for Information Technology |
Course Office Hours
Day | Time |
Wednesdays | 12:00 - 1:00 PM |
Course Syllabus
The course consists of three major parts: in Part I, we start with language models. Note that we do not get into the details from the natural language processing viewpoint, and mainly get the idea of how we can build a generative model. We will then formally define the problem of data generation and go through the key ideas for building a generative model, i.e., sampling from a data distribution, in Part II. Part III goes briefly through the recent advancements. Below is the detailed syllabus.
Part I: Initial Trial to Generate Data
- Generating text
- Review: Sequence-to-sequence models
- Language model
- Large Language Models
- Looking into some LLMs
- Using LLMs in practice
- Training
- Fine-tuning
- Prompting
- Stochastic viewpoint on data generation
- Looking at data as random process
- Data space versus dataset
- Data distribution
- Data generation by sampling from data distribution
Part II: Deep Generative Models
- Learning explicitly the data distribution
- Approximating data distribution via learnable models
- Training via maximum likelihood
- Some early examples
- Autoregressive Models
- Flow-based Generative Models
- GANs: Learning data distribution implicitly via adversarial networks
- Generative adversarial networks (GANs)
- Minmax game
- Implicit learning of data distribution
- Interpreting minmax problem as divergence minimization
- Wasserstein GANs and recent advancements
- Replacing KL divergence with Earth Mover (EM)
- Impacts of EM minimization on stability
- VAEs: Learning data distribution via variational inference
- Review: Autoencoders and latent space
- The concept of latent space
- Data generation by sampling from latent space
- Variational inference
- Variational Autoencoders
- Autoencoders with variational latent space
- Data generation by sampling from variational latent space
- Diffusion Models: Learning data distribution from variational processes
- Constructing variational processes via diffusion
- The idea of diffusion
- Interpreting diffusion as variational inference
- Forward and reverse processes
- Forward process – Noising procedure
- Reverse process – Denoising procedure
- Training diffusion-based generative models
Part III: Recent Advancements
- Multimodal Models
- Conditional generative models
Course Evaluation
The learning procedure consists of three components:
Component | Grade % | |
Assignments | 45% | 3 assignment sets |
Exam | 25% | midterm exam |
Project | 30% | predefined project from the list of suggestions or open-ended |
Assignment
This is the most important part: there is no way to learn a topic like Generative Models unless we get our hands dirty and implement whatever we learn. Roughly speaking, the first one goes through basics and make you play around with language models. The next two go through go through different ideas for data generation, i.e., GAN, VAE and Diffusion. The assignments include both analytic and programming tasks and count roughly for 45% of your final mark.
Exam
In the middle of the semester, somewhere around Week 7, there will be an exam. The exam will ask questions on theory. There will be no programming questions in the exam. The exam evaluates the understanding of fundamental concepts through questions that can be either explained in words or solved by hand. This exam will comprise 25% of the total mark.
Course Project
The course project procedure is illustrated in a seperate page. In a nutshell, however, the project will be in groups. Each group selects a topic from the predefined project list. Each group will then work on the project through the semester and present its final result at the end in a report and a short presentation. You have the option to choose your topic. In this case, your topic should be confirmed by the instructor and your project work description should be prepared to prepare to that of predefined ones. The course project is the key evaluator and comprises 30% of the course work.