Diffusion Model
Diffusion Model
扩散现象是指物质粒子从高浓度区域向低浓度区域移动的过程,如往水中滴入墨水。DDPM受到启发,将前向加噪也看成是扩散过程,逐步将有意义的原图像完全变成无意义的噪声。
前向加噪
对于一张图片X,通过随机采样生成符合标准正态分布的高斯噪声ε,ε具有与X相同的形状大小,然后对它们做加权平均,得到混合后的下一步图像,需要满足它们权重平方和为1,可写为:
于是乎,
Generally,
可以看到,$\beta$是越来越大,也就是说噪音加的越来越多,到最后接近1(对应于物理现象,扩散速度越来越快)
为了简化后续推导,我们令$\alpha_t=1-\beta_t$, 所以就有:
现在,我们想能不能有公式可以直接一步到位,从$x_0$到$x_t$,不难想象通过逐步替换$x_{t-1}$为$x_{t-2}$…
于是,$x_t=\sqrt{a_t\left(1-a_{t-1}\right)} \epsilon_{t-1}+\sqrt{1-a_t} \times \epsilon_t+\sqrt{a_t a_{t-1}} \times x_{t-2}$
对于前两项正态分布的和,我们有$N\left(0, \alpha_t-\alpha_t \alpha_{t-1}\right)+N\left(0,1-\alpha_t\right)=N\left(0,1-\alpha_t \alpha_{t-1}\right)$.
从而我们可以改写$x_t$,得到:
这里的$\epsilon$仍然满足标准正态分布
类似的,我们就能得到,
数学归纳法,可以得到:
我们的目标是得到x0到xt的表达,将k换为t,可以得到:
我们记$\bar{\alpha}_t=a_t a_{t-1} a_{t-2} a_{t-3} \ldots a_2 a_1$,从而就有:
反向过程
我们的目标是从最后的$x_T$(标准正态分布)恢复为$x_0$,我们先想想怎么从$x_t$恢复为$x_{t-1}$.
利用贝叶斯公式:
我们可以有
注意到,$P(x_{t-1})$和$P(x_{t})$表示的是从x0分别到$x_{t-1}$和$x_{t}$的概率,因此我们可以重写上述式子:
我们先计算$P\left(x_t \mid x_{t-1}, x_0\right)$,由于我们先前已经有:$x_t=\sqrt{1-\alpha_t} \times \epsilon_t+\sqrt{\alpha_t} \times x_{t-1}$,计算$x_t$分布时,$x_{t-1}$是已知的,是一个常数;又因为$\epsilon_t$满足标准正态分布,所以$x_t$分布的均值为: $\sqrt{\alpha_t}x_{t-1}$,方差为$1-\alpha_t$,即$N\left(\sqrt{\alpha_t} x_{t-1}, 1-\alpha_t\right)$.
类似的,我们要计算:
- $P\left(x_t \mid x_0\right)$,就有$N\left(\sqrt{\bar{\alpha}_t} x_0, 1-\bar{\alpha}_t\right)$
- $P\left(x_{t-1} \mid x_0\right)$,就有$N\left(\sqrt{\bar{\alpha}_{t-1}} x_0, 1-\bar{\alpha}_{t-1}\right)$
将分布转化为高斯函数,经化简,可以得到:
我们是要从$x_T$逐步得到$x_0$,但此时$x_0$竟然出现在式子中,这不是死循环了?别急,我们有:
稍加变换,可以得到:
代入回去,可以得到:
好的,现在我们还差最后的$\epsilon$尚未确定,于是乎,利用魔法(神经网络),我们求得其$\epsilon$,然后在上述分布中采样得到$x_{t-1}$。
如此流程,循环往复,最后得到$x_0.$
我们在本节最开始说,从$x_T$(标准正态分布)恢复为$x_0$,为什么$x_T$满足标准正态分布呢?
观察前向过程,对于大T时刻,$\bar{\alpha}$接近于0:
所以,$x_T$约等于$\epsilon$,也就是说$x_T$的图像接近于标准正态分布
上面提到,有神经网络来预测出噪音($\epsilon$),这篇博客讲的很不错,注释清晰:https://juejin.cn/post/7258069406961352764