Flow Matching 论文
扩散模型:根据中心极限定理,对原始图像不断加高斯噪声,最终将原始信号破坏为近似的标准正态分布。这其中每一步都构造为条件高斯分布,形成离散的马尔科夫链。再通过逐步去噪得到原始图像。
Flow matching 采取直接将已知分布(如白噪声)转换为真实数据分布来生成数据,并且 Flow 是基于 Normalizing Flow,故而是可微双射。生成过程中变化的概率密度构成一个集合,称为概率密度路径 p t p_t pt ,T 为路径长度。初始数据 x 0 ∼ p 0 ( x 0 ) x_0 \sim p_0(x_0) x0∼p0(x0),目标数据 x T ∼ p T ( x T ) x_T \sim p_T(x_T) xT∼pT(xT)。
从 x 0 x_0 x0 到 x T x_T xT 的过程可以表示为: x T = ϕ ( x 0 ) = ϕ T ∘ ⋯ ∘ ϕ t + 1 ∘ ϕ t ∘ ⋯ ϕ 1 ( x 0 ) x_T=\phi(x_0)=\phi_T\circ\cdots\circ\phi_{t+1}\circ\phi_t\circ\cdots\phi_1(x_0) xT=ϕ(x0)=ϕT∘⋯∘ϕt+1∘ϕt∘⋯ϕ1(x0)
且对中间任意时间步 x t x_t xt 有:
x t = ϕ t ( x t − 1 ) x t − 1 = ϕ t − 1 ( x t ) \begin{aligned} x_t=\phi_t(x_{t-1}) \\x_{t-1}=\phi_t^{-1}(x_t) \end{aligned} xt=ϕt(xt−1)xt−1=ϕt−1(xt)
根据概率密度函数的变量变换关系可得:(行列式为时刻 t 对应的流 ϕ t \phi_t ϕt 的 Jacobian 行列式)
p t ( x t ) = p t − 1 ( x t − 1 ) d e t [ ∂ x t − 1 ∂ x t ] = p t − 1 ( ϕ t − 1 ( x t ) ) d e t [ ∂ ϕ t − 1 ∂ x t ( x t ) ] ( 1 ) \begin{aligned} p_t(x_t) & =p_{t-1}(x_{t-1})\mathrm{det}\left[\frac{\partial x_{t-1}}{\partial x_t}\right] \\ & =p_{t-1}(\phi_t^{-1}(x_t))\mathrm{det}\left[\frac{\partial\phi_t^{-1}}{\partial x_t}(x_t)\right] \qquad \qquad (1) \end{aligned} pt(xt)=pt−1(xt−1)det[∂xt∂xt−1]=pt−1(ϕt−1(xt))det[∂xt∂ϕt−1(xt)](1)
那么就可以从初始数据分布 p 0 p_0 p0 推导到目标数据分布 p T p_T pT。行列式的本质是空间缩放的度量,相当于每次变换时都对概率密度进行归一化,采用更简洁的前推方程为:
p t = [ ϕ t ] ∗ p 0 p_t=[\phi_t]_{*}p_0 pt=[ϕt]∗p0
向量场建模
这可以通过 Neural Ordinary Differential Equations(NODE) 对 Jacobian 行列式中的常微分方程(ODE)建模,求出 ϕ t \phi_t ϕt。为了实现这一点,需要将离散的时间步 t = { t i } i = 1 T t=\{t_i\}_{i=1}^T t={ ti}i=1T 映射到连续时间变量 t ∈ [ 0 , 1 ] t\in[0,1] t∈[0,1] ,这样将 p t p_t pt 定义为连续时间和数据点的笛卡尔积: p : [ 0 , 1 ] × R d − > R > 0 p:[0,1] × \mathbb{R}^d -> \mathbb{R}_{>0} p:[0,1]×Rd−>R>0 且

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



