I’ve been thinking about offline model-based optimisation for the past six months, mostly in the background while working full-time, trying to write up something that captures both what I found and what still needs to be done in the field. It’s about validation, extrapolation, brittle surrogates, and how we evaluate generative models when the ground truth is expensive.
I wrote a self-contained implementation of NVIDIA's EDM diffusion model in a Jupyter notebook, as well as its associated sampling algorithms. I also discuss the rather confusing names used for real-world implementations of those algorithms.
VAEs can be difficult to understand and get working right. In this post I will dive into the theory of them, derive interesting equations which elucidate their behaviour, corroborate those insights on a simple toy dataset, as well as discuss how their issues can be alleviated with adversarial methods.