引言
FM第一篇文章主要是对FM的合理性进行分析,但其实和SDE一样,最终还是要人为定义实际的公式形式。在FM第一篇文章中,将流定义为公式(1),基于流的可逆性和流与对应向量场构成ODE,进而推导出向量场为公式(2)。
ψ
t
(
x
)
=
σ
t
(
x
1
)
x
+
μ
t
(
x
1
)
u
t
(
x
∣
x
1
)
=
σ
t
′
(
x
1
)
σ
t
(
x
1
)
(
x
−
μ
t
(
x
1
)
)
+
μ
t
′
(
x
1
)
\begin{align*} \psi_t(x)&=\sigma_t(x_1)x+\mu_t(x_1) \tag1 \\ u_t(x|x_1)&=\frac{\sigma_t^{'}(x_1)}{\sigma_t(x_1)}(x-\mu_t(x_1))+\mu_t^{'}(x_1) \tag2 \end{align*}
ψt(x)ut(x∣x1)=σt(x1)x+μt(x1)=σt(x1)σt′(x1)(x−μt(x1))+μt′(x1)(1)(2)
在FM论文中提到,上述公式对于任意函数 μ t ( x 1 ) \mu_t(x_1) μt(x1)和 σ t ( x 1 ) \sigma_t(x_1) σt(x1)是完全通用的,可以将它们设置为满足所需边界条件的任何可微函数。如SDE第三篇文章中的推导内容所示,SDE范式可以将DDPM、Score Matching统一;同样,从FM的角度看,其也能将DDPM、Score Matching统一。
扩散条件向量场
如果读者看完FM第一篇文章,可能会感觉Flow matching没有显式的加噪过程,流直接将先验分布(本文中提到的先验分布都是标准正态分布)导向到目标分布。若按照扩散过程中,加噪过程定义为前向过程,从先验分布去噪得到目标分布为逆向过程,那么Flow matching即没有显式的前向过程,只有显式的逆向过程。
那Flow matching到底有没有从目标分布向先验分布移动的过程呢?我认为是有的,只不过是隐式的,不明显。Flow matching中的前向过程并不是像扩散模型中通过定义显式的加噪分布来进行的,而是从目标分布中的数据推导出先验分布中的数据这一流动作实现的。说到这里,可能有的读者已经意识到了我想表达的内容,即从上述公式(1)推导公式(2)的过程中,我们利用了流的可逆性质,因为流可逆,所以基于公式(1),有
x
=
1
σ
t
(
x
1
)
(
ψ
t
(
x
)
−
μ
t
(
x
1
)
)
(3)
x = \frac{1}{\sigma_t(x_1)}(\psi_t(x)-\mu_t(x_1)) \tag{3}
x=σt(x1)1(ψt(x)−μt(x1))(3)
再将公式(3)配合其他公式可推导出公式(2),详细推导过程可参考笔者写的第一篇FM文章。在此我们观察公式(3),其中的 x 1 x_1 x1是目标分布中的数据样本,而 x x x就是一个从标准正态分布中采样的一个随机噪声,就是先验分布中的一个数据样本,即我们在公式(2)的推导过程中其实是隐式的使用了一个从目标分布到先验分布的前向过程。
那为啥要先在此讨论这个问题呢?因为FM论文中在针对扩散条件向量场定义时,给定的时间下标为 1 − t 1-t 1−t,虽然说明了是从噪声到目标数据的过程,但还是会有些突兀,故想用上述的分析过程来讲述此问题。因为Flow matching中基于定义的流和向量场是直接从时间 t = 0 t=0 t=0的分布导向 t = 1 t=1 t=1的分布,而在扩展过程中,从噪声到目标数据的过程是逆向过程,如果要保持 t t t取值相同,那么时间下标就应该是 1 − t 1-t 1−t。
扩散模型从数据点开始,并逐渐添加噪声,直到它接近纯噪声,此过程可理解为一种具有严格约束的随机过程,使得在任意时间 t 获得封闭形式表示,从而产生具有特定均值 μ t ( x 1 ) \mu_t(x_1) μt(x1)和标准差 σ ( x 1 ) \sigma(x_1) σ(x1)的高斯条件概率路径 p t ( x ∣ x 1 ) p_t(x|x_1) pt(x∣x1)。
Variance Exploding/方差爆炸
从噪声到目标数据逆向过程的方差爆炸路径有以下公式
p
t
(
x
)
=
N
(
x
∣
x
1
,
σ
1
−
t
2
I
)
(4)
p_t(x)=N(x|x_1,\sigma_{1-t}^2I) \tag4
pt(x)=N(x∣x1,σ1−t2I)(4)
看公式(4),再回想一下我们之前在SDE文章中提到的Score machting的前向加噪过程公式:
q
σ
(
x
~
∣
x
)
=
N
(
x
~
∣
x
,
σ
2
I
)
q_{\sigma}(\tilde{x}|x)=N(\tilde{x}|x,\sigma^2I)
qσ(x~∣x)=N(x~∣x,σ2I),对比就会发现两者形式是一样的,只是公式(4)是逆向过程,与加噪方向相反,所以公式(4)中
σ
\sigma
σ的下标是
1
−
t
1-t
1−t。Score matching中前向加噪过程的方差是逐渐降低的,所以逆向过程中方差是逐渐增高的,这也是此种路径为称为方差爆炸路径的由来。基于公式(4),我们知道此逆向过程条件流的均值
μ
t
(
x
1
)
=
x
1
\mu_t(x_1)=x_1
μt(x1)=x1,标准差
σ
t
(
x
1
)
=
σ
1
−
t
\sigma_t(x_1)=\sigma_{1-t}
σt(x1)=σ1−t,将此两项带入公式(2)有
u
t
(
x
∣
x
1
)
=
−
σ
1
−
t
′
σ
1
−
t
(
x
−
x
1
)
(5)
u_t(x|x_1)=-\frac{\sigma^{'}_{1-t}}{\sigma_{1-t}}(x-x_1) \tag5
ut(x∣x1)=−σ1−tσ1−t′(x−x1)(5)
公式(5)就是我们基于Score matching的加噪、去噪过程推导出的符合Flow matching要求的向量场公式,所以Score matching可认为是一种具有方差爆炸特性的Flow matching特例。
Variance Preserving/方差保持
从噪声到目标数据逆向过程的方差保持路径有以下公式
p
t
(
x
∣
x
1
)
=
N
(
x
∣
α
1
−
t
x
1
,
(
1
−
α
1
−
t
2
)
I
)
(6)
p_t(x|x_1)=N(x|\alpha_{1-t}x_1,(1-\alpha^2_{1-t})I) \tag6
pt(x∣x1)=N(x∣α1−tx1,(1−α1−t2)I)(6)
与方差爆炸路径和Score matching一样,公式(6)与DDPM的前向加噪过程的分布一致,只是时间下标为 1 − t 1-t 1−t。公式(6)与公式(4)的不同点是 p t ( x ∣ x 1 ) p_t(x|x_1) pt(x∣x1)和 p t ( x ) p_t(x) pt(x),原因是DDPM的逆向过程预测分布公式是在 x 1 x_1 x1的基础上推导出来的(DDPM中的 x 0 x_0 x0是目标数据,等价于此处的 x 1 x_1 x1),而Score matching的逆向过程并没有引入 x 1 x_1 x1。
基于公式(6)可知,方差保持路径条件流的均值
μ
t
(
x
1
)
=
α
1
−
t
x
1
\mu_t(x_1)=\alpha_{1-t}x_1
μt(x1)=α1−tx1,标准差
σ
t
(
x
1
)
=
1
−
α
1
−
t
2
\sigma_t(x_1)=\sqrt{1-\alpha^2_{1-t}}
σt(x1)=1−α1−t2,看
σ
t
(
x
1
)
\sigma_t(x_1)
σt(x1)的定义可知,其不会超过1,故此种路径称为方差保持路径。根据公式(2),其对应的向量场公式为
u
t
(
x
∣
x
1
)
=
α
1
−
t
′
1
−
α
1
−
t
2
(
α
1
−
t
x
−
x
1
)
(7)
u_t(x|x_1)=\frac{\alpha^{'}_{1-t}}{1-\alpha^2_{1-t}}(\alpha_{1-t}x-x_1) \tag7
ut(x∣x1)=1−α1−t2α1−t′(α1−tx−x1)(7)
公式(7)则是基于DDPM加噪、去噪过程推导出的符合Flow matching要求的向量场公式,故DDPM可视为一种具有方差保持特性的Flow matching特例。
最优传输条件向量场
Flow matching论文指出DDPM、Score matching的扩散过程只是对概率路径的一种约束解,它们实际上在有限时间内没有达到真正的噪声分布。在实践中, p 0 ( x ) p_0(x) p0(x)简单地用合适的高斯分布来近似,用于采样和似然评估;而FLow matching构造提供了对概率路径的完整控制,可以简单地设置 μ t \mu_t μt 和 σ t \sigma_t σt,一种就是基于最优传输条件的向量场。
在Flow matching架构下,
μ
t
\mu_t
μt 和
σ
t
\sigma_t
σt是可以任意定义的,而将其定义为随时间线性变化的形式是一种很好的方式,例如
μ
t
(
x
1
)
=
t
x
1
,
σ
t
(
x
1
)
=
1
−
(
1
−
σ
m
i
n
)
t
(8)
\mu_t(x_1)=tx_1, \quad \sigma_t(x_1)=1-(1-\sigma_{min})t \tag8
μt(x1)=tx1,σt(x1)=1−(1−σmin)t(8)
基于公式(8),其构建的向量场公式为
u
t
(
x
∣
x
1
)
=
x
1
−
(
1
−
σ
m
i
n
)
x
1
−
(
1
−
σ
m
i
n
)
t
(9)
u_t(x|x_1)=\frac{x_1-(1-\sigma_{min})x}{1-(1-\sigma_{min})t} \tag9
ut(x∣x1)=1−(1−σmin)tx1−(1−σmin)x(9)
当时间
t
∈
[
0
,
1
]
t \in [0, 1]
t∈[0,1],公式(9)对应的条件流公式为
ψ
t
(
x
)
=
(
1
−
(
1
−
σ
m
i
n
)
t
)
x
+
t
x
1
(10)
\psi_t(x)=(1-(1-\sigma_{min})t)x+tx_1 \tag{10}
ψt(x)=(1−(1−σmin)t)x+tx1(10)
上述定义中均值和标准差随时间线性变化会得到简单直观的路径,从理论意义上讲也是最优的;条件流 ψ t ( x ) \psi_t(x) ψt(x)实际上是两个高斯分布 p 0 ( x ∣ x 1 ) p_0(x|x_1) p0(x∣x1)和 p 1 ( x ∣ x 1 ) p_1(x|x_1) p1(x∣x1)之间的最优传输路线。直观地说,最优传输路线下的条件流总是以直线轨迹和恒定速度移动。
至此,本文基于Flow matching论文内容,介绍了三种特殊的向量场定义,其中方差爆炸和方差保持分别对应Score matching和DDPM,而最优传输条件向量场则是一种基于最优传输理论的简单路径,假设一下若 σ m i n = 0 \sigma_{min}=0 σmin=0,公式(10)则为 ψ t ( x ) = ( 1 − t ) x + t x 1 = ( x 1 − x ) t + x \psi_t(x)=(1-t)x+tx_1=(x_1-x)t+x ψt(x)=(1−t)x+tx1=(x1−x)t+x,此时的条件流就变成了在时间 t t t内目标数据和噪声数据两者的插值,或者说一条随时间变化的直线。
340



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



