Denoising Diffusion Probabilistic Model,DDPM阅读笔记
- 一、去噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM)
一、去噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM)
在本节中,将详细讨论DDPM的相关概念与一些核心的数学推理过程,因为作者认为这些必要的数学推导与运算对理解DDPM有一定的帮助。同时,关于DDPM的详细数学推导,有兴趣的读者可以参考本文最后的参考文献。
扩散模型 (Diffusion Models) 是一类新的最先进的生成模型,可生成各种各样的高分辨率图像。在 OpenAI、英伟达和谷歌成功训练出大规模模型后,它们已经引起了广泛关注。基于扩散模型的示例架构有 GLIDE、DALLE-2、Imagen 和完全开源的 stable diffusion。扩散模型从根本上不同于所有以前的生成方法。直觉上,他们的目标是通过许多小的“去噪”步骤分解图像生成过程(采样)。
1、DDPM概述:扩散过程的表述相对简单,即输入图像
x
0
x_0
x0 ,经过时间T个步骤,逐渐向其添加高斯噪声,我们将其称为前向过程。值得注意的是,这与神经网络的前向传递无关。但是前向过程对于我们的神经网络生成(应用
t
<
T
t<T
t<T添加噪声步骤后的图像)目标是必要的。之后,通过反转噪声过程来恢复原始数据,训练神经网络。通过能够对逆向过程建模,我们可以生成新数据。这就是所谓的反向扩散过程,或者通俗地说,就是生成模型的采样过程。
更具体些,对于一个T步的扩散模型,每一步的索引为t。在前向过程中,我们从一个真实图像
x
0
x_0
x0开始,在每一步我们随机生成一些高斯噪声,然后将生成的噪声逐步加入到输入图像中,当T足够大时,我们得到的加噪后的图像便接近一个高斯噪声图像,例如DDPM中
T
=
1000
T=1000
T=1000。在后向过程中,我们从噪声图像
x
T
x_T
xT开始(训练时是真实图像加噪的结果,采样时是随机噪声),通过一个神经网络学习
x
T
−
1
x_{T-1}
xT−1到
x
t
x_{t}
xt添加的噪声,然后通过逐渐去噪的方式得到最后要生成的图像。
2、正向扩散过程:
正向扩散过程(forward diffusion)描述:给定初始数据分布
x
0
q
(
x
)
x_0~q(x)
x0 q(x),可以不断地向分布中添加高斯噪声(高斯噪声的标准差是根据固定值
β
t
\beta_t
βt确定,而均值是根据固定值
β
t
\beta_t
βt和当前时刻t的状态
x
t
x_t
xt确定的),因此DDPM的正向扩散过程是一个Markov过程。随着时间步长t的增大(
t
−
>
T
t->T
t−>T)最终数据
x
T
x_T
xT变成了一个各项独立的高斯分布,如图6所示。
数学过程的描述:假设初始时刻
q
(
x
0
)
q(x_0)
q(x0)是真实图像的分布,我们可以通过从训练集的真实图像中随机采样一张图像,表示为
x
q
(
x
0
)
x~q(x_0)
x q(x0)。那么如图6所示的前向过程
q
(
x
t
∣
x
t
−
1
)
q(x_t|x_{t-1})
q(xt∣xt−1)指的是在前向的每一步通过向图像
x
t
−
1
x_{t-1}
xt−1中添加高斯噪声得到
x
t
x_t
xt。根据前面的描述,加入的高斯噪声均值为
,方差为
,那么
根据前述分析,DDPM的正向扩散过程可以认为是一个Markov过程,那么从输入
x
0
x_0
x0到
x
T
x_T
xT的后验概率分布可以表示为
上述过程需要重复采样 次。为了获得在任何时间步长上的可操作闭式采样(即从初始状态
x
q
(
x
0
)
x~q(x_0)
x q(x0)),可以使用重参数化技巧。下面对上面的后验概率进行重参数化推导:
3、逆向扩散过程:
DDPM的前向过程是将已知的数据通过不断的加入噪声,当时间步长T逼近无穷时隐变量
x
T
x_T
xT可以认为是一个各向同性的高斯分布。反之,DDPM的反向过程
p
(
x
t
−
1
∣
x
t
)
p(x_{t-1}|x_t)
p(xt−1∣xt)则是一个去噪过程。即我们先在T时刻随机采样一个二维高斯噪声,然后逐步进行去噪,最终得到一个和真实图像分布一致的生成图像
x
0
x_0
x0。
DDPM的核心过程是如何进行上述去噪过程,因为反向扩散过程
p
(
x
t
−
1
∣
x
t
)
p(x_{t-1}|x_t)
p(xt−1∣xt)是未知的。扩散模型指出,我们可以使用一个神经网络学习这个去噪过程。原因是在扩散过程中,时刻t的分布
x
t
x_t
xt是已知的,所构建的神经网络的目的是根据t来学习
x
t
x_t
xt的概率分布函数。综上分析,DDPM的反向过程可以建模为
p
(
x
t
−
1
∣
x
t
)
p(x_{t-1}|x_t)
p(xt−1∣xt),其中KaTeX parse error: Undefined control sequence: \thea at position 1: \̲t̲h̲e̲a̲是网络模型参数,通常可以用SGD等策略对该网络进行优化。
DPM原文指出,在前向扩散过程中每一个时刻向隐变量中加入高斯噪声,为了简化模型的训练难度,DDPM假设反向去噪过程滤除的也是高斯噪声。理论来说,一个随机高斯噪声是根据参数均值和方差所确定,那么
p
(
x
t
−
1
∣
x
t
)
p(x_{t-1}|x_t)
p(xt−1∣xt)可以表示为
其中均值和方差均是根据模型计算得到的。同时,在推理DDPM的前向扩散过程中我们假设每一个时间扩散均为Markov过程,那么通过马尔可夫链得到扩散模型的后向过程可以表示为
4、目标数据的似然函数分析:
DDPM的损失函数使用变分自编码器的最大化证据下界(Evidence Lower Bound, ELBO)的思想来推导,推导详细过程见论文[3]的式(47)到式(58),这里主要用到了贝叶斯定理和琴生不等式。DDPM的损失函数是在负似然对数的基础上加上一个KL散度构成负似然对数的上界(上界越小,负似然对数越小,进而似然对数就越大)。
本篇文章原创Zichen Wang,医学图像重建大佬。我们的公众号为:成像与视觉
主要内容包含如下:
1、IEEE Trans/Journal投稿交流平台:主要面向有意向在(或已投稿)IEEE Transactions和Journal期刊上进行投稿的同行学习。群内定期更新IEEE主要期刊投稿官网、投稿注意事项,同时审稿周期、审稿流程问题可以在群内相互交流以及如何催搞等相关问题。请按照“投稿期刊+关键词”修改,例如TMI—MR重建,TIM—雷达测量,JBHI—生物信息学等。
2、Medical Image Processing医学图像处理与分析交流平台:主要面向硕博、科研工作者在医学图像领域的科研交流平台,主要包括医学图像重建、分割、配准、去噪、超分、分类等相关任务以及基于AI方法的医学图像处理相关话题的学习和讨论,图像模态主要包括(但不限于)CT、MR、Ultrasound、PET、OCT、ET、PT等其他图像种类。定期分享领域内相关期刊、会议,并提供CT、MR入门的相关国内外经典教材与配套讲义。请按照“图像模态+研究任务”修改,如:MR—加速重建,低剂量CT—重建。
3、Inverse Problems for CV计算机视觉中的反问题交流学习平台:主要面向硕博、科研工作者在成像反问题领域的科研交流平台,主要包括:重建、超分辨率、图像去噪(去模糊)、图像反卷积、计算成像等基于解析方法(迭代、正则化)、机器学习、深度学习等方法的计算机视觉反问题。进群后麻烦大家按照“工作任务”修改群昵称,如:图像重建、图像超分辨率等。
感谢支持,我们会尽力回答各位同学和同行们的问题!