Building Diffusion Model's theory from ground up

ICLR Diffusion explained blogpost

We need to be able to sample from a generative model \(p_\theta(x)\) that approximates \(q_{\text{data}}(x)\) the score function of the data distribution interests us

  • compared to \(q_{\text{data}}(x)\), we think it might be tractable because the normalization term dies

Generate a new sample, assuming we know the score function perfectly

if we just naively optimize it through gradient descent, we’ll only go towards the peaks of the distribution but langevin proved that if we follow this and add a little bit of noise at each step (\(B_t = \text{brownian motion} = \mathcal{N}(0, dt)\)), then we do end up sampling from \(q_{\text{data}}(x)\)

Fokker-Planck equation (only helpful in theory): shows how the probability distribution \(p_t(x)\) evolves over time; at \(t = \infty\), it becomes \(q_{\text{data}}(x)\) shows that we can start from any initial distribution \(p_0\), and following langevin sampling transforms us to \(q_{\text{data}}\)

Estimating the score function

estimating the score function directly as \(s_\theta(x)\) isn’t expressive enough provide the time \(t\) as well, \(s_\theta(x_t, t)\) is probably sufficient

but how do we get samples? Going from \(t=\infty\) \(q_{\text{data}}(x)\) to \(t=0\) \(\mathcal{N}(0, I)\) : forward diffusion process!

  • the score function of the normal is really nice
  • discretize the equation
  • and then transform the time to go from \([0, 1]\) instead of \([0, \infty]\)
  • can do multiple forward steps at once

Ok, so now we can get samples from each time step \(t\) where we want to learn the score function. That still begs the question — how can we learn the score function without having the true score values?

  • from a noisy sample, learn the original clean sample
  • this somehow learns the score
  • another interpretation of this same objective: given noisy sample, it’s learning the expected direction of the noise that was added to get this sample

There’s another interpretation with Tweedie’s formula (but lowkey 6.7810 probably did that better)

There’s a whole other interpretation of diffusion models that doesn’t go through SDEs at all.