
Abstract: Diffusion models have been around for a while, but it wasn't until stable diffusion in 2022 that they became mainstream. In this workshop, we'll explore their inner workings, and how they accomplish the transformation of random noise into beautiful images and develop a simple diffusion model from the ground up, step-by-step. We'll start by adding random noise to images, and how the process itself can be optimized and automated using schedulers. Next, we'll explore the reverse diffusion process using both Denoising Diffusion Probabilistic Models (DDPMs) and the more efficient Denoising Diffusion Implicit Models (DDIM). We'll also discuss guided diffusion, and diffusion in latent space, the approach taken by stable diffusion. The goal of this session is to get you familiarized with diffusion models, their inner workings, and different approaches to data generation. We'll use Google Colab to build and train a simple diffusion model. You should be comfortable using Jupyter Notebooks, and training simple models in PyTorch.
Session Outline:
Module 1: The Diffusion Process: adding random noise to images
Module 2: Denoising Diffusion Probabilistic Models (DDPMs): reversing the diffusion process
Module 3: Denoising Diffusion Implicit Models (DDIMs): reversing in strides
Module 4: Diffusion in Latent Space and Guided Diffusion: less (dimensions) is more (speed)
Module 5: HuggingFace Diffusers
Background Knowledge:
Python, Jupyter Notebooks, PyTorch, Google Colab
Bio: Daniel has been teaching machine learning and distributed computing technologies at Data Science Retreat, the longest-running Berlin-based bootcamp, for more than three years, helping more than 150 students advance their careers. He writes regularly for Towards Data Science. His blog post "Understanding PyTorch with an example: a step-by-step tutorial" reached more than 220,000 views since it was published. The positive feedback from the readers motivated him to write the book Deep Learning with PyTorch Step-by-Step, which covers a broader range of topics. Daniel is also the main contributor of two python packages: HandySpark and DeepReplay. His professional background includes 20 years of experience working for companies in several industries: banking, government, fintech, retail and mobility.

Daniel Voigt Godoy
Title
Data Scientist, developer, teacher and writer. Author of "Deep Learning with PyTorch Step-by-Step: A Beginner's Guide"
