Skip to content
AIAI Wranglers

18 Normalizing Flows

In the previous chapter we saw that autoregressive models provide exact likelihoods by factorising a joint distribution into one-dimensional conditionals. Normalizing flows take a different route: they transform a simple base distribution (typically a standard Gaussian) through a sequence of invertible mappings, and use the change-of-variables formula to compute the density of the transformed distribution exactly.

The central trade-off is architectural: every transformation must be invertible and its Jacobian determinant must be efficiently computable. This constraint has inspired a rich family of architectures, from coupling layers to continuous-time flows, that we develop in this chapter:

  1. We begin with the change-of-variables formula and the mathematical foundations of normalizing flows.

  2. We introduce coupling flows: NICE and RealNVP.

  3. We study Glow and invertible 1Γ—1 convolutions.

  4. We develop autoregressive flows: MAF and IAF, and their duality.

  5. We present neural spline flows for flexible monotonic transformations.

  6. We discuss residual flows and their connection to the Banach fixed-point theorem.

  7. We introduce continuous normalizing flows: neural ODEs and FFJORD.

  8. We develop flow matching, a simulation-free training method that has become the foundation for modern generative models.

  9. We survey connections and applications to other generative paradigms.

Historical Note.

The idea of transporting one probability distribution to another through smooth maps dates back to Monge (1781) and was formalised by Kantorovich in the 1940s in the context of optimal transport (14). Tabak and Vanden-Eijnden [1] proposed using normalizing flows for density estimation in 2010. Rezende and Mohamed [2] introduced normalizing flows into the deep learning framework in 2015 for variational inference. The subsequent years saw rapid development: NICE [3] (2014), RealNVP [4] (2016), Glow [5] (2018), Neural ODEs [6] and FFJORD [7] (2018–2019), and flow matching [8] (2022), which now underlies state-of-the-art image and video generation systems.

Change of Variables and Flow Foundations

The change-of-variables formula

Let π’›βˆˆβ„D⁑ be a random vector with density pZ(𝒛), and let f:ℝD⁑→ℝD⁑ be a diffeomorphism, a smooth, invertible map whose inverse is also smooth. The transformed variable 𝒙=f(𝒛) has density given by the change-of-variables formula.

Definition 1 (Normalizing flow).

A normalizing flow is a diffeomorphism fΞΈ:ℝD⁑→ℝD⁑ (parameterised by ΞΈ) that transforms a base density pZ into a model density pX. The density of 𝒙=fΞΈ(𝒛) is (COV)pX(𝒙)=pZ(fΞΈβˆ’1(𝒙))|detβ‘βˆ‚fΞΈβˆ’1(𝒙)βˆ‚π’™|=pZ(𝒛)|detβ‘βˆ‚fΞΈ(𝒛)βˆ‚π’›|βˆ’1, where βˆ‚fΞΈβˆ‚π’›βˆˆβ„DΓ—D⁑ is the Jacobian matrix.

Taking logarithms, the log-likelihood of a data point 𝒙 is (LOG Likelihood)log⁑pX(𝒙)=log⁑pZ(fΞΈβˆ’1(𝒙))+log⁑|detβ‘βˆ‚fΞΈβˆ’1βˆ‚π’™(𝒙)|. The two computational requirements are clear:

  1. We need to invert fΞΈ to compute 𝒛=fΞΈβˆ’1(𝒙).

  2. We need the log-determinant of the Jacobian.

A normalizing flow transforms a simple base density pZ (e.g., standard Gaussian) into a complex data density pX through an invertible map fΞΈ. The forward map generates samples; the inverse map computes likelihoods.

Composing flows

In practice, a single transformation is too simple to model complex data. We compose K transformations:

Theorem 1 (Composition of flows).

Let f=fK∘fKβˆ’1βˆ˜β‹―βˆ˜f1 be a composition of diffeomorphisms fk:ℝD⁑→ℝD⁑. Then f is a diffeomorphism and (Composition)log⁑pX(𝒙)=log⁑pZ(𝒛0)βˆ’βˆ‘k=1Klog⁑|detβ‘βˆ‚fkβˆ‚π’›kβˆ’1(𝒛kβˆ’1)|, where 𝒛0=fβˆ’1(𝒙) and 𝒛k=fk(𝒛kβˆ’1).

Proof.

By the chain rule for Jacobians, βˆ‚fβˆ‚π’›0=βˆ‚fKβˆ‚π’›Kβˆ’1β‹―βˆ‚f1βˆ‚π’›0. Taking determinants and using det⁑(AB)=det⁑(A)det⁑(B) gives detβ‘βˆ‚fβˆ‚π’›0=∏k=1Kdetβ‘βˆ‚fkβˆ‚π’›kβˆ’1. Taking logarithms and absolute values yields the result.

Triangular maps and the Knothe–Rosenblatt rearrangement

Computing the determinant of a general DΓ—D matrix costs π’ͺ(D3), which is prohibitive for high-dimensional data. The key to efficient flows is to design transformations whose Jacobians are triangular.

Definition 2 (Triangular map).

A map f:ℝD⁑→ℝD⁑ is lower triangular if fd(𝒛) depends only on z1,…,zd: fd(𝒛)=fd(z1,…,zd). The Jacobian is then lower triangular, and its determinant is simply the product of diagonal entries: (Triangular DET)detβ‘βˆ‚fβˆ‚π’›=∏d=1Dβˆ‚fdβˆ‚zd, which costs only π’ͺ(D).

Theorem 2 (Knothe–Rosenblatt rearrangement).

Let p and q be two absolutely continuous probability distributions on ℝD⁑ with positive densities. There exists a unique lower triangular map T:ℝD⁑→ℝD⁑ with Td increasing in zd (for each fixed z1,…,zdβˆ’1) such that T#p=q (i.e., T pushes p forward to q).

Proof sketch.

The proof proceeds by induction on D. For D=1, the map is the composition of the CDF of p with the quantile function of q: T1=Fqβˆ’1∘Fp. For general D, we first map the marginal of z1 under p to the marginal under q using the one-dimensional result, then conditioned on the transformed first coordinate, map the conditional of z2 under p to the conditional under q, and so on. Uniqueness follows from the monotonicity constraint.

Corollary 1 (Universal approximation).

Triangular flows are universal: for any two sufficiently regular distributions p and q, there exists a triangular map that transforms p into q. In particular, any distribution can be represented as a triangular transformation of a standard Gaussian.

Key Idea.

The Knothe–Rosenblatt theorem is the theoretical foundation of normalizing flows: it guarantees that triangular maps are universal: they can represent any continuous distribution as a transformation of a simple base distribution. All practical flow architectures (coupling layers, autoregressive flows) are special cases of triangular maps.

Taxonomy of normalizing flow architectures. Coupling and autoregressive flows are special cases of triangular maps. Residual and continuous flows relax the triangular structure. Flow matching unifies several approaches.

Coupling Flows: NICE and RealNVP

