We get a different probability path that looks much more like OT. This idea is used in the rectified flow approach github.com/gnobitab/Rec...
We get a different probability path that looks much more like OT. This idea is used in the rectified flow approach github.com/gnobitab/Rec...
To get a clearer view, let's map a stripped cat to a donut.
Color encodes the initial position of the points on the cat.
To get a clearer view, let's map a stripped cat to a donut.
Color encodes the initial position of the points on the cat.
In Optimal Transport (OT) terms, this CFM induces a probability path that corresponds to the (much non-optimal) independent coupling. That means every cat point is split and sent to every donut point.
In Optimal Transport (OT) terms, this CFM induces a probability path that corresponds to the (much non-optimal) independent coupling. That means every cat point is split and sent to every donut point.
Showing 3 z samples, with a deterministic equivalent of diffusion,
i.e., z = x1 and with sin/cos weighting
i.e., p(x,t|z) = 𝓝[cos(2πt) · x0 + sin(2πt) · x1, ε](x)
Showing 3 z samples, with a deterministic equivalent of diffusion,
i.e., z = x1 and with sin/cos weighting
i.e., p(x,t|z) = 𝓝[cos(2πt) · x0 + sin(2πt) · x1, ε](x)
Showing 3 z samples, with trajectories from diffusion,
i.e., z = x1 and having a noisy diffusion process towards 𝓝[0,1] (fixed)
Showing 3 z samples, with trajectories from diffusion,
i.e., z = x1 and having a noisy diffusion process towards 𝓝[0,1] (fixed)
Better conditional flows, like minibatch-OT can help straighten the resulting flow.
Here we use mini-batches of 10 points on each side.
At the extreme (full batch OT) we recover optimal transport.
Better conditional flows, like minibatch-OT can help straighten the resulting flow.
Here we use mini-batches of 10 points on each side.
At the extreme (full batch OT) we recover optimal transport.
CFM untangles even bad initial conditional flows.
CFM untangles even bad initial conditional flows.
Showing the field u(x,t)
by flowing random points.
Showing the field u(x,t)
by flowing random points.
Flowing from the mouse position (forward and backward)
i.e., Euler integration using u(x,t)
Flowing from the mouse position (forward and backward)
i.e., Euler integration using u(x,t)
The key of CFM, the "inversion"
The velocity u(x,t) at any location x,t is the average of all conditional fields *passing at this location* (here we sample a few to compute the average)
i.e., more formally u(x,t) = 𝔼_{z|x,t} [u(x,t|z)]
The key of CFM, the "inversion"
The velocity u(x,t) at any location x,t is the average of all conditional fields *passing at this location* (here we sample a few to compute the average)
i.e., more formally u(x,t) = 𝔼_{z|x,t} [u(x,t|z)]
Showing 3 z samples, with conical Gaussian path,
i.e., z = x1 and going from a Dirac at x1 to the 𝓝[0,1] (fixed)
i.e., p(x,t|z) = 𝓝[t · x1, 1-t](x)
Showing 3 z samples, with conical Gaussian path,
i.e., z = x1 and going from a Dirac at x1 to the 𝓝[0,1] (fixed)
i.e., p(x,t|z) = 𝓝[t · x1, 1-t](x)
Showing 3 z samples, with linear interpolation,
i.e., z = (x0, x1) and a spiked Gaussian around (1-t) · x0 + t · x1
i.e., p(x,t|z) = 𝓝[(1-t) · x0 + t · x1, ε](x)
Showing 3 z samples, with linear interpolation,
i.e., z = (x0, x1) and a spiked Gaussian around (1-t) · x0 + t · x1
i.e., p(x,t|z) = 𝓝[(1-t) · x0 + t · x1, ε](x)
We actually have a 4th visual in the blog post.
Take a hot beverage ☕,
play some 🎵 www.youtube.com/watch?v=3jfI...
Welcome to the playground!
The Conditional Flow Matching playground!
We actually have a 4th visual in the blog post.
Take a hot beverage ☕,
play some 🎵 www.youtube.com/watch?v=3jfI...
Welcome to the playground!
The Conditional Flow Matching playground!