【Diffusion Models】扩散模型中的Noise Scheduler

您所在的位置:网站首页 schedules怎么读的 【Diffusion Models】扩散模型中的Noise Scheduler

【Diffusion Models】扩散模型中的Noise Scheduler

2024-07-09 14:28| 来源: 网络整理| 查看: 265

扩散模型中的Noise Scheduler Diffusers 中的模块 Schedulers

diffusers的核心是models和schedulers,我们首先简要介绍一下Diffusion的通用pipeline:

在扩散模型的训练过程中,pipeline首先产生一个与输入图片同尺寸的噪声图,在每个时间步(timestep),将噪声图传给model来预测噪声残差(noise residual),然后scheduler根据预测出的噪声残差来得到一张噪声较少的图像,如此反复,直到达到预设的最大时间步,就得到了一张高质量的生成图像。

在了解schedulers之前,首先,我们要区分Diffusion里的scheduler和pytorch里的scheduler,前者是一个采样器(samplers),用于把噪声图像还原为原始图像;后者是一个学习率策略(例如余弦退火策略,指数衰减策略等)

针对Diffusion的scheduler,它的功能是实现逆向扩散,直观上理解的话它就是一个采样器,循环多个step把噪声图像逐渐还原为原始图像。根据采样方式不同,scheduler也有许多版本,包括DDPM,DDIM,DPM++ 2M Karras等。

注意:我们把去噪的过程定义为采样。使用采样的方法,称之为采样器。

各种有关schedulers的代码在diffusers库 diffusers/src/diffusers/schedulers/中可以找到。

以下我们主要介绍一些核心的schedulers的原理

1. DDPM (Denoising Diffusion Probabilistic Models)

DDPM中的model和scheduler对应其文章中的两个algorithm。

model的学习对应于Algorithm1

加噪过程:在重参数的表达下,第t个时刻的输入噪声图片可以表示为, xt=α¯tx0+1−α¯tϵ \bar\alpha_t\。则如文章的示例,可以表示为下图所示:

则去噪(采样)过程,可以由该子序列的反向Markov链替代,由于S长度小于L的长度,可以实现采样加速。

其它Schedulers(Samplers)

本小节主要翻译自引用6。

然而,截止现在,DDPM和DDIM已经被认为是过时的schedulers。

截至目前还有很多其它的Schedulers,能实现更好的性能以及更快速的采样。我们简短介绍一些目前经常用到的schedulers,不再展开它们的技术细节。

PLMS (Pseudo Linear Multi-Step method),DDIM的更快的改进版本。但目前也被认为过时了,很少用到。DPM (Diffusion probabilistic model solver) 和 DPM++。2022年提出的schedulers。它们有相似的架构。DPM++是DPM的改进版本。DPM2 和 DPM adaptive。 DPM2和DPM一样有相似的架构,DPM2是二阶求导,更加精准但是更慢。 DPM adaptive可以自适应的调节步长,可能更慢也可能更快(步长调节不确定)。UniPC(UniPC (ivg-research.xyz))。2023年2月提出,能在5-10步内生成更高质量的图像。

此外,还有一些非常古老的Schedulers,它们是通过常微分方程解得的,如下所示,它们可能已经不再被使用了:

Euler,一个最简单的scheduler。Heun,比Euler更慢但是更精确。LMS(Linear multi-step method),速度和Euler一样,但是更加精确。

一些别的注意事项,Ancestral samplers。

你可能会注意到,有一些samplers带有字母“a"。例如 Eular a,DPM a,DPM++ 2S a等等。它们是ancestral samplers,表示在每个采样过程中,加入了随机的噪声。当然,有一些不带字母a的采样器也有随机噪声,例如上文提到的DDPM。以下是带有随机噪声和不带有随机噪声的可视图对比:

带有随机噪声的生成steps中间结果,Euler a,可以看到,图像的采样过程并没有收敛,如下图所示。

没有随机噪声的生成steps中间结果,Euler,可以看到,图像的采样过程收敛,如下图所示。

为了可复现性,且希望图像收敛。如果你想产生轻微的变化,你应该使用不同的seed,而不是添加随机噪声。

除此之外,借鉴引用6,我们也展示了它们的不同的schedulers/samplers的生成图像。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3