DSBM: Diffusion Schrödinger Bridge Matching
Pair two datasets at random, fit a diffusion between the pairs, re-pair them with the fitted diffusion, and repeat: the pairing converges to entropy-regularised optimal transport.
Bridge matching learns a diffusion between two datasets from paired samples, but the pairing it starts from is arbitrary. Iterative Markovian Fitting re-pairs the samples with the learned diffusion and fits again; every round keeps both datasets exactly and moves the pairing toward the Schrödinger bridge.
Explaining the paperDiffusion Schrödinger Bridge MatchingA regression, a simulation, and two projections that each keep something the other destroys. Each round is one bridge-matching regression on endpoint pairs, so nothing between the endpoints is ever stored.
Transport between two datasets
Take two sets of images with no correspondence between them: the paper uses 20,000 CelebA faces tagged male and old and 20,000 tagged female and young, and, at 512×512, about 5,000 AFHQ cats and 5,000 wild animals. The task is a map that turns a sample of the first distribution into a sample of the second. Generative modelling is the special case where the first distribution is Gaussian noise.
Many maps do the job, and most of them are useless for transfer: a map that sends every cat to a random wild animal has the right output distribution and preserves nothing. Optimal transport (OT) picks the map that minimises the expected squared displacement , so each input goes to a nearby output, which for images means the pose and colours survive. Computing that map for continuous distributions in a million dimensions, from samples, has no direct algorithm. Entropy-regularised OT adds a penalty on the concentration of the pairing, which makes the discrete problem solvable by the Sinkhorn iterations of Cuturi (2013) but still needs a cost matrix between all pairs of samples.
The Schrödinger bridge (SB) is the dynamic version of entropy-regularised OT. Instead of a static pairing it asks for a stochastic process on that starts distributed as , ends distributed as , and is as close as possible to a reference diffusion (Brownian motion, in every experiment here). "As close as possible" is measured by the KL divergence between the two path measures, the distributions over whole trajectories:
Three families of methods already build dynamic transports from samples, and each falls short of (1) in a specific way. A denoising diffusion model reverses a noising process, so its source must be the Gaussian that the noising process converges to, and it only converges in infinite time. Flow matching and its stochastic sibling, bridge matching, connect any two distributions by drawing an arbitrary pair, interpolating between the two points, and regressing the interpolation velocity; the transport they learn is whatever the arbitrary pairing produces, and nothing pulls it toward OT. Diffusion Schrödinger Bridge (DSB, De Bortoli et al. 2021) does target (1), through an alternating scheme called Iterative Proportional Fitting (IPF), the continuous-state form of Sinkhorn; each round learns the time reversal of the previous process, which needs the whole discretised trajectory of every chain in memory, and the errors of each round pass into the next.
The paper contributes a new alternating scheme, Iterative Markovian Fitting (IMF), whose rounds are bridge-matching regressions, and an algorithm that runs it, Diffusion Schrödinger Bridge Matching (DSBM). The rest of this page builds it from four objects: a diffusion pinned at both ends, a mixture of such bridges, the Markovian projection that turns a mixture into a process you can simulate, and the reciprocal projection that turns a process back into a mixture.
A diffusion pinned at both ends
The reference process is a diffusion
with drift and noise scale . Every experiment in the paper takes , constant and , so the reference is Brownian motion with a single scale parameter, and this page keeps that convention. Conditioning the process on both its start and its end gives a diffusion bridge , a distribution over paths that all begin at and all arrive at . A theorem of Doob (the -transform) writes the bridge as a diffusion again, with an extra drift that pulls toward the pinned endpoint:
In (3), is the transition density, the probability that the free process started at at time lands at . Its log-gradient in points toward states from which is easier to reach, and the extra drift follows it. The same construction runs the image-to-image bridge models on the DBMSolver page.
For Brownian motion the bridge is explicit. With , the transition density is Gaussian, its log-gradient is , and the pinned process can be sampled at any time without simulation:
with . The mean is the straight line from to and the spread is a parabola that vanishes at both ends. In numbers: in two dimensions, with , , , and a noise draw , the mean is , the noise scale is , and the bridge sample is . At the bridge is the straight line, which is the interpolant flow matching regresses on.
Now fix a coupling , a joint distribution over pairs whose two marginals are and , draw a pair, then draw a bridge between them. The distribution over paths this produces is the mixture of bridges . The set of all such mixtures, over every coupling, is the reciprocal class of , written : path measures whose bridges are exactly the bridges of . Inside the reciprocal class the coupling is the only freedom left. The simplest coupling is the independent one, , which pairs each source sample with a random target sample.
Drag to 0 to see the straight interpolants, then back up; move to see the time- marginal of the whole mixture; switch the coupling and watch the crossings and the cost readout change:
A mixture of bridges is easy to sample from and impossible to run. To continue a path from time you need the it was assigned at the start, which a fresh input does not come with. The process is not Markov: its future depends on more than its present state. Generation needs a process whose next step is a function of the current state alone, and the next section builds one.
The Markovian projection
Fix the mixture . At a point and time , many bridges pass through, each heading for its own with the drift of (3). The Markovian projection keeps the reference drift and noise and replaces the bridge drift by its conditional average over the bridges that pass through at :
For the Brownian bridge the expectation is elementary:
The averaged drift points from toward the mean endpoint of everything currently at . The projected process is a Markov diffusion and can be simulated from any start. The paper's Proposition 2 gives it two properties. It is the closest Markov process to in the reverse KL, over Markov , which justifies the word projection. And it has the same time marginals as at every , a result that goes back to Gyöngy (1986): averaging the velocity at each point leaves the flow of probability mass through each point unchanged. In particular . Start the projected SDE from , run it to , and the outputs are distributed as .
Learning the projection is a regression. The minimiser of a squared loss is a conditional mean, so fitting a network to the bridge drift over samples of recovers exactly at the optimum:
With the Brownian bridge (4) the regression target is , and substituting the bridge sample turns it into the pair difference plus a noise term:
On the numbers above, the two sides agree:
The second form shows what the network has to do: predict the displacement of the pair, and predict the noise that was added, from the noised point alone. Near the noise term grows like , which is why the code scales the loss down there (the pseudocode below, and the Provenance note on how the paper and code differ on that scale). The code draws uniformly on .
The figure below runs the projection in one dimension on a source with modes at and a target with modes at , coupled independently, so half of the bridges cross the middle and half stay on their side. Move the probe: the thin arrows are the mean velocity of each of the four kinds of path through the probe, faded by how likely that kind is at the probe; the bold arrow is their average, the drift (5). Then switch to the Markov paths and read the two crossing shares at the top, one under the mixture and one under the Markov paths:
Every time marginal survives the projection. The pairing does not: a projected path follows the averaged drift, which is the same whichever endpoint pair produced the path through that point, so it lands near the endpoint that most of its neighbours were heading to. The projected process is therefore no longer a mixture of 's bridges; its own bridges differ from , and it has left the reciprocal class. Bridge matching, as proposed by Peluchetti (2021) and Liu et al. (2022), is one projection from the independent coupling and stops here. Flow matching is the same with , where (7) loses its noise term and becomes the velocity target .
The Schrödinger bridge, two ways
The dynamic problem (1) has a static twin. Restrict attention to endpoints: among couplings with the right marginals, find the one closest to the reference's own endpoint law . The SB is then that coupling with the reference bridges filled in, , which places the SB inside the reciprocal class. For Brownian motion the reference endpoint law is
and expanding the KL against it (the factor is fixed by the marginal constraint, the Gaussian contributes the squared distance, and the entropy of is what remains) gives
with the entropy. This is entropy-regularised OT with regularisation , so sets how far the coupling may spread: at and , in squared data units; the CelebA runs sweep from 0.01 to 10. As the penalty vanishes and (8) becomes plain OT with the squared cost.
The characterisation that IMF is built on is older than either form. Jamison (1974) and Léonard's survey (Theorem 2.12) give it as follows, and the paper restates it as Proposition 5: for a Markov reference, the SB is the unique path measure that has the marginals and , is Markov, and lies in the reciprocal class of . The Markovian projection of the previous section produces the second property and destroys the third. The operation for the third property is the reciprocal projection: take any path measure , keep only its endpoint law, and put the reference bridges back,
Proposition 4 shows it is again a projection, the closest member of the reciprocal class to in . Sampling it costs nothing beyond what the source process costs: draw from , then a bridge from (4). It keeps both marginals, since the endpoints are untouched, and it destroys the Markov property, since a mixture of bridges is not Markov.
IPF and IMF now sit side by side. IPF alternates the two marginal constraints, projecting onto "ends at " and then onto "starts at ", and each iterate stays Markov and stays in the reciprocal class (each one is an -transform of the last). IMF alternates the Markov constraint and the reciprocal constraint, and each iterate keeps both marginals. The paper's Table 1 is this table:
| alternates between | every iterate keeps | |
|---|---|---|
| IPF (DSB) | and | Markov, in |
| IMF (DSBM) | Markov and | , |
The practical difference follows from what each scheme learns. An IPF iterate is the time reversal of the previous iterate with a new start distribution, and learning a time reversal needs samples of the whole trajectory of the previous process. An IMF iterate is a regression on endpoint pairs, because everything between the endpoints is a reference bridge that can be drawn in closed form.
Iterative Markovian Fitting
Start from any mixture of bridges with the right marginals, , and alternate the two projections:
Both marginals are preserved at every step: the Markovian projection keeps all time marginals, and the reciprocal projection keeps the endpoints. So every iterate satisfies the first of the three properties, the odd iterates satisfy the second, the even iterates satisfy the third, and a fixed point satisfies all three and is the SB by uniqueness. The paper proves more than that a fixed point would be right. Lemma 6 is a Pythagorean identity for each projection: for any Markov and any in the reciprocal class,
and the mirror identity for the reciprocal projection. Apply it with , which is Markov and reciprocal at once, and Proposition 7 drops out:
with the gap between the two sides equal to the KL between consecutive iterates. Theorem 8 turns the monotone sequence into convergence: the iterates have a unique fixed point, the SB, and . Peluchetti (2023) proved the same convergence independently and concurrently for a procedure called IDBM, and describes DSBM-IMF as equivalent to it.
The whole iteration can be computed exactly when both marginals are one-dimensional Gaussians, because a Gaussian coupling is a single number, the cross-covariance between and , and the projected drift is then linear in , so the projected SDE is linear and its endpoint law is Gaussian with a new . Take , and , so the standard deviations are and . Minimising (8) over Gaussian couplings gives the SB cross-covariance in closed form:
From the independent coupling, , the projections produce 0.2481, 0.2776, 0.2807, 0.2810, 0.2810: four projections to reach the target within . After each projection the variance of the end state comes out as 1.0000 or 0.3600, the marginal it must have, which is Proposition 2 checked to four decimals. Computing from the backward drift instead of the forward drift gives the same numbers, a fact the next section relies on.
Two things to read off the figure. The rate is geometric and fast when projections are exact. And chooses the target, not only the speed: with the SB cross-covariance is 0.5567, close to the deterministic OT value , and with it is 0.0881, close to independence. Bridge matching alone is the first number in the sequence, 0.2481 at .
DSBM: the algorithm
The reciprocal projection is free: keep endpoint pairs, redraw bridges. The Markovian projection is the regression (6), and DSBM is IMF with that regression done by a neural network, with one modification that the paper arrives at by watching the plain version fail.
The plain version learns from the current pairs, simulates the forward SDE from fresh samples of , and stores the endpoints as the next pairs. Its target side is never a real sample of again after the first round. Proposition 2 promises for the exact projection, but a trained network and a 30-step Euler–Maruyama chain give an approximation, the next round regresses onto the approximation's outputs, and the error compounds. The paper's Figure 3 shows the compounding on a 50-dimensional Gaussian transport: the variance of the learned marginal drifts away for the two one-direction variants, IMF-b (backward only) and rectified flow (forward only), while their means stay right.
The remedy uses a symmetry of the projection. Proposition 9: the same Markov process is the law of the forward SDE (5) started from and the law of a backward SDE started from whose drift, in the forward time variable, conditions on the start instead of the end:
This is the time reversal of (5), and it is learned by the mirror of (6): regress , which for the Brownian bridge is
On the running example, . Since the backward chain starts from real samples and the forward chain from real samples, alternating the two directions re-anchors each end on data every other projection. Algorithm 1 is exactly that alternation, backward fit first:
# DSBM outer loop (Algorithm 1; official trainer_dbdsb.py order: 'b' then 'f')
pairs = init_coupling() # independent (IMF) or x1 = x0 + sigma*z (IPF)
for n in range(N): # N = 20 (2D), 50 (MNIST), 12 (fluids)
train(v['b'], pairs) # backward projection from the current pairs
x1 = fresh_samples(pi_1) # 10,000 real target samples
x0 = simulate(v['b'], start=x1, steps=30, direction='b') # Euler-Maruyama
pairs = (x0, x1) # cache: endpoints only, bridges re-drawn in train()
train(v['f'], pairs) # forward projection
x0 = fresh_samples(pi_0)
x1 = simulate(v['f'], start=x0, steps=30, direction='f')
pairs = (x0, x1)And one gradient step inside either fit, with the shapes of the MNIST run:
# one regression step of a Markovian projection (Brownian bridge, T = 1)
# cache: endpoint pairs (x0, x1) of shape [B, d]; fb in {'f', 'b'}
x0, x1 = next(cache) # [128, 1, 28, 28] on MNIST
t = rand(B) * (1 - 2*eps) + eps # eps = 1e-4
z = randn_like(x0)
xt = (1 - t) * x0 + t * x1 + sigma * sqrt(t * (1 - t)) * z # bridge sample
if fb == 'f': # forward projection, Eq. (7)
target = (x1 - xt) / (1 - t) # = (x1 - x0) - sigma*sqrt(t/(1-t))*z
w = sigma * sqrt(1 - t) # loss scale (code); see Provenance
else: # backward projection, Eq. (11)
target = (x0 - xt) / t # = -(x1 - x0) - sigma*sqrt((1-t)/t)*z
w = sigma * sqrt(t)
loss = mse(w * v[fb](t, xt), w * target) # gradient reaches v[fb] only
loss.backward(); opt[fb].step()On MNIST the two networks are U-Nets of about 6.6 million parameters each, the batch is 128, each outer iteration trains for 5,000 steps, and the cache of 10,000 pairs is refreshed every 1,000 steps by simulating 30 Euler–Maruyama steps at ; the reference-coupling variant, DSBM-IPF (defined below), runs 50 outer iterations. The cache holds two endpoint tensors and nothing else, which the paper contrasts with DSB's storage of every intermediate state of every chain plus a second drift evaluation on each; on this task DSBM runs about 30% faster than DSB. The losses can also be evaluated at any rather than on a fixed grid, since the bridge sample (4) exists for every .
The figure below runs Algorithm 1 on a 2D toy with the regression replaced by the exact projection of the cached pairs (a Gaussian kernel of width 0.2 stands in for the network's finite resolution). Press Step repeatedly and watch the pair lines untangle and the cost readout fall from the independent value toward the entropic-OT value computed by Sinkhorn at . Then try a small : almost nothing moves, because with little noise each simulated chain stays near its own bridge and the projection has almost nothing to average, which is the numerical difficulty at small the paper lists among its limitations.
The forward-only toggle reproduces the failure that motivated the alternation. Each projection distorts the simulated marginal a little (the smoothing and the 30-step discretisation both bias it); when the target side is regenerated from the previous target side, the distortion accumulates in one direction instead of averaging out. The chart below runs both variants for ten outer iterations from the same starting pairs:
The same accumulation is what the paper measures on the Gaussian test: the variance estimates of IMF-b and rectified flow become inaccurate, DSB's covariance estimate drifts as iterations continue, and DSBM's stay accurate over 20 outer iterations.
One recipe, many special cases
Algorithm 1 has two free choices, the initial coupling and the reference bridge, and most of the transport methods from the last few years are settings of them (the paper's Appendix A.2).
Initial coupling. The independent coupling gives DSBM-IMF: its first fit is bridge matching, and every iterate has both marginals. The reference coupling , obtained by running the reference process from source samples, so for Brownian motion , gives DSBM-IPF: Proposition 10 shows its iterates coincide with the IPF iterates that DSB approximates, and its first backward fit is denoising score matching for the reference diffusion, an ordinary score-based diffusion model. The training is still different from DSB: only endpoints are cached, and each projection re-imposes the reference bridge, which the paper argues counters the "forgetting" of the reference that Fernandes et al. (2021) observed in IPF-based solvers. A third option, DSBM-IMF+, initialises with a minibatch Sinkhorn coupling at regularisation , which already has the right marginals and starts closer to the answer; the 2D runs then use 4 outer iterations instead of 20.
Limits. One projection from the independent coupling is bridge matching; the same at is flow matching (and conditional flow matching, which the paper shows coincide when the source is Gaussian). Repeating forward projections at is rectified flow, which the paper reads as the deterministic limit of DSBM-IMF, and the limit loses two guarantees: Proposition 5 needs , so the deterministic iteration has no uniqueness guarantee and no guarantee of reaching OT (Liu (2022) gives a counterexample), and forward-only fits accumulate the marginal bias of Figure 5, so rectified flow's first iterate is its most accurate and later ones trade accuracy for straightness. Initialising with a minibatch OT coupling and stopping after one projection is OT-CFM; initialising with the true SB coupling converges in one projection, which is the setting of Somnath et al. (2023) for aligned biological data.
Reference bridge. Appendix B works out the three samplers any linear reference needs (the closed-form draw at time , the forward SDE, and the backward SDE) for Brownian motion with a time schedule and for an Ornstein–Uhlenbeck reference, where the coefficients become hyperbolic functions of the remaining time. The code ships both (DBDSB_VE and DBDSB_VP with ); every reported experiment uses the Brownian one.
A deterministic sampler. At the fixed point the forward network and the backward network describe one process from both ends, so their drifts are tied by the time-reversal identity . Subtracting the two isolates the score, and the probability flow ODE follows:
It has the same time marginals as the SB, so it samples and gives a likelihood by the change-of-variables formula, and the 2D benchmarks below are computed with it. Its endpoint pairing is not the entropic-OT plan; only the stochastic sampler has that property. Appendix G adds a joint-training variant that fits both networks on the same pairs and penalises departures from the identity above, with a consistency weight ; the main results do not use it.
What it achieves
2D benchmarks. On the moons, scurve, 8gaussians and moons-to-8gaussians tasks of Tong et al. (2023), sampled with 20 Euler steps of the ODE and scored by the 2-Wasserstein distance to 10,000 test points, DSBM beats DSB on every task (0.140 against 0.190 on moons; 0.812 against 0.987 on moons-8gaussians), beats conditional flow matching on every task and flow matching on the three tasks where it is reported (flow matching needs a Gaussian source, so Table 2 has no entry for it on moons-8gaussians; on moons, flow matching scores 0.212 and conditional flow matching 0.215), and trails OT-CFM (0.111), which uses an OT solver on each minibatch. DSBM-IMF+ reaches 0.123 on moons and 0.802 on moons-8gaussians, beating SB-CFM (conditional flow matching on a minibatch Sinkhorn coupling) on three of the four tasks and with lower path energy on all four. Rectified flow scores 0.129 on moons but 1.522 on moons-8gaussians, the task where a poor first iterate cannot be repaired; DSBM-IPF's 0.812 there trails only OT-CFM and DSBM-IMF+. The entropic solution shows most clearly in the path energy, the integrated squared velocity of the ODE: 42.2 for DSBM-IPF on moons-8gaussians against 116.5 for conditional flow matching.
The noise scale. Table 4 of the appendix sweeps for DSBM-IMF. On a three-Gaussian transfer the 2-Wasserstein error is 0.646 at , 0.724 at 0.1, 0.546 at 0.3, 0.439 at 1.0 and 0.543 at 3.0; on moons-8gaussians, whose points are further apart, the best value is 0.818 at , with 1.459 at 0 and 0.989 at 8. Too little noise makes the entropic problem hard to solve numerically (the small- stall of Figure 4) and too much makes the paths curved and the coupling diffuse; the useful scales with the spatial scale of the data.
Gaussians in 50 dimensions. Between and , the SB is known in closed form (Bunne et al. 2023), so the KL between the learned marginals and the true ones can be averaged over 21 time points. In it is for DSBM-IPF and for DSBM-IMF, against for DSB and for SB-CFM, whose minibatch Sinkhorn coupling degrades with dimension. In the four are within a factor of three of each other (1.23, 1.34, 3.26 and 1.45). Each run uses a two-hidden-layer MLP of 256 units and one CPU, and the d = 50 runs take about 200 minutes.
MNIST and EMNIST. Transferring EMNIST letters (A to E, both cases, ten classes) to MNIST digits with DSB's U-Net, the FID of the outputs is 17.14 for one round of bridge matching, 15.27 for DSBM-IPF and 10.59 for DSBM-IMF, and the mean squared distance between an input letter and its output digit is 0.579, 0.354 and 0.375: the iterated methods produce digits that look like the letters they came from, which bridge matching does not. DSB's samples degrade after 30 rounds and rectified flow's degrade with rectification; DSBM's keep improving to round 50. OT-CFM's minibatch couplings give visibly worse digits at this dimension.
Faces, animals, fluids. On CelebA at 64×64, FID improves as rises from 0.01 until it is too large, while LPIPS between input and output worsens monotonically: more noise, better images, less faithful transfer. At the 128×128 outputs are better aligned with their inputs than the 64×64 ones, which the paper links to Chen (2023) and Hoogeboom et al. (2023): the noise schedule in diffusion models should scale with the resolution. On AFHQ at 512×512 (, batch 4, 100 sampling steps, 20 rounds of 25,000 steps after 100,000 steps of bridge-matching pretraining) the cat-to-wild transfers keep the pose of the input. On the unpaired fluid-dynamics downscaling of Bischoff and Deck (2023), from 64×64 to 512×512 fields with and 30 sampling steps, both DSBM variants give lower distance to the low-resolution source at every wavenumber than the two-diffusion baseline, and DSBM-IMF also matches the unconditional statistics that DSBM-IPF misses.
Where it does not help much. For plain generative modelling on CIFAR-10 (a 39.6-million parameter U-Net, 100 Euler steps), one or two DSBM-IMF rounds after bridge-matching pretraining lower the FID from 5.427 to 4.511 at , from 8.274 to 6.896 at 0.5, and from 12.749 to 9.881 at 1; flow matching reaches 4.931 with the same 100 steps and 4.055 with an adaptive solver at 148 steps, and rectified flow worsens flow matching to 6.010 after one rectification. Both DSBM-IMF and rectified flow lose far less than flow matching when sampled with very few steps. The paper's own summary is that DSBM is most effective for transport between two general distributions, still requires simulating the learned process to refresh the cache, and gets numerically harder as shrinks.
Questions you might still have
Is DSBM just rectified flow with noise added?
The loop is the same shape: fit, simulate, re-pair, fit again. Two things differ. Rectified flow runs a deterministic ODE and only ever re-pairs by simulating forward, so a bias in the learned target marginal is never corrected and the paper measures it growing with each round. DSBM runs a diffusion with σ > 0, which is what makes the Schrödinger bridge the unique process that is Markov, has the reference bridges, and has the right marginals, and it alternates backward fits started from real target samples with forward fits started from real source samples. In the σ → 0 limit with forward-only fits, Algorithm 1 becomes rectified flow, and rectified flow has no guarantee of reaching the optimal transport (Liu 2022 gives a counterexample).
Why does the Markovian projection keep the marginals but not the bridges?
The projected drift at (t, x) is the average bridge velocity over every path passing through x at time t. Averaging the velocity at each point preserves how much probability mass flows through each point (the Fokker–Planck equation depends only on the averaged drift), so every time marginal is unchanged. But the averaged drift at (t, x) is the same whichever endpoint pair produced the path through x, so a path of the projected process ends up with an endpoint pairing that differs from the pairing it was built from. The figure with the two-mode source and target shows both at once: the histogram matches the mixture density, and the share of crossing paths drops from one half to about 0.15.
Why not solve the entropic OT with Sinkhorn and skip the iterations?
Sinkhorn needs the full cost matrix between the two datasets, which is quadratic in the number of samples and only defines a coupling between the samples it saw. Minibatch Sinkhorn (SB-CFM) fits in memory but couples each minibatch on its own, and the paper measures that bias growing with dimension: on the Gaussian test in d = 50 its marginal KL is 49.4 × 10⁻³ against 8.75 × 10⁻³ for DSBM-IPF. DSBM never forms a cost matrix; the coupling comes from simulating a learned SDE, which generalises to new samples.
What exactly is cached between iterations, and how large is it?
Only endpoint pairs. After each projection the code simulates the learned SDE from fresh samples of one marginal (10,000 of them on MNIST, refreshed every 1,000 gradient steps) and stores the start and end of each chain; the intermediate states are discarded because a bridge sample at any t can be drawn in closed form from the two endpoints. DSB, by contrast, stored every intermediate state of every chain and evaluated a second drift on all of them.
Should I start from the independent coupling or the reference coupling?
With the reference coupling (x_T = x_0 + σ√T z) the iterates are the IPF iterates, and the first backward fit is an ordinary diffusion model; the paper calls this DSBM-IPF and reports it more accurate on the Gaussian test and on the fluid downscaling ℓ2 error. With the independent coupling (DSBM-IMF) the first fit is bridge matching, and every iterate has both marginals exactly; it gives the best FID on the MNIST transfer (10.59 against 15.27) and better unconditional statistics on the fluids. The paper lists the difference between the two as future work.
Does the probability flow ODE give me the optimal transport map?
No. At convergence the ODE with drift ½(v_θ − v_φ) has the same time marginals as the Schrödinger bridge, so it is a valid deterministic sampler and gives likelihoods. But its endpoint pairing is not the entropic OT plan; the paper states this explicitly. The stochastic sampler is the one whose (X_0, X_T) is the entropic coupling, which is why the transfer experiments report it.
How many outer iterations does it take?
On the exact Gaussian case in this page, four projections bring the cross-covariance within 10⁻⁴ of its target. Trained models need more because each projection is approximate: 20 outer iterations for the 2D and Gaussian experiments, 50 for MNIST, 12 for the fluids, and only 1 or 2 on CIFAR-10 after a bridge-matching pretraining, where further rounds lowered sample quality.
Footnotes & further reading
- The paper: Shi, De Bortoli, Campbell, Doucet, Diffusion Schrödinger Bridge Matching (NeurIPS 2023). Code.
- The concurrent, equivalent procedure: Peluchetti, Diffusion Bridge Mixture Transports, Schrödinger Bridge Problems and Generative Modeling (JMLR 2023), whose Theorem 2 is the convergence result.
- The Schrödinger problem, reciprocal classes, and the Markov characterisation: Léonard, A survey of the Schrödinger problem and some of its connections with optimal transport (2014). The static-dynamic equivalence and entropic OT: Cuturi, Sinkhorn Distances (2013).
- Bridge matching and the Markovian projection in machine learning: Peluchetti, Non-Denoising Forward-Time Diffusions (2021), and Liu, Wu, Ye, Liu, Let us Build Bridges (2022). The marginal-matching result itself: Gyöngy, Mimicking the one-dimensional marginal distributions of processes having an Itô differential, Probability Theory and Related Fields 71 (1986).
- The IPF predecessor: De Bortoli, Thornton, Heng, Doucet, Diffusion Schrödinger Bridge with Applications to Score-Based Generative Modeling (2021); the forgetting of the reference: Fernandes, Vargas, Ek, Campbell, Shooting Schrödinger's Cat (2021).
- The deterministic relatives: Lipman et al., Flow Matching for Generative Modeling; Liu, Gong, Liu, Flow Straight and Fast (rectified flow); Tong et al., Improving and generalizing flow-based generative models with minibatch optimal transport (OT-CFM, SB-CFM, and the 2D benchmarks); Albergo, Boffi, Vanden-Eijnden, Stochastic Interpolants.
- Time reversal and the probability flow ODE: Anderson (1982) and Song et al. (2021). The closed-form Gaussian Schrödinger bridge used for the 50-dimensional test: Bunne, Hsieh, Cuturi, Krause, The Schrödinger Bridge between Gaussian Measures has a Closed Form (2023).
How could this explainer be improved? Found an error, or something unclear? I read every message.