MLNLP
(
机器学习算法与自然语言处理
)社区是国内外知名自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
转载自 | RUC AI Box

作者|杨锦霞

机构|中国人民大学
研究方向|多模态学习
引言扩散模型是一类生成模型,通过迭代去噪过程将高斯噪声转换为已知数据分布的样本,生成的图片具有较好的多样性和写实性。文本生成图像是多模态的任务之一,目前该任务的很多工作也是基于扩散模型进行构建的,如GLIDE、DALL·E2、Imagen等,生成的图片让人惊叹。本文从介绍扩散模型的理论部分开始,主要介绍DDPM一文中涉及到的数学公式,然后介绍扩散模型中常用到的指导技巧,最后会介绍文本生成图像的一些应用。
1
『扩散模型』
上图展示了扩散模型的两个过程。其中,从右到左(从  到  )表示正向过程或扩散过程,从左到右(从  到  )表示的是逆向过程。扩散过程逐步向原始图像添加高斯噪声,是一个固定的马尔科夫链过程,最后图像也被渐进变换为一个高斯噪声。而逆向过程则通过去噪一步步恢复原始图像,从而实现图像的生成。下面形式化介绍扩散过程、逆扩散过程和目标函数,主要参考DDPM[1]论文和What are Diffusion Models?[2]博客内容。
1.1 扩散过程
设原始图像  ,扩散过程进行  步,每一步都向数据中添加方差为  每一步都向数据中添加方差为  ,最终  。所以,由马尔科夫链的无记忆性,可对扩散过程进行如下定义:
所以,扩散过程的均值和方差是已知的,其均值为  ,方差为  。
扩散过程有一个显着特性,我们可以对任意   进行采样。为了证明该性质需要使用参数重整化技巧:假设要从高斯分布  中采样  时,可以先从  采样出   ,然后计算    ,这样可以解决梯度无法回传问题。
所以首先将  进行重参数化:设  , 故:
 设  ,  :
 其中   ,第三行到第四行进行了两个正态分布的相加。所以,重整化后   ,即  1.2 逆扩散过程
逆扩散过程是从给定的高斯噪声中恢复原始数据,也是一个马尔可夫链过程,但每个时刻   的均值和方差需要我们去学习,所以,我们可以构建生成模型   :

1.3 目标函数
扩散模型使用负对数似然最小化的思想,采用近似的技术等价地要求负对数似然最小化。同时,由于KL散度具有非负性,因而将  和  的KL散度添加至负对数似然函数中,形成新的上界。
  对于全部的训练数据,添加上式两边同乘   ,即:
 对上式进行化简:
 上式中第四行到第五行,利用了马尔可夫链的无记忆性和贝叶斯公式:
第六行到第七行是第二个求和符号展开并化简的结果。
上述过程在DDPM论文中的附录部分也有展示。
观察  可知,  项的两个分布均已知,同时DDPM文中将  项设置为一个特殊的高斯分布。故最后的目标只和  有关。
同时,虽然  无法直接给出,但当我们加入  作为条件时,设
类似上面的处理,根据贝叶斯公式和马尔可夫性质,可知
然后由公式(1)(4)可知:
 由于高斯分布的概率密度函数是:
将上面两个式子进行一一对应,可以得到均值:
 所以,由高斯分布的KL散度计算式可知,  可化为:
因此,我们可以直观地看到其目标含义是模型预测的均值  要尽可能和  接近。然后,由公式   可知,输入   不含参数,则在给定  时,若   能够预测出  ,则也能够计算出均值,所以同样进行参数重整化,可得:
所以:
 DDPM论文中最终的简化目标为:
所以可以看出,从预测均值变为了直接预测噪声,加快了推理速度。
2
『Guided Diffusion』
DDPM论文提出之后,扩散模型就可以生成质量比较高的图片,具有较强的多样性,但是在具体的指标数值上没有超过GAN。同时,在协助用户进行艺术创作和设计时,对生成的图像进行细粒度控制也是一个重要的考虑因素。所以之后尝试将一些具体的指导融入扩散模型中去。
2.1 Classifier Guidance
用于图像生成的GAN的相关工作大量使用了类标签,而我们也希望生成的图片更加写实,所以有必要探索在类标签上调整扩散模型。具体来说,Diffusion Models Beat GANs[3]一文中使用了额外的分类器  ,在前面我们描述的无条件的逆向过程的基础上,将类别作为条件进行生成,具体公式如下:
上式的含义是加入类别作为条件进行生成,可以看作无条件的生成和分类两者的结合。具体而言,用分类模型对生成的图片进行分类,得到预测与目标类别的交叉熵,从而使用梯度帮助模型的采样和生成。
实际中,分类器  是在噪声数据  上训练的。
采样过程的算法如下:
可以看到该过程中同时学习均值和方差,然后加入分类器的梯度引导采样过程。
2.2 Semantic Diffusion Guidance (SDG)
看到分类器指导的图像生成的有效性后,自然而然可以想到:是否可以将图像类别信息换为其他不同类型的指导呢?比如使用CLIP模型作为图像和文本之间的桥梁,实现文本指导的图像生成。
Semantic Diffusion Guidance(SDG)[4]是一个统一的文本引导和图像引导框架,通过使用引导函数来注入语义输入,以指导无条件扩散模型的采样过程,这使得扩散模型中的生成更加可控,并为语言和图像引导提供了统一的公式。
从采样过程可以看出,不同的引导其实就是  中  的不同,可以是文本、图像,也可以是两者的结合。
2.3 Classifier-Free Guidance
以上方法都是使用了额外的模型,成本比较高,而且须在噪声数据上进行训练,无法使用预训练好的分类器。Classifier-Free Guidance[5]一文提出在没有分类器的情况下,纯生成模型可以进行引导:共同训练有条件和无条件扩散模型,并发现将两者进行组合,可以得到样本质量和多样性之间的权衡。
原来分类器指导的式子如下,  表示条件,  和  含义类似:
Classifier-Free Guidance方法将模型的输入分为两种,一种是无条件的   ,另一种是有条件的  ,使用一个神经网络来参数化两个模型,对于无条件模型,我们可以在预测分数时简单地为类标识符  设为零,即  。我们联合训练无条件和条件模型,只需将  随机设置为无条件类标识符即可。然后,使用以下有条件和无条件分数估计的线性组合进行抽样:
3. 应用

