~/satyajit

Improved strong stochastic flow maps: a smooth stand-in for the Brownian path

mdjsonmcp

2026-10-23 · 20 min · flow-matching · diffusion · distillation · image-generation · math

A 1:50 narrated explainer, drawn in code. Every number and picture in it is this article's own; the sources are below.

› transcript

Hi, I'm Transom! A stochastic flow map jumps a noisy process forward in a few big steps. Here's how it got the best training loss. Brownian motion has no slope anywhere. So replace it with a smooth polynomial that converges to it, and train against that. The first paper used a semigroup loss. One big step must equal two half steps. No derivative needed. The new paper trains the flow map of a random ordinary differential equation. Its slope exists, and every coefficient enters the loss. Here is the equation the map now learns. The first term is the usual drift. The second is the slope of the polynomial path. As the degree grows, the solution converges to the true stochastic one. Summarise the noise on the step as three Legendre coefficients. They enter a pretrained flow model through a residual that starts at zero, so the model begins as its teacher. The noise term is computed exactly, from the same path, not learned by a head. Drift plus exact noise gives the next state, in one network call. Top, the smooth path, where a derivative loss exists. Bottom, the rough path, where only the semigroup loss works. On ImageNet, the improved map sits below the original at every step count. At four steps, the new parameterisation and the new loss each roughly halve the error, against the authors' own port of the original. Turn the noise into an input the derivative can see, and a stochastic map trains like a deterministic one. A polynomial path, a derivative loss, and exact noise. That's the improved strong flow map. Every source is in the full article. I'm Transom. Bye!

Why read this

Notabletop 60%

The Wong-Zakai loss derived and shown on a live path, every ImageNet ratio rechecked, a swapped legend found in the source, and the toy losses run on CPU.

  • Original analysis
  • A lasting reference
  • A new technique

Image & video generationNeeds datacenter GPUsMITResearch paper

How this was scored
Is it new?
2 of 3: A real new idea, method or capability
Can I trust it?
2 of 3: Measures key facts from files, code or configs
Can I run it?
1 of 3: API-only, gated or restrictive licence
Will I understand it?
2 of 3: Mechanism from first principles with figures
Can I act on it?
2 of 3: A concrete recipe, numbers or comparison
Will it last?
2 of 3: A reference for a year or more
Does it affect many?
1 of 3: A specialist community
Only here?
2 of 3: A teardown or measurement few others did

Score 64 of 100, ranked 254 of 607 rated articles. Each question is answered 0–3 by hand, and a 3 is rare. How articles are scored

A deterministic flow map learns to jump an ODE from time ss to time tt in one network call. The strongest recipes for training one, MeanFlow and its improved version, differentiate the map with respect to its start time. A strong stochastic flow map (SSFM) does the same for an SDE: it jumps from ss to tt along one specific realisation of the Brownian motion. That is where the derivative breaks. The map depends on the Brownian path between ss and tt, and a Brownian path has no derivative anywhere.

The original Strong Stochastic Flow Maps paper (McCallum, Blasingame, Herschell, Rindtorff, Tong and Foster) sidestepped this by training with a semigroup loss: one big step must equal two half steps. The follow-up, Improved Training of Strong Stochastic Flow Maps by Zander W. Blasingame, Antonio Franca, Raúl Miñán, Christian Koke, Niklas Rindtorff and Alexander Tong (AITHYRA, TU Wien, TU München, MCML), gets the derivative losses back. Blasingame's thread calls the first paper a NeurIPS 2026 Oral; its arXiv listing says only "Preprint", so I have not confirmed the venue. Code is at zblasingame/improved-strong-stochastic-flow-maps (MIT) and the five ImageNet checkpoints at zblasingame/improved-strong-stochastic-flow-maps on Hugging Face.

tracked files
176
license
MIT
branch
HEAD
tests
none found
source
874.4 kB
commit date
2026-10-22
source by language
Python861.9 kB(105)Shell12.5 kB(10)

by size of tracked source at this commit, file counts in brackets; docs, data and vendored trees excluded

local clone, 2026-10-23 at cb7b92d — branch, commit, commitDate, fileCount, hasTests, languages, license, licenseFile

repo size
1.10 GB
finetunekyungmnlee/DMF
task
unconditional-image-generation
library
pytorch
license
mit
safetensors
5 shards
largest file
165.0 MB
files
12
downloads
0
likes
2
flow-mapsimagenet

