Consistency is All You Need - wrong.wang什么都不用做生成却快了十倍其实也并非完全不可能https://wrong.wang/blog/20231111-consistency-is-all-you-need/[学科基础] 从布朗运动到扩散模型采样算法 - 知乎引言 扩散模型是近年来新出现的一种生成模型,很多工作将其应用在图像、视频、语音以及3D生成等领域,都取得了不错的效果。但是,扩散模型存在的问题也是很明显的,那就是采样速度慢。早期的DDPM算法 ^{[1]} ,生…https://zhuanlan.zhihu.com/p/637923412微分方程:包含未知函数及其倒数的方程叫微分方程,未知函数导数的最高阶数称为微分方程的阶。
常微分方程ODE:如果未知函数是一元函数的微分方程称为常微分方程。
随机微分方程SDE:在常微分方程中增加随机项,就变成了随机微分方程。希望这个噪声平稳,独立且均值为0。
扩散模型这种 x0→xT,xT→x0的过程是一种随机过程,而刻画随机过程的工具自然就是随机微分方程Stochastic Differential Equations(SDE)。
将扩散模型的前向扩散过程建模为连续的随机微分方程,这个前向的SDE存在一个反向的形式,这个反向的SDE为去噪过程提供了数值解,所以可以根据反向SDE的数值解一步一步去噪。并且,这个反向SDE还存在一个等价的ODE形式,本质是基于反向的SDE或ODE完成去噪过程。
consistency model
注意上图,从data到noise是加噪过程是PFODE,逆向SDE可以等价成ODE形式,在去噪的每个节点上都可以进过函数f映射回样本data,即每个点都可以是加噪轨迹的起点,因为每个点都可以通过f映射回样本(在去噪时能和样本关联上),这个就是consistency约束。
当微调diffusion model使其满足consistency约束,其采样生成过程就非常自然,从噪声中采样一个点,送入f中就可以得到对应的数据样本,这就是consistency的单步生成模式。与此同时,consistency model也可以实现多步生成:
从一个噪声生成一个样本,然后给这个预测的样本按照diffusion前向的规则加噪,到达某个中间状态Xt1,然后从Xt1再预测一个样本;接着再加噪在预测,这样就实现了consistency model的多步采样生成。
如上图所示,给定样本X0,经过diffusion前向加噪过程得到Xtn+1,最左边的黑点到最右边的黑点,Diffusion loss约束根据Xtn+1送入网络后的输出计算得到的X0'(\hatX0)与真正的X0一致,这肯定的,diffusion就是这么训练,就是做下角点,consistency model则要求根据这个预测得到的X0'和Xtn+1,执行一次去噪过程得到Xtn',然后继续预测X0',就是上图中的第二次预测的\hatX0,要求这两个X0'一直,显然consistency loss是对diffusion loss的一个加强,或者说更高一阶,基于预测值在预测一个结果,要求第一次预测值和第二次预测值之间的差异足够小。