Deep Generative Models / Summer 2025
Updates
-
The presentation schedule is now available here. The seminars are on Tuesday and Thursday, August 5 and 7. We start at 6:00 PM in the lecture hall.
- New Lecture is up: Lecture 59: Final Words
- New Lecture is up: Lecture 58: Computational Conditioning via Embedding
- New Lecture is up: Lecture 57: Multimodality and Conditional Generative Models
- New Lecture is up: Lecture 56: Some Known Diffusion Models
- New Lecture is up: Lecture 55: Denoising Diffusion Implicit Models
- New Lecture is up: Lecture 54: Denoising DPMs
For the Quercus page of the course please click here
Final Project Submission and Presentation
Final Presentations
The final project presentations will be given on Tuesday August 5 and Thursday August 7.
The seminars start at 6:00 PM in the lecture hall. The detailed schedule can be found here.
- We will post the detailed schedule of the presentation one week in advance. If you prefer to present on specific day, you may let us know, though we cannot guarantee to set you on that day.
- While presenting, all group members should be be on the presentation stage. Nevertheless, if the group prefers, the presentation can be given by some members.
- If some group members cannot attend due to specific circumstances, they need to get approval in advance by letting the instructor know and ask for permission.
- Non-attending group members must prepare a complete 5-minute recorded presentation by their own (individually), upload it to MyMedia, and submit the video link through Quercus by the deadline. We will shortly open the submission panel on Quercus.
- Note that the remaining group members should present as normal excluding the non-attending group member(s).
- You should be clear about the teamwork in your presentation and respect the timing (5 minutes) and page-limit.
- Attending both presentation seminars is mandatory for all. Regardless of the day and time of your presentation, you must be attending the seminars. If you cannot attend, you need to coordinate it in advance with the instructor. Failure to address this can lead to mark deduction.
Final Submission
The final submission deadline for the report and code is by the end of the week, i.e., August 10 at 11:59 PM. While you may continue to edit your code on your Git repository, we will only consider commits made before the deadline as part of the final submission.
Midterm Exam
The midterm exam will be on Tuesday June 24, 2025 starting on 6:00 PM in EX 320 (Exam Centre located in 255 McCaul Street).
For the exam, please pay attention to the following points:
- The exam covers Chapters 1 to 3 (GAN is not included). It will include only written questions and does not include programming
- The exam is 3 hours long
- Please bring a photo ID with you to the exam
- The exam is open-book meaning that you can bring any printed material with you (printed notes, your own notes, cheat-sheet, textbook, etc). Electronic devices are though NOT allowed in the exam
If you need any assistance or specific accommodation for the exam, please feel free to reach out.
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.