The simplest way to build an invertible transformation with a cheap Jacobian determinant is to split the input into two groups and transform one group as a function of the other.

Definition 3 (Affine coupling layer).

An affine coupling layer splits the input π’›βˆˆβ„D⁑ into two disjoint parts 𝒛=(𝒛A,𝒛B) (with |𝒛A|=d and |𝒛B|=Dβˆ’d) and applies (Coupling)𝒙A=𝒛A,𝒙B=𝒛BβŠ™exp⁑(s(𝒛A))+t(𝒛A), where s,t:ℝd⁑→ℝDβˆ’d⁑ are arbitrary neural networks (the β€œscale” and β€œtranslation” networks).

Proposition 1 (Coupling layer Jacobian).

The Jacobian of the affine coupling layer is lower triangular (after appropriate ordering) with determinant (Coupling DET)detβ‘βˆ‚π’™βˆ‚π’›=∏j=1Dβˆ’dexp⁑(sj(𝒛A))=exp⁑(βˆ‘j=1Dβˆ’dsj(𝒛A)). The log-determinant is therefore simply βˆ‘j=1Dβˆ’dsj(𝒛A), a sum of the scale network outputs.

Proof.

The Jacobian has the block structure βˆ‚π’™βˆ‚π’›=(𝐈dπŸŽβˆ‚π’™Bβˆ‚π’›Adiag⁑(exp⁑(s(𝒛A)))). This is lower block-triangular, so its determinant is the product of the determinants of the diagonal blocks: det⁑(𝐈d)β‹…det⁑(diag⁑(exp⁑(s(𝒛A))))=∏jexp⁑(sj(𝒛A)).

The inverse is equally simple: 𝒛A=𝒙A and 𝒛B=(𝒙Bβˆ’t(𝒙A))βŠ™exp⁑(βˆ’s(𝒙A)).

Affine coupling layer. The β€œpass-through” partition 𝒛A is unchanged and used to parameterise the transformation of 𝒛B. The networks s(β‹…) and t(β‹…) can be arbitrarily complex without affecting invertibility.

NICE

Definition 4 (NICE).

NICE (Non-linear Independent Components Estimation) [3] is a coupling flow where the scale function is set to zero (s≑0), giving a volume-preserving additive coupling: 𝒙A=𝒛A,𝒙B=𝒛B+t(𝒛A). The Jacobian determinant is identically 1, so the log-likelihood simplifies to log⁑pX(𝒙)=log⁑pZ(fβˆ’1(𝒙)).

Remark 1.

Because each NICE layer is volume-preserving, the model cannot change the volume of regions in space. To compensate, NICE uses a learnable diagonal scaling matrix at the end of the flow. RealNVP removes this limitation by introducing the scale function s.

RealNVP and multi-scale architecture

Definition 5 (Multi-scale architecture).

RealNVP [4] introduces a multi-scale architecture where, after a block of coupling layers at each resolution, half of the dimensions are β€œfactored out” (directly modelled by the base distribution) and the remaining dimensions continue to the next block at the same resolution. This progressively reduces the computational cost and allows the model to capture features at different scales.

Masking patterns for image coupling layers. Left: checkerboard spatial masking alternates which pixels belong to 𝒛A and 𝒛B. Right: channel-wise masking splits along the channel dimension after a squeeze operation.

Example 1 (RealNVP on 2D data).

Consider 𝒛=(z1,z2)βˆΌπ’©(0,𝐈2). By alternating which dimension is transformed, a stack of coupling layers can learn to map the isotropic Gaussian to complex 2D distributions such as two moons or concentric rings. Despite using simple affine transformations, the alternating structure allows each dimension to be transformed as a function of the other, building up expressive power through composition.

Two layers alone are not enough for targets of this kind. After a layer that moves z2 while reading z1, the mass concentrates near a graph over the z1 axis, and a single following layer that moves z1 can only rescale and shift it by functions of the other coordinate, so the result remains a graph over one axis. Two moons and concentric rings are graphs over neither axis, so at least two full alternations (four coupling layers) are required, and practical models use many more.

Caution.

A single coupling layer can only transform the B-partition as a function of the A-partition. If we always split the same way, the A-partition is never transformed. In practice, we must alternate which dimensions are passed through and which are transformed. RealNVP alternates between checkerboard and channel-wise masking patterns at each layer.

Glow and Invertible 1Γ—1 Convolutions

Kingma and Dhariwal [5] proposed Glow, an improved flow architecture that replaces fixed permutations with learnable invertible 1Γ—1 convolutions and adds activation normalisation for stable training.

Definition 6 (Invertible 1Γ—1 convolution).

An invertible 1Γ—1 convolution is a linear transformation 𝒙=𝐖𝒛 applied independently at each spatial position, where π–βˆˆβ„CΓ—C⁑ is an invertible matrix (C is the number of channels). The log-determinant contribution at each spatial position is log⁑|det⁑𝐖|, and for an HΓ—W feature map the total is (1X1 DET)log⁑|detβ‘βˆ‚π’™βˆ‚π’›|=Hβ‹…Wβ‹…log⁑|det⁑𝐖|.

Proposition 2 (LU decomposition for efficient computation).

Computing det⁑𝐖 naively costs π’ͺ(C3). By parameterising 𝐖=𝐏𝐋𝐔 where 𝐏 is a fixed permutation matrix, 𝐋 is lower triangular with ones on the diagonal, and 𝐔 is upper triangular, the determinant reduces to log⁑|det⁑𝐖|=βˆ‘c=1Clog⁑|Ucc|, which costs only π’ͺ(C).

Proof.

Since det⁑𝐏=Β±1 and det⁑𝐋=1 (ones on diagonal), we have det⁑𝐖=det⁑𝐏⋅det⁑𝐋⋅det⁑𝐔=±∏c=1CUcc. Taking absolute values and logarithms gives the result.

Definition 7 (Activation normalisation (ActNorm)).

ActNorm is an invertible affine transformation 𝒙=π’”βŠ™π’›+𝒃 (per channel), where the scale 𝒔 and bias 𝒃 are initialised so that the output has zero mean and unit variance on the first minibatch (data-dependent initialisation), then treated as learnable parameters. It serves as a replacement for batch normalisation that is exactly invertible.

Algorithm 1 (One step of Glow).

Each step of flow in Glow consists of three sub-layers applied in sequence:

  1. Input: Feature map π’›βˆˆβ„HΓ—WΓ—C⁑
  2. ActNorm: 𝒉1=π’”βŠ™π’›+𝒃 Affine, per channel
  3. Inv. 1Γ—1 conv: 𝒉2=𝐖𝒉1 Channel mixing
  4. Affine coupling: 𝒙=AffineCoupling(𝒉2) Split channels
  5. return 𝒙

