[2022] [Flow Matching] [Flow Matching for Generative Modeling]
Flow Matching for Generative Modeling, 2022
Flow: φ(t, x) 是一个微分同胚映射(diffeomorphic map), 用于把 x 所在的先验分布(如高斯噪声)映射到时间 t 的分布
Flow Matching 把扩散模型的噪声预测任务统一成了向量场回归任务
拉格朗日视角:关注单个粒子随时间的运动轨迹
欧拉视角:关注固定空间点上的场量(如速度、密度)随时间的变化
Continuous Normalizing Flow (CNF): 将简单的先验概率密度 p_0 (噪声)重塑为复杂的概率密度 p_1, 通过一个 push-forward 公式
pt=[ϕt]∗p0 (3)p_t = [\phi_t]_∗p_0 \ \ \ (3)pt=[ϕt]∗p0 (3)
pt(x)=[ϕt]∗p0(x)=p0(ϕt−1(x))det[∂ϕt−1∂x(x)]. (4)=p0(x0)det[∂ϕt−1∂x(x)]\begin{aligned}
p_t(x) &=
[\phi_t]_∗p_0(x) \\
&= p_0(\phi^{−1}_t(x)) \det \left[ \frac{∂\phi^{−1}_t}{∂x}(x)\right]. \ \ \ (4) \\
&= p_0(x_0)\det \left[ \frac{∂\phi^{−1}_t}{∂x}(x)\right]
\end{aligned}pt(x)=[ϕt]∗p0(x)=p0(ϕt−1(x))det[∂x∂ϕt−1(x)]. (4)=p0(x0)det[∂x∂ϕt−1(x)]
其中行列式 det[∂ϕt−1∂x(x)]\det \left[ \frac{∂\phi^{−1}_t}{∂x}(x)\right]det[∂x∂ϕt−1(x)] 表示从 x0x_0x0 到 x 的体积缩放比例的倒数,因为体积变大,密度等比例缩小,反之亦然。
pt(x)=∫pt(x∣x1)q(x1)dx1 (6)p_t(x)=\int p_t (x|x_1)q(x_1)dx_1 \ \ \ (6)pt(x)=∫pt(x∣x1)q(x1)dx1 (6)
ut(x)=∫ut(x∣x1)pt(x∣x1)q(x1)pt(x)dx1 (8)u_t(x)=\int u_t(x|x_1)\frac{p_t(x|x_1)q(x_1)}{p_t(x)}dx_1 \ \ \ (8)ut(x)=∫ut(x∣x1)pt(x)pt(x∣x1)q(x1)dx1 (8)
条件流匹配的损失函数
LCFM(θ)=Et,q(x1),pt(x∣x1)∥vt(x)−ut(x∣x1)∥2 (9)L_{CFM}(\theta) = E_{t,q(x_1),p_t(x|x_1)}\|v_t(x)-u_t(x|x_1)\|^2 \ \ \ (9)LCFM(θ)=Et,q(x1),pt(x∣x1)∥vt(x)−ut(x∣x1)∥2 (9)
ddtψt(x)=ut(ψt(x)∣x1) (13)\frac{d}{dt}\psi_t(x) = u_t(\psi_t(x)|x_1) \ \ \ (13)dtdψt(x)=ut(ψt(x)∣x1) (13)
用 x0x_0x0 对 pt(x∣x1)p_t(x|x_1)pt(x∣x1) 进行重参数化,并代入公式 (13), 得到
LCFM(θ)=Et,q(x1),p(x0)∥vt(ψt(x0))−ddtψt(x0)∥2 (14)L_{CFM}(\theta) = E_{t,q(x_1),p(x_0)}\|v_t (\psi_t(x_0)) -\frac{d}{dt} \psi_t(x_0) \|^2 \ \ \ (14)LCFM(θ)=Et,q(x1),p(x0)∥vt(ψt(x0))−dtdψt(x0)∥2 (14)
ut(x∣x1)=σt′(x1)σt(x1)(x−μt(x1))+μt′(x1) (15)u_t(x|x_1)=\frac{\sigma_t'(x_1)}{\sigma_t(x_1)}(x-\mu_t(x_1)) + \mu_t'(x_1) \ \ \ (15)ut(x∣x1)=σt(x1)σt′(x1)(x−μt(x1))+μt′(x1) (15)
Example II: Optimal Transport conditional VFs
欧拉向量场 VF:
ut(x∣x1)=x1−(1−σmin)x1−(1−σmin)t (21)u_t(x|x_1) = \frac{x_1 - (1-\sigma_{\min})x}{1-(1-\sigma_{\min})t} \ \ \ (21)ut(x∣x1)=1−(1−σmin)tx1−(1−σmin)x (21)
拉格朗日流 Flow:
ψt(x)=(1−(1−σmin)t)x+tx1 (22)\psi_t(x)=(1-(1-\sigma_{\min})t)x+tx_1 \ \ \ (22)ψt(x)=(1−(1−σmin)t)x+tx1 (22)
LCFM(θ)=E(t,q(x1),p(x0))∥vt(ψt(x0))−(x1−(1−σmin)x0)∥2 (23)L_{CFM}(\theta) = E_{(t,q(x_1),p(x_0))}\| v_t(\psi_t(x_0)) - \left( x_1 - (1-\sigma_{\min})x_0\right)\|^2 \ \ \ (23)LCFM(θ)=E(t,q(x1),p(x0))∥vt(ψt(x0))−(x1−(1−σmin)x0)∥2 (23)
ut(ψt(x0)∣x1)=x1−(1−σmin)ψt(x0)1−(1−σmin)t=x1−(1−σmin)((1−(1−σmin)t)x0+tx1)1−(1−σmin)t=x1(1−(1−σmin)t)1−(1−σmin)t−(1−σmin)x0=x1−(1−σmin)x0=ddtψt(x0)\begin{aligned}u_t(\psi_t(x_0)|x_1) &= \frac{x_1 - (1-\sigma_{\min})\psi_t(x_0)}{1-(1-\sigma_{\min})t} \\ &=\frac{x_1 - (1-\sigma_{\min})((1-(1-\sigma_{\min})t)x_0+tx_1)}{1-(1-\sigma_{\min})t} \\ &=\frac{x_1(1-(1-\sigma_{\min})t)}{1-(1-\sigma_{\min})t} - (1-\sigma_{\min})x_0 \\ &=x_1-(1-\sigma_{\min})x_0 \\ &=\frac{d}{dt} \psi_t(x_0) \end{aligned}ut(ψt(x0)∣x1)=1−(1−σmin)tx1−(1−σmin)ψt(x0)=1−(1−σmin)tx1−(1−σmin)((1−(1−σmin)t)x0+tx1)=1−(1−σmin)tx1(1−(1−σmin)t)−(1−σmin)x0=x1−(1−σmin)x0=dtdψt(x0)
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)