# Diffusion models from scratch

Diffusion models are a type of generative deep learning model that can generate new samples that are similar to the original dataset. In this blog post, we will discuss how to build a diffusion model from scratch using Python and TensorFlow. We will also explore the mathematics and intuition behind diffusion models.

This post was originally posted by AI-ContentLab

# Understanding Diffusion Models

Diffusion models are generative models that work by destroying training data through the successive addition of Gaussian noise and then learning to recover the data by reversing this noising process. The diffusion process is the core of the diffusion model. It involves a sequence of noise-reducing transformations that are applied to the input data. The diffusion process is defined as follows:

- Start with a sequence of Gaussian noise with a mean of 0 and unit variance.
- Apply a sequence of noise-reducing transformations to the noise sequence.
- The output of the diffusion process is the final noise sequence.
- The diffusion process is what makes the diffusion model unique. It allows the model to generate new samples that are similar to the original dataset.