Glow multi-scale architecture. The β€œsqueeze” operation reshapes spatial dimensions into channels (H/2Γ—W/2Γ—4C). After each level, half the channels are factored out and modelled directly by the base distribution. Each β€œstep of flow” consists of ActNorm, an invertible 1Γ—1 convolution, and an affine coupling layer.

Autoregressive Flows: MAF and IAF

Autoregressive flows connect the autoregressive models of 17 with normalizing flows. The key insight is that an autoregressive model defines a triangular map, and triangular maps are invertible with cheap determinants.

Definition 8 (Masked Autoregressive Flow (MAF)).

A Masked Autoregressive Flow [9] transforms 𝒛→𝒙 by (MAF)xd=zdβ‹…exp⁑(sd(𝒙<d))+td(𝒙<d),d=1,…,D, where sd and td are computed by a MADE-style masked network. The generation direction (𝒛→𝒙) is sequential: each xd depends on all previous x<d. The density evaluation direction (𝒙→𝒛) is parallel: given 𝒙, all zd can be computed simultaneously.

Definition 9 (Inverse Autoregressive Flow (IAF)).

An Inverse Autoregressive Flow [10] transforms 𝒛→𝒙 by (IAF)xd=zdβ‹…exp⁑(sd(𝒛<d))+td(𝒛<d),d=1,…,D, where sd and td depend on the input 𝒛<d rather than the output. Generation (𝒛→𝒙) is now parallel, but density evaluation (𝒙→𝒛) requires sequential inversion.

Theorem 3 (MAF–IAF duality).

MAF and IAF are inverses of each other: the forward pass of MAF is the inverse pass of IAF, and vice versa. Specifically:

Density eval. (𝒙→𝒛)Sampling (𝒛→𝒙)
MAFParallel (π’ͺ(1) depth)Sequential (π’ͺ(D) depth)
IAFSequential (π’ͺ(D) depth)Parallel (π’ͺ(1) depth)

Proof.

Consider the MAF forward map xd=zdexp⁑(sd(𝒙<d))+td(𝒙<d). Given 𝒙, we can compute all zd in parallel via zd=(xdβˆ’td(𝒙<d))exp⁑(βˆ’sd(𝒙<d)). Relabelling the roles of 𝒙 and 𝒛, this is an IAF forward map with conditioner outputs s~d=βˆ’sd(𝒛<d) and t~d=βˆ’td(𝒛<d)exp⁑(βˆ’sd(𝒛<d)); since both are themselves arbitrary functions of the preceding coordinates, they are legitimate outputs of an IAF conditioner, so the two families coincide. The Jacobian in both cases is triangular with diagonal entries exp⁑(sd(β‹…)), confirming they share the same determinant structure.

MAF vs IAF for D=3. Left (MAF): density evaluation is parallel: all zd can be computed from 𝒙 simultaneously. Right (IAF): sampling is parallel: all xd can be computed from 𝒛 simultaneously. Each is the inverse of the other.

Proposition 3 (Autoregressive Jacobian).

For both MAF and IAF, the Jacobian is lower triangular with diagonal entries exp⁑(sd(β‹…)). The log-determinant is (Autoreg Logdet)log⁑|detβ‘βˆ‚π’™βˆ‚π’›|=βˆ‘d=1Dsd(β‹…).

Proof.

Since xd depends on zd only through the affine transformation xd=zdexp⁑(sd)+td, the partial derivative βˆ‚xd/βˆ‚zd=exp⁑(sd). For dβ€²<d, the dependence of xd on zdβ€² is only through the conditioning variables 𝒙<d (for MAF) or 𝒛<d (for IAF), and these contribute only to the lower-triangular part. The determinant of a triangular matrix is the product of its diagonal entries.

Insight.

MAF is ideal for training (density estimation), where fast likelihood computation is needed. IAF is ideal for inference in VAEs, where fast sampling from the approximate posterior is needed. This complementarity is the reason both variants exist and are used in different contexts.

Neural Spline Flows

Affine coupling and autoregressive layers are limited in their element-wise expressiveness: each zd↦xd is an affine function (for fixed conditioning variables). Durkan et al. [14] proposed replacing affine transformations with monotone rational-quadratic splines, dramatically increasing per-layer expressiveness.

Definition 10 (Rational-quadratic spline transformer).

A rational-quadratic (RQ) spline is a piecewise function defined on K bins [bkβˆ’1,bk], where each piece is a rational-quadratic function (ratio of two quadratics). The spline is parameterised by:

  • Bin widths {wk}k=1K (positive, summing to the interval width),

  • Bin heights {hk}k=1K (positive, summing to the output interval width),

  • Derivatives at knots {dk}k=0K (positive, ensuring monotonicity).

The bin widths and heights are produced by a softmax from the conditioning network, and the derivatives by a softplus.

Proposition 4 (Monotonicity of RQ splines).

A rational-quadratic spline with positive derivatives at all knots dk>0 is strictly monotonically increasing on each bin, hence invertible. The derivative (needed for the Jacobian) has a closed-form expression within each bin.

Proof.

Within bin [bkβˆ’1,bk], the rational-quadratic function is g(ΞΎ)=hkβˆ’1+(hkβˆ’hkβˆ’1)(skΞΎ2+dkβˆ’1ΞΎ(1βˆ’ΞΎ))sk+(dkβˆ’1+dkβˆ’2sk)ΞΎ(1βˆ’ΞΎ), where ΞΎ=(zβˆ’bkβˆ’1)/(bkβˆ’bkβˆ’1)∈[0,1] and sk=(hkβˆ’hkβˆ’1)/(bkβˆ’bkβˆ’1) is the bin slope. Here hkβˆ’1 and hk denote the cumulative knot values (the output coordinates of the two knots bounding the bin), so that g(0)=hkβˆ’1 and g(1)=hk; the bin height of Definition 10 is the difference hkβˆ’hkβˆ’1. Differentiating and converting from ΞΎ back to z yields the Jacobian factor dxdz=sk2(dkΞΎ2+2skΞΎ(1βˆ’ΞΎ)+dkβˆ’1(1βˆ’ΞΎ)2)(sk+(dkβˆ’1+dkβˆ’2sk)ΞΎ(1βˆ’ΞΎ))2, which is the quantity needed for the log-determinant. (The derivative with respect to ΞΎ itself is this expression multiplied by the bin width bkβˆ’bkβˆ’1>0, so the two differ only by a positive factor.) Since sk>0, dkβˆ’1>0 and dk>0, the numerator is a sum of non-negative terms that never vanish simultaneously for ξ∈[0,1]. For the denominator, write u=ΞΎ(1βˆ’ΞΎ)∈[0,14]; the bracket sk+(dkβˆ’1+dkβˆ’2sk)u is affine in u, so on [0,14] it is bounded below by min⁑(sk,Β (2sk+dkβˆ’1+dk)/4)>0, and there is no pole inside the bin. Hence dx/dz>0 and g is strictly increasing.

