Two important objects we use in this paper are: the probability density path, which is a time dependent probability density function, and a time-dependent vector field. A vector field can be used to construct a time-dependent diffeomorphic map, called a flow, defined via an ordinary differential equation (ODE). Previously, Chen and colleagues suggested modeling the vector field with a neural network, where theta are its learnable parameters, which in turn leads to a deep parametric model of the flow, called a Continuous Normalizing Flow (CNF). A CNF is used to reshape a simple prior density (for example, pure noise) to a more complicated one, via the push-forward equation. A vector field is said to generate a probability density path if its flow satisfies the push-forward equation. One practical way to test if a vector field generates a probability path is using the continuity equation, which is a key component in our proofs. Section 3: Flow Matching  Let x1 denote a random variable distributed according to some unknown data distribution q(x1). We assume we only have access to data samples from q(x1) but have no access to the density function itself. Furthermore, we let p_t be a probability path such that p_0 is a simple distribution, for example, the standard normal distribution, and let p_1 be approximately equal in distribution to q. We will later discuss how to construct such a path. The Flow Matching objective is then designed to match this target probability path, which will allow us to flow from p_0 to p_1. Given a target probability density path p_t(x) and a corresponding vector field u_t(x), which generates p_t(x), we define the Flow Matching (FM) objective as the expected squared norm of the difference between v_t(x) and u_t(x). Here, theta denotes the learnable parameters of the CNF vector field v_t, t is sampled from a uniform distribution between 0 and 1, and x is sampled from p_t(x). Simply put, the FM loss regresses the vector field u_t with a neural network v_t. Upon reaching zero loss, the learned CNF model will generate p_t(x). Flow Matching is a simple and attractive objective, but naively on its own, it is intractable to use in practice since we have no prior knowledge for what an appropriate p_t and u_t are. There are many choices of probability paths that can satisfy p_1(x) is approximately q(x), and more importantly, we generally don't have access to a closed form u_t that generates the desired p_t. In this section, we show that we can construct both p_t and u_t using probability paths and vector fields that are only defined per sample, and an appropriate method of aggregation provides the desired p_t and u_t. Furthermore, this construction allows us to create a much more tractable objective for Flow Matching. Subsection 3.1: Constructing p_t, u_t from conditional probability paths and vector fields  A simple way to construct a target probability path is via a mixture of simpler probability paths: Given a particular data sample x1 we denote by p_t(x given x1) a conditional probability path such that it satisfies p_0(x given x1) equals p(x) at time t equals 0, and we design p_1(x given x1) at t equals 1 to be a distribution concentrated around x equals x1, for example, a normal distribution with x1 mean and a sufficiently small standard deviation. Marginalizing the conditional probability paths over q(x1) give rise to the marginal probability path.