这篇文章认为现有的diffusion noise schedules和sample steps有两个比较大的问题:
- noise scheduler没有保证在最后一个timestep时,信噪比为0。这样会导致模型在训练时sample的均值等低频信息被泄露给网络,但在推理时指定均值为0的高斯噪声,导致推理时无法生成很亮或很暗的图。
- DDIM等采样的step没有从最后一个timestep开始,进一步加剧了上述问题。
推理
Diffusion基础
预先定义扩散率,令,
有 即
则定义信噪比SNR可以被定义为:
现有的几种常见方案

Stable Diffusion使用的这种 Schedule,在最后t=1000的时刻,
其中Stable Diffusion的Schedule的这个问题比较严重,因为最后一步大概有7%的信号是sample,而不是噪声。但cosine schedule很低,可以忽略。
论文提出的解决方案
调整schedule
对于Stable Diffusion这样的schedule,可以定义为0,维持原值,然后响应地线性放缩中间值:
alphas_bar_sqrt -= alphas_bar_sqrt_T
alphas_bar_sqrt *= alphas_bar_sqrt_0 / (alphas_bar_sqrt_0 - alphas_bar_sqrt_T)更换训练target
在保证Zero SNR之后,时刻的网络输入是纯噪声,依然要求网络预测即噪声,已经没什么意义了。因此,应该切换成v-prediction模式,即预测
论文链接:Common Diffusion Noise Schedules and Sample Steps are Flawed