A rational-quadratic spline transformer (blue) with 6 knots (orange dots). The spline is monotonically increasing and agrees with the identity outside a bounded interval [βˆ’B,B]. The flexibility of the spline allows learning complex nonlinear element-wise transformations.

Remark 2.

Neural spline flows achieve state-of-the-art density estimation results across many benchmarks. The rational-quadratic parameterisation strikes a good balance between flexibility (each element-wise transformer can approximate any monotone function) and computational cost (the spline evaluation and its derivative are π’ͺ(K) per dimension, where K is typically 8–16).

Residual Flows

All previous flows used architectures that are invertible by construction (triangular Jacobians, coupling layers). Residual flows take a different approach: they parameterise the transformation as f(𝒛)=𝒛+g(𝒛) and ensure invertibility by constraining the Lipschitz constant of g.

Definition 11 (Invertible ResNet (iResNet)).

An invertible residual network [11] defines (Iresnet)f(𝒛)=𝒛+gΞΈ(𝒛), where gΞΈ is a neural network with Lipschitz constant Lip⁑(gΞΈ)<1. This condition is enforced by applying spectral normalisation to each weight matrix in gΞΈ.

Theorem 4 (Invertibility via contraction).

If Lip⁑(gΞΈ)<1, then f(𝒛)=𝒛+gΞΈ(𝒛) is a diffeomorphism. The inverse can be computed by fixed-point iteration: (Fixed Point)𝒛(0)=𝒙,𝒛(n+1)=π’™βˆ’gΞΈ(𝒛(n)), which converges to 𝒛=fβˆ’1(𝒙) at a geometric rate.

Proof.

Define Ξ¦(𝒛)=π’™βˆ’gΞΈ(𝒛). We need to show Ξ¦ is a contraction: β€–Ξ¦(𝒛1)βˆ’Ξ¦(𝒛2)β€–=β€–gΞΈ(𝒛2)βˆ’gΞΈ(𝒛1)‖≀Lip⁑(gΞΈ)‖𝒛1βˆ’π’›2β€–<‖𝒛1βˆ’π’›2β€–. By the Banach fixed-point theorem, Ξ¦ has a unique fixed point π’›βˆ—=π’™βˆ’gΞΈ(π’›βˆ—), i.e., 𝒙=π’›βˆ—+gΞΈ(π’›βˆ—)=f(π’›βˆ—). Thus π’›βˆ—=fβˆ’1(𝒙) and the iteration converges geometrically with rate Lip⁑(gΞΈ).

For smoothness, note that β€–βˆ‚gΞΈβˆ‚π’›β€–op≀Lip⁑(gΞΈ)<1, so every eigenvalue of 𝐉g=βˆ‚gΞΈβˆ‚π’› lies in the complex disc of radius Lip⁑(gΞΈ) about the origin. (The Jacobian need not be symmetric, so its eigenvalues are in general complex; the operator-norm bound, not an interval of real eigenvalues, is what we use.) Consequently the spectrum of 𝐈+𝐉g lies in the disc of radius Lip⁑(gΞΈ) about 1, and Οƒmin⁑(𝐈+𝐉g)β‰₯1βˆ’Lip⁑(gΞΈ)>0, so 𝐈+𝐉g is nonsingular. Moreover s↦det⁑(𝐈+s𝐉g) is continuous on [0,1], never zero (the same bound applies to s𝐉g), and equals 1 at s=0; by the intermediate value theorem it is therefore positive at s=1. Hence det⁑(𝐈+βˆ‚gΞΈβˆ‚π’›)>0 and f is a local diffeomorphism. Combined with injectivity (from the contraction property), f is a global diffeomorphism.

Log-determinant estimation.

The Jacobian 𝐈+βˆ‚gΞΈβˆ‚π’› is no longer triangular, so its determinant is expensive to compute exactly. Chen et al. [15] proposed using the power series expansion of the log-determinant: (Logdet Power Series)log⁑det⁑(𝐈+𝐉g)=βˆ‘k=1∞(βˆ’1)k+1ktrace⁑(𝐉gk), which converges when ‖𝐉gβ€–op<1 (guaranteed by the Lipschitz constraint). Each trace term trace⁑(𝐉gk) is estimated using Hutchinson's trace estimator with a Russian roulette truncation to obtain an unbiased estimate of the infinite sum.

Proposition 5 (Russian roulette estimator).

Let N be a random truncation level drawn from the geometric distribution on {0,1,2,…} with Pr⁑(N=n)=(1βˆ’p)pn, so that the survival probability is Pr⁑(Nβ‰₯k)=pk. The estimator L^=βˆ‘k=1N(βˆ’1)k+1kpktrace⁑(𝐉gk) is an unbiased estimator of log⁑det⁑(𝐈+𝐉g), since 𝔼[L^]=βˆ‘kβ‰₯1Pr⁑(Nβ‰₯k)(βˆ’1)k+1kpktrace⁑(𝐉gk) and the factors pk cancel.

Remark 3.

The convention matters: under the alternative parameterisation Pr⁑(N=n)=(1βˆ’p)nβˆ’1p on nβ‰₯1 the survival probability is (1βˆ’p)kβˆ’1, and the weights would have to be changed accordingly or the estimator would be biased. Unbiasedness also says nothing about variance: the weighted terms grow like D(‖𝐉gβ€–op/p)k/k, so p must be chosen larger than ‖𝐉gβ€–op for the variance to remain finite.

Continuous Normalizing Flows

Neural ordinary differential equations

Rather than composing discrete layers, we can define a continuous transformation as the solution of an ordinary differential equation (ODE).

Definition 12 (Neural ODE).

A neural ODE [6] defines a continuous transformation by (Neural ODE)d𝒛(t)dt=vΞΈ(𝒛(t),t),𝒛(0)=𝒛0, where vΞΈ:ℝD⁑×[0,1]→ℝD⁑ is a time-dependent velocity field parameterised by a neural network. The transformation fΞΈ:𝒛0↦𝒛(1) maps the initial condition to the solution at time t=1.

If vΞΈ is Lipschitz continuous in 𝒛, then by the Picard–LindelΓΆf theorem the ODE has a unique solution for each initial condition, and the flow map fΞΈ is a diffeomorphism. Crucially, the neural network vΞΈ has no architectural constraints: it need not be triangular, coupling, or otherwise structured.

The instantaneous change of variables

Theorem 5 (Instantaneous change of variables).

Let 𝒛(t) evolve according to d𝒛dt=vΞΈ(𝒛(t),t). The log-density along the trajectory satisfies (INST COV)ddtlog⁑p(𝒛(t),t)=βˆ’trace⁑(βˆ‚vΞΈβˆ‚π’›(𝒛(t),t))=βˆ’div⁑vΞΈ(𝒛(t),t).

Proof.