3
『应用』
3.1 GLIDE
OpenAI的GLIDE[6]将扩散模型和Classifier-Free Guidance进行结合去生成图像。同时文中比较了两种不同的引导策略:CLIP Guidance和Classifier-Free Guidance,然后发现Classifier-Free Guidance在照片写实等方面更受人类评估者的青睐,并且通常会产生很逼真的样本,并能实现图像编辑。其中,Classifier-Free Guidance中的条件是文本。

下表是GLIDE在MS-COCO上的实验结果。
除了零样本生成之外,GLIDE还具有编辑功能,允许迭代地改进模型样本。
3.2 DALL·E 2
DALL·E2[7]利用CLIP来生成图像,提出了一个两阶段模型:一个先验prior网络用于生成一个给定文本下的 CLIP 图像嵌入,一个解码器decoder在给定图像编码的情况下生成图像。DALL·E2对解码器使用扩散模型,并对先验网络使用自回归模型和扩散模型进行实验,发现后者在计算上更高效,并产生更高质量的样本。
具体来说:
  • prior :在给定文本条件下生成CLIP图像的编码,并且文中探索了两种实现方式:自回归和扩散,均使用classifier-free guidance,并且发现扩散模型的效果更好:
    注意此处目标和前面有所不同,prior直接去预测图像特征,而不是预测噪声
  • decoder  :在图像编码(和可选的文本标题)条件下生成图像;使用扩散模型并利用classifier-free guidance和CLIP guidance在给定CLIP图像编码的情况下生成图像。为了生成高分辨率图像,训练了两个扩散上采样模型,分别用于将图像从64*64上采样到256*256、进一步上采样到1024*1024。
  • 将这两个部分叠加起来会得到一个生成模型  可以在给定标题  下生成 图像  :  。第一个等号是由于  和   是一对一的关系。
  • 所以DALL·E2可以先用prior采样出  ,然后用decoder得到  ;
DALL·E2能够生成高分辨率、风格多样的图片,并且能够给定一张图,生成许多风格类似的图片;可以进行两张图片的插值,实现风格的融合等,在具体数值上也超越了GLIDE。

3.3 Imagen

下图是谷歌提出的Imagen[8]的模型架构:
Imagen由一个文本编码器和一连串条件扩散模型组成。
  • 预训练文本编码器:语言模型是在文本语料库上训练的,该语料库比配对的图像-文本数据要大得多,因此可以接触到非常丰富和广泛的文本分布。文中使用Frozen Text Encoder进行文本的编码
  • 扩散模型和classifier-free guidance:使用前面提到的classifier-free guidance,将文本编码作为条件,进行图像的生成。同样,后面也有两个扩散模型进行分辨率的提升,最终可以生成1024*1024分辨率的图像。文本到图像扩散模型使用改进的U-Net 架构,生成64*64 图像,后面两个扩散模型使用本文提出Efficient U-Net,可以更节省内存和时间。
我们使用FID分数在COCO验证集上评估Imagen,下表展示了结果。Imagen在COCO上实现了最好的zero-shot效果,其FID为7.27,优于前面的一系列工作。

参考

  1. 1. Denoising Diffusion Probabilistic Models
  2. 2. https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
  3. 3. Diffusion Models Beat GANs on Image Synthesis
  4. 4. More Control for Free! Image Synthesis with Semantic Diffusion Guidance
  5. 5. Classifier-Free Diffusion Guidance
  6. 6. GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
  7. 7. Hierarchical Text-Conditional Image Generation with CLIP Latents
  8. 8. Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding
技术交流群邀请函
△长按添加小助手
扫描二维码添加小助手微信
请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP社区 是由国内外自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名自然语言处理社区,旗下包括  万人顶会交流群、AI臻选汇、MLNLP英才汇  以及  AI学术汇  等知名品牌,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。
继续阅读
阅读原文