通过整流流实现数据的生成与转换.

给定初始数据xT,扩散模型旨在学习一个演化过程,生成目标数据x0,该过程可以用一个常微分方程 (ordinary differential equation, ODE)来描述:

dxtdt=ft(xt)

其中pT(xT),p0(x0)是已知的,上述ODE旨在设计一个函数ft(xt),使其对应的演化轨迹构成给定分布pT(xT),p0(x0)之间的一个变换。

随机选定x0p0(x0),xTpT(xT),设计函数:

xt=ϕt(x0,xT)

则有微分方程:

dxtdt=ϕt(x0,xT)t

引入一个函数sθ(xt,t)逼近上式右端:

Ex0p0(x0),xTpT(xT)[sθ(xt,t)ϕt(x0,xT)t2]

下面不妨考虑[0,1]的扩散过程,设计变化轨迹ϕt(x0,xT)为直线:

xt=ϕt(x0,xT)=(x1x0)t+x0

对应微分方程:

dxtdt=ϕt(x0,xT)t=x1x0

此时训练目标为:

Ex0p0(x0),xTpT(xT)[sθ(xt,t)ϕt(x0,xT)t2]=Ex0p0(x0),xTpT(xT)[sθ((x1x0)t+x0,t)(x1x0)2]

该模型可以把任何一种数据或噪声转换成另外一种数据,并且只需一步计算就直接产生高质量的结果,而不需要调用计算量大的数值求解器来迭代式地模拟整个扩散过程。