The density p(𝒛,t) satisfies the continuity equation (conservation of probability mass): βˆ‚p(𝒛,t)βˆ‚t+div⁑(p(𝒛,t)vΞΈ(𝒛,t))=0. Expanding the divergence: βˆ‚pβˆ‚t+βŸ¨βˆ‡π’›p,vθ⟩+pβ‹…div⁑vΞΈ=0. Now consider a particle trajectory 𝒛(t) satisfying the ODE. The total time derivative of log⁑p along this trajectory is ddtlog⁑p(𝒛(t),t)=1p(βˆ‚pβˆ‚t+βŸ¨βˆ‡π’›p,d𝒛dt⟩)=1p(βˆ‚pβˆ‚t+βŸ¨βˆ‡π’›p,vθ⟩). Substituting from the continuity equation: ddtlog⁑p(𝒛(t),t)=1p(βˆ’pβ‹…div⁑vΞΈ)=βˆ’div⁑vΞΈ=βˆ’trace⁑(βˆ‚vΞΈβˆ‚π’›).

Integrating (INST COV) from t=0 to t=1 gives (CNF LOGP)log⁑p(𝒛(1),1)=log⁑p(𝒛(0),0)βˆ’βˆ«01trace⁑(βˆ‚vΞΈβˆ‚π’›(𝒛(t),t))dt.

Key Idea.

The continuous change-of-variables formula replaces the log⁑|det⁑𝐉| of discrete flows with an integral of the trace of the Jacobian (the divergence). Computing a trace is π’ͺ(D) instead of π’ͺ(D3) for a determinant, but we still need efficient estimation since the Jacobian itself costs π’ͺ(D2) to form.

Hutchinson's trace estimator

