当前位置:首页|资讯|Stable Diffusion|编程

Stable Diffusion原理-第3部分

作者:吃玉米的大嘴怪发布时间:2023-11-09

因为现在stable diffusion的代码都使用DDPM进行训练,DDIM进行采样,DDPM就是之前介绍过的扩散模型,现在补充介绍一下DDIM.

DDIM来自论文《Denosing diffusion implicit models》,是为了解决扩散模型推理速度慢引入进来的。DDPM的推理过程是什么样呢,每次我们需要从第t步推到第t-1步:这样如果总共步数是1000步的话,这表示我们这样的操作要做1000次!那我们能减少总共的步数吗?这是不行的,还记得之前的公式:

足够大时,才会越接近0,最后的分布才会越接近于正态分布!所以T的值必须得大些。那我们推理时,可以跳步进行降噪吗?这显然也不行,既然前向扩散是一个马尔可夫过程,那么它的逆过程显然也是马尔可夫过程,我们去噪的过程也应该与加噪一样是一步一步的。

那现在怎么做呢,看起来只要前向过程是一个马尔可夫过程,后向过程就必须一步一步向前推,我们可以把前向过程不看作一个马尔可夫过程吗?回想一下之前的DDPM的推理,我们之所以把前向看作马尔可夫过程,是因为我们假定我们前向过程的所有公式都是由:

的结果只与有关。

但是在计算过程中,其实我们还推出一个公式:

的结果好像也可以不依赖于,由直接推出。

因此,我们能不能假设其实前向过程也可以是一个非马尔可夫的过程,满足分布:

吗?

我们来算一下:

,其在DDPM中的所有式子仍然是成立的!

,其中s<t.

是根据前向过程已知的,但是是未知的。在这里可以做一个大胆的假设,因为在DDPM中:

的线性组合,为与有关的超参数,因此我们可假定:

即:

由于:

也就有等式:

计算结果为:

的分布。

是如何选择的呢,论文里提到的值其实可以做为一个超参数进行设置,因为其实设为多少,都不影响上面式子的成立。其中最容易想到的是使用,因为这就是DDPM的方差,其实论文中后面有实验部分分析不同方差的影响,将方差数据在0到中变动,发现0的时候效果反而比较好,使用较小的方差,可以降低采样步数的影响,用较小的采样次数,就可以得到较好FID值,反而采用较大的方差时,较小采样步数和较大采样步数生成的结果差异较大。

时,就按上面计算的结果进行采样就可以了。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1