repo last modified 2026-10-22

The same group's Langevin Flow Maps used the SSFM machinery for molecular dynamics. This piece is about the training method underneath. I read the paper and its LaTeX source, read the code, pulled the checkpoint headers, and ran the authors' toy-1D losses on a CPU. Numbers are labelled measured (I computed it from a file or a run), reported (the authors' figure) or reasoned (my arithmetic on the other two).

The short version: a classical theorem, used well. Replace the rough path with a smooth polynomial that converges to it, train against the random ODE that polynomial drives, and the derivative exists. On ImageNet-256 that gives about three times lower FD-DINOv2 than SSFM at 4 and 8 steps, against the authors' own port of SSFM. The "fifteen times fewer steps" is read off an interpolated curve of the weakest available baseline.

Flow maps, deterministic first

Flow matching learns a velocity field ut(x)u_t(x) whose ODE carries noise (t=0t = 0) to data (t=1t = 1). The interpolant is Xt=αtX1+σtX0X_t = \alpha_t X_1 + \sigma_t X_0; on ImageNet the schedule is linear, αt=t\alpha_t = t, σt=1−t\sigma_t = 1 - t. Sampling integrates the ODE, which costs one network call per solver step.

A flow map skips the solver. It learns the two-time map

Φs,t(x)=x+(t−s) us,t(x),\Phi_{s,t}(x) = x + (t - s)\,u_{s,t}(x),

where us,tu_{s,t} is the mean velocity over [s,t][s, t]. On the diagonal, ut,t=utu_{t,t} = u_t, the ordinary flow-matching field. Three conditions characterise the true map, and each becomes a loss (reported, Appendix A.2). Write h=t−sh = t - s and vsv_s for the instantaneous field:

Improved MeanFlow (iMF) rewrites the Eulerian residual in terms of us,tu_{s,t}. With the material derivative Ds=∂s+vs⊤∇xD_s = \partial_s + v_s^\top \nabla_x, it becomes

LiMF=E∥vs(x)−us,t(x)+h sg ⁣(Dsus,t(x))∥2,\mathcal L_{\text{iMF}} = \mathbb E \big\| v_s(x) - u_{s,t}(x) + h\,\mathrm{sg}\!\left(D_s u_{s,t}(x)\right) \big\|^2,

with sg\mathrm{sg} a stop-gradient: regress onto the instantaneous field, corrected by a forward-mode JVP of the network itself. The paper calls this Eulerian family the most performant at scale.

The stochastic version, and why the derivative was missing

Every flow-matching ODE has an SDE with the same marginals (the paper's Equation 1):

dXt=[2ut(Xt)−α˙tαtXt]dt+νt dWt,νt2=2α˙tαtσt2−2σtσ˙t.dX_t = \Big[2u_t(X_t) - \frac{\dot\alpha_t}{\alpha_t}X_t\Big]dt + \nu_t\,dW_t, \qquad \nu_t^2 = 2\frac{\dot\alpha_t}{\alpha_t}\sigma_t^2 - 2\sigma_t\dot\sigma_t.

For the linear schedule, νt2=2(1−t)/t\nu_t^2 = 2(1-t)/t, which blows up as t→0t \to 0 (reported, Appendix B.4.1).

A weak stochastic flow map learns to sample XtX_t given XsX_s: right in distribution, with fresh noise every call. A strong one learns the pathwise solution: given XsX_s and the Brownian path W[s,t]W_{[s,t]}, return the XtX_t that this path produces. Step 4 times or 16 times along the same path and you should land on the same sample.

SSFM writes the map as an Euler-Maruyama-shaped step with learned averages:

Ψs,t(x;I)=x+h us,t(x;I)+(Wt−Ws) gs,t(I),\Psi_{s,t}(x; \mathcal I) = x + h\,u_{s,t}(x; \mathcal I) + (W_t - W_s)\,g_{s,t}(\mathcal I),

where I\mathcal I is a finite summary of the path on [s,t][s, t] and gg was a learned diffusion head.

The summary is the shifted Legendre expansion (Foster, Lyons and Oberhauser). Its coefficients are Itô integrals of the Legendre polynomials P~n\widetilde P_n against the path:

Is,t(n)=∫stP~n ⁣(r−sh) dWr  ∼  N ⁣(0,h2n+1).I^{(n)}_{s,t} = \int_s^t \widetilde P_n\!\Big(\frac{r-s}{h}\Big)\,dW_r \;\sim\; \mathcal N\!\Big(0, \frac{h}{2n+1}\Big).

I(0)I^{(0)} is the increment Wt−WsW_t - W_s. The higher ones describe how the path bends away from the straight chord. They are independent, and two intervals' coefficients combine into the parent's by a closed-form Chen relation, which is all the semigroup loss needs (the Langevin Flow Maps piece covers both properties).

Now try the Eulerian loss. It needs ∂sΨs,t\partial_s \Psi_{s,t}: slide the start point and see how the output changes. But Ψ\Psi takes the path on [s,t][s, t] as input, so sliding ss changes the path the map sees, and the rate of that change is dW/dsdW/ds, which does not exist. The paper also cites Itô maps for any-step SDEs (Pan et al.), whose Proposition 2 shows that a naively applied Eulerian loss places no pathwise constraint on the map: it can be satisfied while ignoring the path.

The fix: train against a random ODE

Step one: give the path a derivative. The degree-NN Legendre polynomial built from the first NN coefficients is a smooth curve. For a sub-interval [u,v][u, v] of [s,t][s, t] it is (the paper's Equation 3)

Wu,v(N,s,t)=∑n=0N−12n+1h Is,t(n)∫uvP~n ⁣(r−sh)dr,W^{(N,s,t)}_{u,v} = \sum_{n=0}^{N-1} \frac{2n+1}{h}\, I^{(n)}_{s,t} \int_u^v \widetilde P_n\!\Big(\frac{r-s}{h}\Big)dr,

and its time derivative is an ordinary polynomial, in closed form (Lemma B.1):

W˙r(N,s,t)=∑n=0N−12n+1h Is,t(n) P~n ⁣(r−sh).\dot W^{(N,s,t)}_r = \sum_{n=0}^{N-1} \frac{2n+1}{h}\, I^{(n)}_{s,t}\, \widetilde P_n\!\Big(\frac{r-s}{h}\Big).

Step two: replace the SDE with the ODE this derivative drives. Write brb_r for the SDE's drift. The Wong-Zakai random ODE on [s,t][s, t] is

X˙r(N)=br(Xr(N))+νr W˙r(N,s,t),Xs(N)=x.\dot X^{(N)}_r = b_r\big(X^{(N)}_r\big) + \nu_r\,\dot W^{(N,s,t)}_r, \qquad X^{(N)}_s = x.

Wong and Zakai showed in 1965 that ODEs driven by smooth approximations of Brownian motion converge to the Stratonovich SDE, and for additive noise Itô and Stratonovich coincide. The paper's Proposition C.3 makes it quantitative for this basis. If bb is LL-Lipschitz, then almost surely

sup⁡r∥Xr(N)−Xr∥≤eLh(sup⁡r∣νr∣+∫st∣ν˙r∣ dr) sup⁡r∥Ws,r(N,s,t)−Ws,r∥,\sup_{r} \big\|X^{(N)}_r - X_r\big\| \le e^{Lh}\Big(\sup_r |\nu_r| + \int_s^t |\dot\nu_r|\,dr\Big)\,\sup_r \big\|W^{(N,s,t)}_{s,r} - W_{s,r}\big\|,

and the last factor goes to zero as NN grows. The proof is two lines of integration by parts and Grönwall.

The random ODE is a plain ODE for any fixed draw of coefficients, so its flow map obeys the Eulerian condition with an ordinary derivative. The residual (Equation 103) is

RE=DsΨs,t(x;Is,t)+∇xΨs,t(x;Is,t)  vs(N)(x),vs(N)=bs+νs W˙s(N).\mathcal R_E = \mathfrak D_s \Psi_{s,t}(x; \mathcal I_{s,t}) + \nabla_x \Psi_{s,t}(x; \mathcal I_{s,t})\; v^{(N)}_s(x), \qquad v^{(N)}_s = b_s + \nu_s\,\dot W^{(N)}_s .

Two details make it work. First, Ds\mathfrak D_s is a fixed-path derivative: hold the polynomial curve still and slide ss along it. The coefficients of the restricted curve change smoothly, because a degree-(N−1)(N-1) polynomial restricted to a sub-interval is still exactly NN coefficients, so one forward-mode JVP gives the whole thing. Second, the transport field v(N)v^{(N)} contains νsW˙s(N)\nu_s \dot W^{(N)}_s, which depends on all NN coefficients. A network that ignores the higher ones cannot satisfy the loss, which is the paper's second design principle in one term.

The widget runs the theorem on one path. It draws 2,048 Brownian increments on [0,1][0, 1], computes the first 32 Legendre coefficients from them, and solves dX=4(X−X3) dt+dWdX = 4(X - X^3)\,dt + dW twice from X0=0.3X_0 = 0.3: by Euler-Maruyama on the rough path, and by Heun on the random ODE driven by W˙(N)\dot W^{(N)}.

What it shows (measured, in-browser, deterministic seeds). On seed 7, the endpoint error ∣X(N)(1)−X(1)∣|X^{(N)}(1) - X(1)| falls from 0.5192 at N=1N = 1 to 0.0921 at N=2N = 2 and 0.0089 at N=32N = 32. N=1N = 1 is the chord: the ODE sees only the increment, which is all a map conditioned on the increment alone can know. The sup gap between the two Brownian curves falls more slowly, from 1.296 to 0.209, and not monotonically: on seed 11 the endpoint error at N=4N = 4 is worse than at N=3N = 3. Both curves end at W(1)W(1), because every higher Legendre polynomial integrates to zero. The cost is in the last column: the polynomial's slope has RMS 1.98 at N=3N = 3 and 6.23 at N=32N = 32, while the rough path's finite-difference slope at this grid is 45.8. A higher NN is a better approximation and a rougher driver.

Left, two panels. Top, labelled iSSFM: a jagged pink Brownian path from X_s to X_t with a smooth dark-blue polynomial curve through it and a short tangent segment, captioned 'partial t exists: derivative losses'. Bottom, labelled SSFM: the same jagged path in red with a circle on one kink, captioned 'no partial t: semigroup loss only'. Right: log-log plot of FD-DINOv2 against NFE from 1 to 512 for SiT-XL/2 (red), SSFM (gold) and iSSFM (navy). iSSFM sits lowest, from about 1000 at 1 NFE to about 55 at 16; dashed horizontal lines mark '6x fewer NFE' and '15x fewer NFE' against the SiT curve.
Left: the rough path admits no time derivative, its polynomial approximation does. Right: FD-DINOv2-50k on ImageNet-256 against steps for the SiT-XL/2+REPA SDE sampler, SSFM and iSSFM (paper, Figure 1).

Two alternatives lose (reported, Section 3.2). Discretised Eulerian and Lagrangian losses, a small Euler-Maruyama step in place of the derivative, beat the semigroup loss on the toy and slightly lose to it at scale. The Doss-Sussmann transform, Zt=Xt−MtZ_t = X_t - M_t, makes the SDE an ODE in ZZ, but its derivative never involves the higher coefficients: on the 1D toy at 1 step its strong error sits near 6.5 at every NN (reported, Table 4).

Three changes to the map itself

The second half of the paper is a fine-tuning recipe. It starts from a pre-trained Decoupled MeanFlow model, DMF-XL/2+, which is itself distilled from SiT-XL/2+REPA. DMF turns a one-time flow model into a two-time map by feeding ss to the first 20 of the 28 transformer blocks and tt to the last 8 (reported, Appendix G.1), so at s=ts = t the map is the pre-trained velocity field. iSSFM adds the Brownian coefficients through a zero-initialised residual scaled by hh, and freezes the backbone under rank-16 LoRA adapters. On the diagonal the coefficients vanish and the network is exactly the teacher at initialisation.

Three block diagrams left to right. (a) Flow matching: x_T into PatchEmbed, 28 DiT blocks conditioned on c_T, FinalLayer, output v_T; note 'one time, model guidance baked in'. (b) DMF: x_s into PatchEmbed, 20 DiT blocks conditioned on c_s, 8 DiT blocks conditioned on c_t, FinalLayer, output u_s,t; note '+ rank-16 LoRA on attn, MLP, adaLN'. (c) iSSFM: as (b) but with a blue 'zero-init residual times h' block after PatchEmbed that takes the Legendre coefficients I_s,t^(n) through a shared PatchEmbed; output Psi_s,t; note 'EI stochastic flow map'.
From a pre-trained flow model to DMF to iSSFM: the Brownian coefficients enter through a zero-initialised residual gated by the step length, so the diagonal stays the teacher (paper, Figure 12).

The SDE's drift is 2ut(x)−(α˙t/αt)x2u_t(x) - (\dot\alpha_t/\alpha_t)x. The linear term is stiff and diverges as t→0t \to 0, and a learned map would have to integrate it on top of the teacher. The three changes:

  1. Exponential lift. Multiply through by αt\alpha_t. Itô's product rule gives d[αtXt]=2αtut(Xt) dt+αtνt dWtd[\alpha_t X_t] = 2\alpha_t u_t(X_t)\,dt + \alpha_t \nu_t\,dW_t: no linear term. The map becomes an exponentially weighted step,
Ψs,t(x;I)=αsαtx+2As,tαt us,t(x;I)+1αt(W~⟨Mα⟩t−W~⟨Mα⟩s),As,t=∫stαr dr.\Psi_{s,t}(x; \mathcal I) = \frac{\alpha_s}{\alpha_t}x + \frac{2\mathcal A_{s,t}}{\alpha_t}\,u_{s,t}(x; \mathcal I) + \frac{1}{\alpha_t}\Big(\widetilde W_{\langle M^\alpha\rangle_t} - \widetilde W_{\langle M^\alpha\rangle_s}\Big), \qquad \mathcal A_{s,t} = \int_s^t \alpha_r\,dr .
  1. Closed-form martingale. The noise term Mtα=∫αrνr dWrM^\alpha_t = \int \alpha_r \nu_r\,dW_r is a time-changed Brownian motion (Dambis-Dubins-Schwarz), run on the clock of its quadratic variation. For the linear schedule that clock is ⟨Mα⟩t=t2−23t3\langle M^\alpha\rangle_t = t^2 - \tfrac23 t^3 as t0→0t_0 \to 0, bounded where νt\nu_t is not (reported, Appendix B.4.1). SSFM learned a diffusion head for this term; iSSFM computes it exactly and builds the Legendre coefficients on the lifted clock, so the map's noise and the coefficients the network sees come from the same path.
  2. Drift matching. With the noise exact, the diagonal can regress directly onto the teacher's drift instead of onto a small Euler-Maruyama step.

The paper says the order matters: the closed-form martingale without the lift has infinite variance near t=0t = 0, and their run of it "diverged completely into pure noise".

The training loss in the lifted state is iMF: regress 2αsus,t−2As,t sg[Dsus,t]2\alpha_s u_{s,t} - 2\mathcal A_{s,t}\,\mathrm{sg}[D_s u_{s,t}] onto 2αs sg[usteacher]2\alpha_s\,\mathrm{sg}[u^{\text{teacher}}_s], with the JVP's tangent along the smoothed lifted field (reported, Appendix G.2). The code matches (measured, dmf_wz_imf.py): the compound is lift_s * u - a_st * material_derivative.detach(), the target is lift_s * v_field, and the Wong-Zakai driver enters only the JVP tangent b_y = lift_s * v_field + driver_s. A comment says why: the driver "cancels in the compound identity, so the regression target stays the deterministic start field". The path information reaches the network through the material derivative, which is exactly where the semigroup loss had nothing.

The recipe (reported, Appendix G): 75% of each batch on the distillation term and 25% on the diagonal, t∼U[0.06,1]t \sim \mathcal U[0.06, 1], step at least 0.05, AdamW at 10−410^{-4}, effective batch 128, 100k steps, EMA 0.9999, N=3N = 3 coefficients, one H100 NVL per run. The released checkpoint holds only what was trained (measured, safetensors header of issfm/model.safetensors): 38,571,008 float32 parameters, of which 12,003,584 are LoRA, 26,547,840 sit in a module named fixed_residual.levy_net (the coefficient pathway) and 19,584 in the coefficient embedder. The SSFM checkpoint has 41,245,968, the extra 2.67 million in its learned diffusion layer. Both load on top of the DMF-XL/2+ backbone.

Checking the ImageNet claims

All numbers in this section are FID-50k and FD-DINOv2-50k on class-conditional ImageNet-256, fine-tuned for 100k steps from the same DMF-XL/2+ (reported, Tables 1, 3 and 5). Lower is better.

NFESSFM FD+ param. FDiSSFM FDSSFM FID+ param. FIDiSSFM FID
12116.91817.6994.2197.11184.74111.61
21061.3772.3583.583.5657.9953.11
4475.1288.1143.031.0014.675.96
8229.1128.275.211.094.152.37
16135.670.855.14.822.032.07

"+ param." is SSFM with all three parameterisation changes, still trained with the semigroup loss. iSSFM adds the Wong-Zakai iMF loss.

"~3x lower FD-DINOv2 than SSFM at 4 NFE"

Holds at 4 and 8 steps: 475.1 / 143.0 = 3.3 and 229.1 / 75.2 = 3.0 (reasoned). It is 2.1 at 1 step, 1.8 at 2 and 2.5 at 16. The split between the two contributions is uneven. The parameterisation alone gives 1.65 to 1.92 at 4 to 16 steps, more than the "roughly 1.5x" the paper says. The loss alone gives 2.0 at 4 steps, 1.7 at 8 and 1.3 at 16 (reasoned). At 16 steps the improved parameterisation with the old loss has the better FID, 2.03 against 2.07. The new loss matters most where steps are few, which is where it should.

The baseline needs a note. "SSFM" here is the authors' port of SSFM into the fine-tuning setting, "the most faithful replication of SSFM in our setting". The original SSFM paper trained from scratch and reported CIFAR-10 and CelebA-64 only: FID 3.49 at 4 steps on CIFAR-10, against deterministic flow maps at 3.34 (reported, SSFM Table 2). There is no head-to-head on a shared benchmark between the published SSFM and iSSFM.

"4-step iSSFM matches 16-step SSFM"

In FD-DINOv2, roughly: 143.0 against 135.6, 5% worse (reasoned). In FID, no: 5.96 against 4.82.

"~15x fewer NFE than the SiT SDE sampler at matched FD"

This one is read off a curve. The SiT-XL/2+REPA baseline is the SDE integrated by Euler-Maruyama, measured at 1, 3, 8, 17, 85, 170 and 426 steps, with FD-DINOv2 of 1288.1 at 17 steps and 88.5 at 85 (reported, Table 5). The dashed "15x" line in Figure 1 runs from iSSFM's 2-step point, 583.5, to the SiT curve between those two samples. Interpolating log-linearly between them puts SiT at 583.5 near 27 steps, about 14x (reasoned). That is a matched FD of 583.5, where FID is 53.11: an unusable sample quality. At usable quality the table gives a direct comparison: iSSFM at 8 steps (FD 75.2, FID 2.37) beats SiT at 85 (FD 88.5, FID 3.65), about 10.6x fewer steps, and SiT at 170 steps is better than any iSSFM row in FID (1.77 against 2.07).

Euler-Maruyama is also the weakest SDE sampler one could pick, and iSSFM starts from DMF-XL/2+, a deterministic few-step model whose own scores the paper does not tabulate. The limitations section says it plainly: iSSFMs "still struggle to match the performance of deterministic few-step models". What iSSFM buys over a deterministic map is not quality per step. It is a sampler whose noise you control pathwise.

A grid of ImageNet samples, six rows by seven columns: golden retriever faces, a second golden retriever, a chestnut horse in a field, a white arctic fox in snow, a blue-and-yellow macaw, and a red macaw. Across each row the image is nearly the same, with small changes in fur, pose and background from left to right.
iSSFM samples at 4, 6, 8, 10, 12, 14 and 16 steps, left to right; each row shares one initial noise and one Brownian path, so the images agree across step counts (paper, Figure 5a).

Is it still strong?

The figure above is the qualitative test. The quantitative one is Figure 5b: latent MSE of a kk-step rollout against the same model's 32-step rollout on the same path, over 1,000 images. Here the source and the picture disagree. The text says the semigroup-trained map "exhibits stronger pathwise consistency, at the cost of worse metrics". The plotted legend says the opposite: the lower, more consistent curve is labelled iSSFM. The LaTeX resolves it (measured, tikz/strong-consistency.tikz and its .dat): the olive curve is drawn from the column psd (semigroup) and the navy from imf, but the legend lists iSSFM first. The legend is swapped. The data say: the iMF-trained iSSFM goes from 0.956 at 1 step to 0.432 at 4 and 0.188 at 16; the semigroup map from 0.230 to 0.158 to 0.091; the weak baseline, which redraws the path every rollout, stays near 1.0 to 1.3. So iSSFM is strong, its error falls with steps where a weak map's does not, but it is about twice as far from its own 32-step answer as the semigroup map at 4 and 16 steps. The derivative loss bought sample quality with some pathwise consistency, as the text says.

The toy losses, rerun on a CPU

The paper's loss comparison is a 1D non-linear SDE, dX=(X−X3) dt+βt dWdX = (X - X^3)\,dt + \sqrt{\beta_t}\,dW with β\beta linear from 20 to 0.1, and strong error against a 512-step Euler-Maruyama reference on 1,024 shared paths (reported, Table 4). At one step, WZ-iMF falls from 0.65 at N=1N = 1 to 0.0763 at N=4N = 4, an 8.5x drop as coefficients are added. The semigroup loss goes the other way, 0.513 to 2.44, and at N=4N = 4 blows up at 4 and 8 steps (289 and 67,000). The discrete Eulerian loss is competitive at most step counts and best at 8. Doss-Sussmann iMF is the worst at 1 step and the best at 32 (0.00224). The win is a few-step win.

Two plot groups. Left: three panels at NFE 1, 2 and 4 of strong RMSE against number of coefficients N from 1 to 8 on a 2D checkerboard, for shifted Legendre (navy, lowest, about 0.4, 0.27 and 0.2), global KL plus increment, local dyadic increments and global KL, which flatten higher. Right: one-step strong error against N from 1 to 4 on a log axis for seven losses; DS iMF and DS AYF-EMD sit flat near 6, semigroup rises from about 0.5 to 2.4, and WZ iMF falls lowest to about 0.08, labelled 8.5x.
Left: the shifted Legendre basis carries more usable path information than Karhunen-Loève or dyadic increments. Right: one-step strong error against the number of coefficients for each loss; only the Wong-Zakai and discrete losses teach the network to use more of them (paper, Figure 3).

I ran two cells of that grid myself (measured, shared 4-core cloud VM, CPU only, PyTorch 2.14.1, 2 threads). The release needs Lightning and Hydra to train; I wrote a short loop that imports the repo's own Toy1DSSFMLoss, SSFM_MLP and strong-error helpers at commit cb7b92d and mirrors configs/experiment/toy1d.yaml: a 256-wide, 4-deep MLP, AdamW at 10−310^{-3}, EMA 0.999, N=3N = 3. The difference is the budget. Six authors shared the machine, so each run got 1,200 steps at batch 1,024, about 6% of the paper's 5,000 steps at 4,096, and no learning-rate scheduler. Evaluation copies the repo's callback: 1,024 paths, seed 12345, 512-step reference.

strong error, N=3N = 31 step24832
WZ-iMF, my run5.652.701.911.541.27
semigroup, my run6.211.730.6230.5080.445
WZ-iMF, paper0.090.04660.03620.02560.0191
semigroup, paper1.280.5850.3110.1310.0117

At this budget I do not reproduce the ranking. WZ-iMF is slightly better at one step and worse from two steps on, and both are an order of magnitude or more from the paper's numbers. The 32-step column says why: it measures the diagonal, and the iMF run's diagonal loss ended at 0.32 against the semigroup run's 0.14. My reading (reasoned): the iMF compound puts a JVP-corrected target on a quarter of each batch, and in the first 1,200 steps that slowed the drift fit the whole map rests on. It is a statement about early training, not about the converged method. One full-budget cell is about 17 times the samples of mine, and the paper's grid is 36 cells; neither fit.

What holds

What I find most useful is the framing: a strong stochastic flow map now trains like a deterministic one, on an ODE, with the noise turned into an input the derivative can see. The Feynman-Kac result in Section 4.3, where the map carries a particle's log-weight along its own path so resampling works at 4 steps, is something only a strong map can do, and the better reason to want one. The data-space iteration piece covers the deterministic few-step side of this family; the diffusion transformer page covers the backbone under DMF and SiT.

Cite this article

For attribution, please use the following reference or BibTeX:

Satyajit Ghana, "Improved strong stochastic flow maps: a smooth stand-in for the Brownian path", ai.thesatyajit.com, October 2026.

bibtex
@misc{ghana2026strongstochasticflowmaps,
  author = {Satyajit Ghana},
  title  = {Improved strong stochastic flow maps: a smooth stand-in for the Brownian path},
  url    = {https://ai.thesatyajit.com/articles/strong-stochastic-flow-maps},
  year   = {2026}
}
share