Definition 13 (Hutchinson's trace estimator).

For a matrix π€βˆˆβ„DΓ—D⁑, Hutchinson's estimator approximates the trace as (Hutchinson)trace⁑(𝐀)β‰ˆπβŠ€π€π, where πβˆˆβ„D⁑ is a random vector with 𝔼[𝝐]=0 and 𝔼[𝝐𝝐⊀]=𝐈 (e.g., Ο΅d∼iid𝒩(0,1) or Ο΅d∼iidRademacher).

Proposition 6 (Unbiasedness of Hutchinson's estimator).

The estimator Ο„^=πβŠ€π€π satisfies 𝔼[Ο„^]=trace⁑(𝐀).

Proof.

𝔼[πβŠ€π€π]=𝔼[βˆ‘i,jΟ΅iAijΟ΅j]=βˆ‘i,jAij𝔼[Ο΅iΟ΅j]=βˆ‘i,jAijΞ΄ij=βˆ‘iAii=trace⁑(𝐀). The third equality uses 𝔼[Ο΅iΟ΅j]=Ξ΄ij.

Remark 4.

The vector-Jacobian product πβŠ€βˆ‚vΞΈβˆ‚π’› can be computed in π’ͺ(D) time using reverse-mode automatic differentiation, without forming the full Jacobian. This makes the trace estimation π’ͺ(D) per sample, compared to π’ͺ(D2) for the exact trace.

FFJORD

Definition 14 (FFJORD).

FFJORD (Free-Form Jacobian of Reversible Dynamics) [7] combines neural ODEs with Hutchinson's trace estimator. Training solves the augmented ODE (Ffjord)ddt(𝒛(t)log⁑p(t))=(vΞΈ(𝒛(t),t)βˆ’πβŠ€βˆ‚vΞΈβˆ‚π’›π), from t=1 (data) to t=0 (base distribution), using an adaptive ODE solver (e.g., Dormand–Prince).

Algorithm 2 (FFJORD training step).

  1. Input: Data point 𝒙, velocity network vΞΈ, base density pZ
  2. Sample πβˆΌπ’©(0,𝐈)
  3. Solve ODE from t=1 to t=0: (𝒛0,Ξ”log⁑p)=ODESolve([𝒛,β„“]↦[vΞΈ(𝒛,t),βˆ’πβŠ€βˆ‚vΞΈβˆ‚π’›π],[𝒙,0],t:1β†’0)
  4. log⁑pΞΈ(𝒙)=log⁑pZ(𝒛0)βˆ’Ξ”log⁑p
  5. β„’=βˆ’log⁑pΞΈ(𝒙) Negative log-likelihood
  6. Update ΞΈ via gradient descent on β„’

Continuous normalizing flow: particles from the base distribution (Gaussian, left) flow along trajectories defined by the neural ODE to produce the data distribution (right).
Discrete flows (top) compose finitely many invertible layers. Continuous flows (bottom) define the transformation as the solution of an ODE, parameterised by a single velocity network evaluated at all times.

Flow Matching

FFJORD requires solving an ODE during training, which is slow and memory-intensive. Flow matching [8] provides a simulation-free alternative: instead of simulating trajectories, we directly regress the velocity field vΞΈ onto a target velocity field that generates the desired probability path.

Definition 15 (Flow matching objective).

Given a probability path pt from a base distribution p0 to the data distribution p1, with generating velocity field ut (i.e., βˆ‚tpt+div⁑(ptut)=0), the flow matching loss is (FM)β„’FM(ΞΈ)=𝔼tβˆΌπ’°[0,1]π”Όπ’›βˆΌptβ€–vΞΈ(𝒛,t)βˆ’ut(𝒛)β€–2.

The difficulty is that neither pt nor ut is known in closed form for complex data distributions. The breakthrough of Lipman et al. [8] (and independently Liu et al. [16]) is to work with conditional paths.

Theorem 6 (Conditional flow matching).

Let pt(𝒛|𝒙1) be a conditional probability path from p0=𝒩(0,𝐈) to p1(β‹…|𝒙1)β‰ˆΞ΄π’™1, with conditional velocity field ut(𝒛|𝒙1). The conditional flow matching loss (CFM)β„’CFM(ΞΈ)=𝔼tβˆΌπ’°[0,1]𝔼𝒙1∼pdataπ”Όπ’›βˆΌpt(β‹…|𝒙1)β€–vΞΈ(𝒛,t)βˆ’ut(𝒛|𝒙1)β€–2 has the same gradients as the (intractable) flow matching loss β„’FM: βˆ‡ΞΈβ„’CFM=βˆ‡ΞΈβ„’FM.

Proof.

Define the marginal velocity field as ut(𝒛)=𝔼𝒙1∼p(𝒙1|𝒛,t)[ut(𝒛|𝒙1)], which generates the marginal path pt(𝒛)=𝔼𝒙1∼pdata[pt(𝒛|𝒙1)].

Expand the CFM loss: β„’CFM(ΞΈ)=𝔼t𝔼𝒙1π”Όπ’›βˆΌpt(β‹…|𝒙1)[β€–vΞΈ(𝒛,t)β€–2βˆ’2⟨vΞΈ(𝒛,t),ut(𝒛|𝒙1)⟩+β€–ut(𝒛|𝒙1)β€–2]. The first term depends on ΞΈ and can be rewritten as π”Όπ’›βˆΌptβ€–vΞΈ(𝒛,t)β€–2 (marginalising over 𝒙1). The cross-term becomes 𝔼𝒙1π”Όπ’›βˆΌpt(β‹…|𝒙1)⟨vΞΈ,ut(β‹…|𝒙1)⟩=π”Όπ’›βˆΌpt⟨vΞΈ(𝒛,t),𝔼𝒙1∼p(𝒙1|𝒛,t)[ut(𝒛|𝒙1)]⟩=π”Όπ’›βˆΌpt⟨vΞΈ(𝒛,t),ut(𝒛)⟩, which matches the cross-term of β„’FM. Since the third term does not depend on ΞΈ, the gradients are equal.

Definition 16 (Optimal transport conditional path).

The simplest conditional path is the linear interpolation (or optimal transport path): (OT PATH)𝒛t=(1βˆ’t)𝝐+t𝒙1,πβˆΌπ’©(0,𝐈). The conditional velocity field is constant: ut(𝒛t|𝒙1)=𝒙1βˆ’π. The CFM loss becomes (OT CFM)β„’OT-CFM(ΞΈ)=𝔼t,𝒙1,𝝐‖vΞΈ((1βˆ’t)𝝐+t𝒙1,t)βˆ’(𝒙1βˆ’π)β€–2.

Proposition 7 (Gaussian conditional paths).

For the Gaussian conditional path pt(𝒛|𝒙1)=𝒩(𝒛;ΞΌt(𝒙1),Οƒt2𝐈) with ΞΌ0=0, Οƒ0=1, ΞΌ1=𝒙1, Οƒ1β‰ˆ0, the conditional velocity field is ut(𝒛|𝒙1)=ΟƒΛ™tΟƒt(π’›βˆ’ΞΌt(𝒙1))+ΞΌΛ™t(𝒙1), where ΞΌΛ™t and ΟƒΛ™t denote time derivatives. For the OT path (ΞΌt=t𝒙1, Οƒt=1βˆ’t), this simplifies to ut(𝒛|𝒙1)=(𝒙1βˆ’π’›)/(1βˆ’t).

Flow matching with OT conditional paths. Each noise sample 𝝐 (blue, left) is paired with a data sample 𝒙1 (green, right), and the model learns the straight-line velocity 𝒙1βˆ’π. The velocity field vΞΈ is trained to predict these conditional velocities.

Insight.

Flow matching avoids ODE simulation during training entirely. The training loop is remarkably simple: (1) sample tβˆΌπ’°[0,1], 𝒙1∼pdata, πβˆΌπ’©(0,𝐈); (2) form 𝒛t=(1βˆ’t)𝝐+t𝒙1; (3) regress vΞΈ(𝒛t,t) onto 𝒙1βˆ’π. At inference, generate samples by solving the ODE d𝒛dt=vΞΈ(𝒛,t) from t=0 to t=1. This makes flow matching as simple to train as a denoising score matching objective, while producing a deterministic ODE sampler.

Remark 5 (Connection to diffusion models).

Flow matching is closely related to diffusion models (19). The β€œvariance-preserving” path used in DDPMs corresponds to a Gaussian conditional path with ΞΌt=Ξ±β€Ύt𝒙1 and Οƒt=1βˆ’Ξ±β€Ύt. The probability flow ODE of Song et al. [12] provides a deterministic sampler for diffusion models that is equivalent to a continuous normalizing flow. Flow matching can be viewed as a unified framework that encompasses both diffusion models and normalizing flows.

Connections and Applications

Flows for variational inference.

Rezende and Mohamed [2] originally proposed normalizing flows to improve the approximate posterior in VAEs (15). Instead of a simple Gaussian qΟ•(𝒛|𝒙)=𝒩(𝒛;𝝁ϕ,πšΊΟ•), one applies a flow to the Gaussian samples: 𝒛K=fKβˆ˜β‹―βˆ˜f1(𝒛0), with 𝒛0∼qΟ•. The ELBO is modified to include the flow's log-determinant terms. This yields a more flexible posterior that better approximates the true posterior, tightening the ELBO.

Optimal transport connection.

The OT conditional path in flow matching ((OT PATH)) is closely related to McCann's displacement interpolation in optimal transport (14). The linear interpolation 𝒛t=(1βˆ’t)𝝐+t𝒙1 corresponds to the geodesic in Wasserstein space between the source and target distributions, when the coupling is the independent coupling.

Probability flow ODE.

Song et al. [12] showed that every stochastic diffusion process has an associated deterministic ODE, the probability flow ODE, that generates the same marginal distributions pt. This ODE defines a continuous normalizing flow, connecting diffusion models to the flow framework.

Modern applications.

Normalizing flows and flow matching underlie several state-of-the-art generative systems:

  • Image generation: Stable Diffusion 3 and Flux [13] use rectified flow (a flow matching variant) as the backbone.

  • Speech synthesis: Parallel WaveGAN and related models use flows for efficient audio generation.

  • Molecular generation: Flows on manifolds are used for drug design and protein structure prediction.

  • Density estimation: Neural spline flows remain state-of-the-art on tabular benchmarks.

Key Idea.

Normalizing flows, continuous flows, and flow matching form a progression: from discrete invertible layers with structured Jacobians, to continuous ODE-based transformations with free-form architectures, to simulation-free training of velocity fields. Each step trades architectural constraints for training simplicity, culminating in flow matching, a method as easy to train as denoising diffusion while retaining exact likelihoods (in principle) and deterministic sampling.

ArchitectureInverseLog-det costFree arch.?Key ref.
NICE / RealNVPAnalyticπ’ͺ(D)No[3][4]
GlowAnalyticπ’ͺ(D+C)No[5]
MAFSequentialπ’ͺ(D)No[9]
Neural splineAnalyticπ’ͺ(DK)No[14]
iResNetFixed-pointπ’ͺ(D) est.Partial[11]
FFJORDODE solveπ’ͺ(D) est.Yes[7]
Flow matchingODE solveN/A (train)Yes[8]
Comparison of normalizing flow architectures.

Exercises

Exercise 1 (1D change of variables).

Let ZβˆΌπ’©(0,1) and X=exp⁑(Z) (so X is log-normal). Using the change-of-variables formula, derive the density pX(x) and verify that it integrates to 1.

Exercise 2 (Coupling layer Jacobian).

For the affine coupling layer with 𝒛A=(z1,z2), 𝒛B=(z3,z4), and scale/translation networks s(𝒛A)=(s1,s2), t(𝒛A)=(t1,t2):

  1. Write out the full 4Γ—4 Jacobian matrix explicitly.

  2. Compute its determinant and verify it equals exp⁑(s1+s2).

  3. Write the inverse transformation.

Exercise 3 (NICE is volume-preserving).

Prove that each additive coupling layer in NICE preserves volume, i.e., |detβ‘βˆ‚π’™βˆ‚π’›|=1. Explain why this implies that a NICE flow (without the final scaling layer) can only model distributions with the same total β€œvolume” as the base distribution.

Exercise 4 (Composing coupling layers).

Show that a single affine coupling layer cannot represent the transformation (z1,z2)↦(z1+z2,z1β‹…z2). However, show that two coupling layers (with alternating partitions) can represent (z1,z2)↦(z1+z2,z2).

Exercise 5 (LU decomposition cost).

For a CΓ—C weight matrix in Glow's 1Γ—1 convolution:

  1. What is the cost of computing det⁑𝐖 without the LU decomposition?

  2. What is the cost with the LU decomposition?

  3. For a 32Γ—32Γ—C feature map, what is the total log-determinant contribution of one 1Γ—1 convolution layer?

Exercise 6 (MAF density evaluation).

Consider a 3-dimensional MAF with affine transformations xd=zdexp⁑(sd)+td where: s1=0,t1=0; s2=0.5x1,t2=x1; s3=x1+x2,t3=x1x2. For 𝒙=(1,2,3) and base distribution pZ=𝒩(0,𝐈), compute log⁑pX(𝒙).

Exercise 7 (MAF–IAF duality).

Starting from the MAF transformation xd=zdexp⁑(sd(𝒙<d))+td(𝒙<d), derive the inverse transformation and show it has the form of an IAF. Explain why density evaluation in MAF is π’ͺ(1) depth but sampling is π’ͺ(D) depth.

Exercise 8 (Hutchinson's estimator variance).

For a DΓ—D matrix 𝐀 and Rademacher random vector 𝝐 (Ο΅d∈{βˆ’1,+1} with equal probability):

  1. Prove that 𝔼[πβŠ€π€π]=trace⁑(𝐀).

  2. Show that 𝖡ar⁑[πβŠ€π€π]=2‖𝐀‖F2βˆ’2βˆ‘iAii2 when 𝐀 is symmetric.

  3. Explain why the variance is zero when 𝐀 is diagonal.

Exercise 9 (Continuity equation derivation).

Derive the continuity equation βˆ‚pβˆ‚t+div⁑(pv)=0 from conservation of probability mass. Hint: consider the total probability in an arbitrary region Ξ© and use the divergence theorem.

Exercise 10 (Flow matching with Gaussian paths).

For the variance-preserving path pt(𝒛|𝒙1)=𝒩(𝒛;Ξ±β€Ύt𝒙1,(1βˆ’Ξ±β€Ύt)𝐈):

  1. Compute the conditional velocity field ut(𝒛|𝒙1).

  2. Write the resulting CFM loss.

  3. Compare this with the denoising score matching objective of diffusion models.

Exercise 11 (Spline bijectivity).

For a rational-quadratic spline with K=2 bins on [βˆ’1,1]:

  1. Write the spline function explicitly given bin widths w1=w2=1, bin heights h1=0.5,h2=1.5, and boundary derivatives d0=d1=d2=1.

  2. Verify that g(βˆ’1)=βˆ’1, g(0)=βˆ’0.5, g(1)=1.

  3. Compute gβ€²(0) and verify it is positive.

Exercise 12 (Residual flow convergence).

For g(𝒛)=0.5sin⁑(𝒛) (applied element-wise) and f(𝒛)=𝒛+g(𝒛):

  1. Verify that Lip⁑(g)=0.5<1.

  2. For 𝒙=(1.5,0), run three iterations of the fixed-point inversion 𝒛(n+1)=π’™βˆ’g(𝒛(n)) starting from 𝒛(0)=𝒙.

  3. Estimate the convergence rate.

Exercise 13 (Flow vs VAE vs GAN).

Compare normalizing flows, VAEs, and GANs along the following axes:

  1. Exact vs approximate likelihood computation.

  2. Training stability.

  3. Sample quality vs diversity trade-off.

  4. Latent space structure and interpolation.

For each axis, explain which model family has the advantage and why.

Exercise 14 (Implementing a 2D RealNVP).

Describe (in pseudocode) a complete 2D RealNVP flow with: K=4 affine coupling layers, alternating which dimension is transformed, and scale/translation networks as two-layer MLPs with 64 hidden units.

  1. Write the forward pass (sampling).

  2. Write the inverse pass (density evaluation).

  3. Write the log-likelihood computation.

  4. How many learnable parameters does your model have?

Exercise 15 (OT vs VP paths in flow matching).

Compare the OT path 𝒛t=(1βˆ’t)𝝐+t𝒙1 with the VP path 𝒛t=Ξ±β€Ύt𝒙1+1βˆ’Ξ±β€Ύt𝝐 (where Ξ±β€Ύt is a decreasing schedule from 1 to 0).

  1. Show that both paths satisfy p0β‰ˆπ’©(0,𝐈) and p1β‰ˆΞ΄π’™1.

  2. Compute the velocity for each path.

  3. Which path produces straighter trajectories? Why does this matter for ODE solvers?

References

  1. Density Estimation by Dual Ascent of the Log-Likelihood

    Esteban G. Tabak, Eric Vanden-Eijnden

    Communications in Mathematical Sciences, vol. 8, no. 1, pp. 217-233 Β· 2010

    BibTeX
    @article{tabak2010density,
      title={Density Estimation by Dual Ascent of the Log-Likelihood},
      author={Tabak, Esteban G. and Vanden-Eijnden, Eric},
      journal={Communications in Mathematical Sciences},
      volume={8},
      number={1},
      pages={217--233},
      year={2010}
    }

    Journal article

  2. Variational Inference with Normalizing Flows

    Danilo Jimenez Rezende, Shakir Mohamed

    International Conference on Machine Learning, pp. 1530-1538 Β· 2015

    BibTeX
    @inproceedings{rezende2015variational,
      title={Variational Inference with Normalizing Flows},
      author={Rezende, Danilo Jimenez and Mohamed, Shakir},
      booktitle={International Conference on Machine Learning},
      pages={1530--1538},
      year={2015}
    }

    Conference paper

  3. NICE: Non-linear Independent Components Estimation

    Laurent Dinh, David Krueger, Yoshua Bengio

    International Conference on Learning Representations (ICLR) Workshop Β· 2015

    BibTeX
    @inproceedings{dinh2015nice,
      title={{NICE}: Non-linear Independent Components Estimation},
      author={Dinh, Laurent and Krueger, David and Bengio, Yoshua},
      booktitle={International Conference on Learning Representations (ICLR) Workshop},
      year={2015}
    }

    Conference paper

  4. Density estimation using Real NVP

    Laurent Dinh, Jascha Sohl-Dickstein, Samy Bengio

    International Conference on Learning Representations Β· 2017

    BibTeX
    @inproceedings{dinh2016density,
      title={Density estimation using Real NVP},
      author={Dinh, Laurent and Sohl-Dickstein, Jascha and Bengio, Samy},
      booktitle={International Conference on Learning Representations},
      year={2017}
    }

    Conference paper

  5. Glow: Generative Flow with Invertible 1x1 Convolutions

    Diederik P. Kingma, Prafulla Dhariwal

    Advances in Neural Information Processing Systems, pp. 10236-10245 Β· 2018

    BibTeX
    @inproceedings{kingma2018glow,
      title={Glow: Generative Flow with Invertible 1x1 Convolutions},
      author={Kingma, Diederik P. and Dhariwal, Prafulla},
      booktitle={Advances in Neural Information Processing Systems},
      pages={10236--10245},
      year={2018}
    }

    Conference paper

  6. Neural Ordinary Differential Equations

    Ricky T. Q. Chen, Yulia Rubanova, Jesse Bettencourt, David K. Duvenaud

    Advances in Neural Information Processing Systems Β· 2018

    BibTeX
    @inproceedings{chen2018neural,
      title={Neural Ordinary Differential Equations},
      author={Chen, Ricky T. Q. and Rubanova, Yulia and Bettencourt, Jesse and Duvenaud, David K.},
      booktitle={Advances in Neural Information Processing Systems},
      year={2018}
    }

    Conference paper

  7. FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models

    Will Grathwohl, Ricky T. Q. Chen, Jesse Bettencourt, Ilya Sutskever, David Duvenaud

    International Conference on Learning Representations Β· 2019

    BibTeX
    @inproceedings{grathwohl2018ffjord,
      title={{FFJORD}: Free-form Continuous Dynamics for Scalable Reversible Generative Models},
      author={Grathwohl, Will and Chen, Ricky T. Q. and Bettencourt, Jesse and Sutskever, Ilya and Duvenaud, David},
      booktitle={International Conference on Learning Representations},
      year={2019}
    }

    Conference paper

  8. Flow Matching for Generative Modeling

    Yaron Lipman, Ricky T. Q. Chen, Heli Ben-Hamu, Maximilian Nickel, Matt Le

    International Conference on Learning Representations (ICLR) Β· 2023

    BibTeX
    @inproceedings{lipman2023flow,
      title={Flow Matching for Generative Modeling},
      author={Lipman, Yaron and Chen, Ricky T. Q. and Ben-Hamu, Heli and Nickel, Maximilian and Le, Matt},
      booktitle={International Conference on Learning Representations (ICLR)},
      year={2023}
    }

    Conference paper

  9. Masked Autoregressive Flow for Density Estimation

    George Papamakarios, Theo Pavlakou, Iain Murray

    Advances in Neural Information Processing Systems, pp. 2338-2347 Β· 2017

    BibTeX
    @inproceedings{papamakarios2017masked,
      title={Masked Autoregressive Flow for Density Estimation},
      author={Papamakarios, George and Pavlakou, Theo and Murray, Iain},
      booktitle={Advances in Neural Information Processing Systems},
      pages={2338--2347},
      year={2017}
    }

    Conference paper

  10. Improved Variational Inference with Inverse Autoregressive Flow

    Diederik P. Kingma, Tim Salimans, Rafal Jozefowicz, Xi Chen, Ilya Sutskever, Max Welling

    Advances in Neural Information Processing Systems, pp. 4743-4751 Β· 2016

    BibTeX
    @inproceedings{kingma2016improved,
      title={Improved Variational Inference with Inverse Autoregressive Flow},
      author={Kingma, Diederik P. and Salimans, Tim and Jozefowicz, Rafal and Chen, Xi and Sutskever, Ilya and Welling, Max},
      booktitle={Advances in Neural Information Processing Systems},
      pages={4743--4751},
      year={2016}
    }

    Conference paper

  11. Invertible Residual Networks

    Jens Behrmann, Will Grathwohl, Ricky T. Q. Chen, David Duvenaud, Jorn-Henrik Jacobsen

    Proceedings of the 36th International Conference on Machine Learning (ICML) Β· 2019

    BibTeX
    @inproceedings{behrmann2019invertible,
      title={Invertible Residual Networks},
      author={Behrmann, Jens and Grathwohl, Will and Chen, Ricky T. Q. and Duvenaud, David and Jacobsen, J\"{o}rn-Henrik},
      booktitle={Proceedings of the 36th International Conference on Machine Learning (ICML)},
      year={2019}
    }

    Conference paper

  12. Score-Based Generative Modeling through Stochastic Differential Equations

    Yang Song, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon, Ben Poole

    Proceedings of ICLR Β· 2021

    BibTeX
    @article{song2021scorebased,
      author    = {Song, Yang and Sohl-Dickstein, Jascha and Kingma, Diederik P. and Kumar, Abhishek and Ermon, Stefano and Poole, Ben},
      title     = {Score-Based Generative Modeling through Stochastic Differential Equations},
      journal   = {Proceedings of ICLR},
      year      = {2021}
    }

    Journal article

  13. Scaling Rectified Flow Transformers for High-Resolution Image Synthesis

    Patrick Esser, Sumith Kulal, Andreas Blattmann, Rahim Entezari, Jonas Muller, Harry Saini, Yam Levi, Dominik Lorber, et al.

    Proceedings of the 41st International Conference on Machine Learning (ICML) Β· 2024

    BibTeX
    @inproceedings{esser2024scaling,
      title={Scaling Rectified Flow Transformers for High-Resolution Image Synthesis},
      author={Esser, Patrick and Kulal, Sumith and Blattmann, Andreas and Entezari, Rahim and M\"{u}ller, Jonas and Saini, Harry and Levi, Yam and Lorber, Dominik and Sauer, Axel and Boesel, Frederic and others},
      booktitle={Proceedings of the 41st International Conference on Machine Learning (ICML)},
      year={2024}
    }

    Conference paper

  14. Neural Spline Flows

    Conor Durkan, Artur Bekasov, Iain Murray, George Papamakarios

    Advances in Neural Information Processing Systems (NeurIPS) Β· 2019

    BibTeX
    @inproceedings{durkan2019neural,
      title={Neural Spline Flows},
      author={Durkan, Conor and Bekasov, Artur and Murray, Iain and Papamakarios, George},
      booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
      year={2019}
    }

    Conference paper

  15. Residual Flows for Invertible Generative Modeling

    Ricky T. Q. Chen, Jens Behrmann, David K. Duvenaud, Jorn-Henrik Jacobsen

    Advances in Neural Information Processing Systems (NeurIPS) Β· 2019

    BibTeX
    @inproceedings{chen2019residual,
      title={Residual Flows for Invertible Generative Modeling},
      author={Chen, Ricky T. Q. and Behrmann, Jens and Duvenaud, David K. and Jacobsen, J\"{o}rn-Henrik},
      booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
      year={2019}
    }

    Conference paper

  16. Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow

    Xingchao Liu, Chengyue Gong, Qiang Liu

    International Conference on Learning Representations (ICLR) Β· 2023

    BibTeX
    @inproceedings{liu2023flow,
      title={Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow},
      author={Liu, Xingchao and Gong, Chengyue and Liu, Qiang},
      booktitle={International Conference on Learning Representations (ICLR)},
      year={2023}
    }

    Conference paper