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计算机视觉中的反问题交流学习平台:主要面向硕博、科研工作者在成像反问题领域的科研交流平台,主要包括:重建、超分辨率、图像去噪(去模糊)、图像反卷积、计算成像等基于解析方法(迭代、正则化)、机器学习、深度学习等方法的计算机视觉反问题。进群后麻烦大家按照“工作任务”修改群昵称,如:图像重建、图像超分辨率等。
感谢支持,我们会尽力回答各位同学和同行们的问题!



















