Authored by Barath Chandran

Published on June 2, 2026

The Schrödinger bridge, as its name says, was invented by the physicist Erwin Schrödinger to define the non-Brownian transport of gas particles between two arbitrary marginal distributions. This classical physics concept and the stochastic calculus describing it have gained traction in the generative modeling space after the introduction of diffusion Schrödinger bridges (DSB)—a diffusion-based model that could go beyond generation to enable optimal transport between arbitrary data distributions. For example, they can map images from the distribution of real-world cats to that of cartoon cats.

morph-ezgif.com-optimize (1).gif

schrodinger_bridge-ezgif.com-speed.gif

So what will this post cover?

DSBs are commonly viewed as an extension of flow matching due to Diffusion Schrödinger Bridge Matching [11], the most widely used and scalable training algorithm for DSBs. The purpose of this post is to take a different route and show how diffusion Schrödinger bridges can be seen as an extension of variational autoencoders, introduced way back in 2013. We do so by showing that their likelihood training is mathematically equivalent to the training of infinitely deep hierarchical VAEs. Along the way, this post also provides readers a much more straightforward derivation of the evidence lower bound on log-likelihood for the Schrödinger Bridge model.

This formalism/framework was first properly consolidated in the paper "Schrödinger bridge-type diffusion models as an extension of variational autoencoders [1],” from which the post heavily derives. Finally, the resulting training framework—consisting of the likelihood-based objective functions and the Itô SDEs used for sampling—can be viewed as a generalized template that may be adapted to different parameterizations and application-specific constraints. While we start with a quick recap of Variational Autoencoders (VAEs) and Hierarchical VAEs, feel free to refer to the notation and conventions section at the end if any notation seems unfamiliar.

Variational Autoencoders

                        In practice $q_\phi(z|x$) is parameterized as $\mu_\phi(z|x)$ and $\sigma_\phi(z|x)$  separately.

                    In practice $q_\phi(z|x$) is parameterized as $\mu_\phi(z|x)$ and $\sigma_\phi(z|x)$  separately. 

A VAE is a generative model that learns to compress data into and generate data from a smooth probabilistic latent space [2]. Let’s say you have a data distribution $\mu (x)$ and $p_\theta (x)$ is an estimator of this true distribution. Our goal while training a VAE is to maximize the likelihood $p_\theta (x)$ of samples drawn from $\mu (x)$.

$p_\theta(x)$ can be expressed as $\int p_\theta(x|z) \pi (z)dz$ where $p_\theta (x|z)$ is the decoder that goes from the latent z-space to x-space. This integral is intractable, so we make the following changes:

  1. Introduce an encoder $q_\phi(z|x)$ and rewrite the integral as an expectation, which can then be estimated by drawing samples from the encoder.
  2. Use Jensen's inequality to push this expectation out of the log.
  3. Choose $\pi(z)$ to be a known tractable distribution, i.e., a Gaussian prior.

$$ \begin{equation*}\begin{aligned}\log p_\theta(x)&= \log \int p_\theta(x,z)\,dz \\&= \log \mathbb{E}{q\phi(z|x)}\left[\frac{p_\theta(x,z)}{q_\phi(z|x)}\right] \\&\geq\mathbb{E}{q\phi(z|x)}\left[\log \frac{p_\theta(x,z)}{q_\phi(z|x)}\right] \qquad \qquad\qquad\qquad\\&\geq\mathbb{E}{q\phi(z|x)}\left[\log p_\theta(x|z)\right]+\mathbb{E}{q\phi(z|x)}\left[\log \frac{\pi(z)}{q_\phi(z|x)}\right]\\ \mathrm{ELBO}&=\mathbb{E}{\mu(x)q\phi(z|x)}\left[\log p_\theta(x|z)\right]+\mathbb{E}{\mu(x)q\phi(z|x)}\left[\log \frac{\pi(z)}{q_\phi(z|x)}\right] \quad \\&=\mathbb{E}{\mu(x)q\phi(z|x)}\left[\log p_\theta(x|z)\right]-\mathbb{E}{\mu(x)}D{KL} \left( q_\phi(z|x)\,\|\,\pi(z) \right) \quad (1)\end{aligned}\end{equation*} $$

As a side note, we can also look at the training objective of VAE as minimizing the $\mathrm{KLD}$ between $p_\theta(x)$ and $\mu(x)$. While Kaba et al. [1] follows the $\mathrm{KLD}$ training objective we stick with $\mathrm{ELBO}$ to keep in line with our intent of deriving the $\mathrm{ELBO}$ of the SB model. The resulting optimization is still equivalent to maximizing $\mathrm{ELBO}$ as

$$ \begin{equation*}\begin{aligned}D_{KL}\bigl(\mu(x)\,\|\,p_{\theta}(x)\bigr)&=\mathbb{E}{x \sim \mu}\left[\log \frac{\mu(x)}{p{\theta}(x)}\right]\\&=\mathbb{E}{x \sim \mu}\left[\log \mu(x)-\log p{\theta}(x)\right]\\&=\mathbb{E}{x \sim \mu}\left[\log \mu(x)\right]-\mathbb{E}{x \sim \mu}\left[\log p_{\theta}(x)\right] \qquad \qquad\qquad \qquad\qquad \\&\leq-H(\mu)- \mathrm{ELBO}\end{aligned}\end{equation*} $$

For complex distributions and high-dimensional data, approximating $q_\phi(z|x)$ with a single latent layer is limiting; this is where hierarchical VAEs come in.

Hierarchical Variational Autoencoders

A hierarchical VAE has multiple stochastic layers and corresponding latent vectors, enabling it to learn more expressive representations of complex data. For example, for a depth of 2, we would have two encoding networks $q_\phi(z_1|x)$ and $q_\phi(z|z_1)$, two decoding networks $p_\theta(z_1|z)$ and $p_\theta(x|z_1)$.

image.png

Similar to Eq. (1), the corresponding Evidence lower bound on $\log p_\theta(x_0)$ for this model can be derived as

$$ \begin{equation*} \begin{aligned} \log p_\theta(x_0) &= \log \int p_\theta(x_0,z_1,z)\,dz_1\,dz\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \\ &\geq \mathbb{E}{q\phi(z_1,z|x_0)} \left[ \log \frac{ p_\theta(x_0,z_1,z) }{ q_\phi(z_1,z|x_0) } \right] \quad (2)\\ &\geq \mathbb{E}{q\phi(z_1,z|x_0)} \left[ \log \frac{ \pi(z)p_\theta(x_0|z_1)p_\theta(z_1|z) }{ q_\phi(z_1|x_0)q_\phi(z|z_1) } \right] \\\mathrm{ELBO} &= \mathbb{E}{\mu(x_0)q\phi(z_1|x_0)} \left[ \log p_\theta(x_0|z_1) \right]

\mathbb{E}{\mu(x_0)q\phi(z_1|x_0)} D_{KL} \left( q_\phi(z|z_1)\,\|\,\pi(z) \right) \quad \quad \quad \quad \quad \\ &\quad

\mathbb{E}{\mu(x_0)q\phi(z_1,z|x_0)} D_{KL} \left( q_\phi(z_1|x_0)\,\|\,p_\theta(z_1|z) \right) \end{aligned} \end{equation*} $$