FlowMatching 算法介绍 ¶
约 710 个字 预计阅读时间 3 分钟
基本定义 ¶
- 轨迹

- 向量场

向量场的含义——在某一时刻内,多维空间下该点上的速度
- 流

流和向量场之间的关系
是可以互相推到出来的
FlowMatching 的基本思想 ¶

训练的思路
- 用神经网络来学习一个向量场 \(u_t^\theta\)。
- 从已知分布 \(p_{init}\) 里采样一个 \(x_0\)。
- 在 NN 学到的向量场 \(u_t^\theta\) 指导下运动到 \(x_1\)。
- 这个流 \(\psi\) 初始点 \(x_0\) 满足 \(p_{init}\),终点 \(x_1\) 满足 \(p_{data}\)。
而神经网络需要通过loss来进行反向传播,因此接下来就涉及到了loss是怎么计算的
那么,我们如何获得 \(u_t^{target}(x_t)?\)
理论推导 ¶
概率路径 ¶
条件概率路径 ¶
概率密度的分布随时间变化公式

边缘概率路径 ¶

求解目标向量场 ¶
目标流构建 ¶
构造一个 flow: $$ psi_t^{target}(x_0|z) = alpha_t z + beta_t x_0 $$
其中 \(\alpha_t = t \quad \beta_t = 1-t\)
当 \(t=0\) 时: $$ alpha_t = 0 quad beta_t = 1 $$ $$ psi_t^{target}(x_0|z) = x_0 $$
当 \(t=1\) 时: $$ alpha_t = 1 quad beta_t = 0 $$ $$ psi_t^{target}(x_0|z) = z $$
因此我们构造的这个目标流满足我们的构造要求
求解目标向量场 ¶
在构建符合要求的流后,根据流与向量场之间的关系计算条件向量场:
其中 \(x_0\) 是满足正态分布的,因此可以得到下面的结果

从上面的推到中不难看出,当目标图片z和采样噪声 \(\varepsilon\) 确定,那么他的速度向量就是确定的
能否用条件向量场作为 Label
是可以的,直观上去理解,通过给定大量的不同的照片z,可以让这个条件向量场逐渐的变为无条件向量场,因此是可以的。推导见下文。
FlowMatching 和 DDPM 的区别
1.FlowMatching 的流是线性的,\(x_t=(1-t)\,x_0 + t\,z,\quad t\in[0,1]\), 路径是确定性直线插值,没有逐步加噪、没有累积高斯噪声方差、没有 \(\bar\alpha\) 累乘项。
2.DDPM 他是马尔可夫决策过程,\(x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon\),虽然 \(\beta\) 是从 0.0001 线性增加到 0.02,但是由于开根号和累乘项,他本质是来学习去噪的噪声的 ( 本来是学习去噪的高斯分布,但是最终化简发现只有噪声一个变量 )