【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents

Hierarchical Text-Conditional Image Generation with CLIP Latents

  • 前言
  • Abstract
  • 1 Introduction
  • 2 Method
    • 2.1 Decoder
    • 2.2 Prior
  • 3 Image Manipulations
    • 3.1 Variations
    • 3.2 Interpolations
    • 3.3 Text Diffs
  • 4 Probing the CLIP Latent Space
  • 5 Text-to-Image Generation
  • 6 Related Work
    • 6.1 GAN
    • 6.2 AE
    • 6.3 DAE
    • 6.4 VAE
    • 6.5 VQ-VAE
    • 6.6 DALL·E
    • 6.7 Diffusion
    • 6.8 Subsection
  • 7 Limitations and Risks
  • 阅读总结

前言

本篇工作即DALL·E2,是文生图领域和多模态领域具有轰动性的工作,其一出现就上了各大板块的热搜。DALL·E2生成的图像丰富且真实,很容易以假乱真。它的实现基于CLIP和扩散模型,前者结合丰富的图文语义,后者生成多样高质量图像,这套组合拳可谓实力十足。下面就来看看这篇工作具体是怎么做的吧。


Paper https://arxiv.org/pdf/2204.06125.pdf
Code https://github.com/lucidrains/DALLE2-pytorch
From arXiv 13 Apr 2022

Abstract

对比学习模型如CLIP展现了其强大的图像语义和风格的表征。为了利用这些表征来进行图像的生成,作者提出了两阶段模型:prior模型通过文本描述生成图像表征,解码器模型根据图像表征生成图像。这种显示生成图像表征可以提高图像的多样性,同时将图像的真实性损失和caption相似性损失降至最低。此外,CLIP的联合嵌入空间能够以零样本的方式进行语言引导的图像操作。作者采用扩散模型作为编码器,相对于自回归模型,扩散模型计算效率更高,产生图片质量更好。

1 Introduction

最近CV领域受到大规模图文数据集的推动,如CLIP,可以学习到更多的图像表征。CLIP对图像分布鲁棒,并且有强大的零样本能力,微调后可以在各种CV和语言下游任务上实现先进结果。与此同时,扩散模型作为一种有前景的生成建模框架,在视觉和视频生成任务上达到了SOTA。扩散模型利用一种引导技术,以牺牲样本多样性为代价提高图像的真实性。
本文工作结合CLIP和扩散模型用于解决文生图问题。作者首先训练扩散解码器用于解码CLIP图像编码,类似GAN的反转,对输入图像进行编码和解码可以产生语义相近的输出图像,还可以通过对图像嵌入差值的反转在图像之间进行差值,本质上就是不同图像之间的融合。
使用CLIP表征的显著优势是能够沿着任何文本编码方向从语义上修改图像,这在GAN上需要碰运气实现。此外,对图像的编码解码还为作者提供了观察图像的哪些特征被 CLIP 识别或忽略的工具。
为了获得完整的生成图像,作者将CLIP编码器与prior模型结合,该模型将CLIP文本表征转换为图像表征。模型对比上,DALL·E2生成的图像质量高,多样性丰富,并且计算效率高。

2 Method

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第1张图片
整个模型流程如上图所示,该模型又称为unCLIP,首先将图像的caption输入到文本编码器中,得到文编表征,这里的文本编码器是预训练好的CLIP模型的编码器。接着将得到的文本编码器输入到prior模型进行转换,得到转换后的图像编码,最后图像编码输入到解码器中生成图像。该过程可以用如下的公式概括:

2.1 Decoder

作者采用扩散模型来处理CLIP的文本embedding,具体来说,作者将CLIP嵌入投影并添加到现有的时间步嵌入和四个额外的上下文token中,这些token连接到GLIDE文本编码器的输出序列。作者保留了文本condition,假设其允许扩散模型学习CLIP无法捕获的自然语言信息。但是结果显示这样的帮助微乎其微。
虽然可以直接从解码器的分布中采样,但是过去的工作表明使用条件信息的知道可以大大提高样本质量。作者在10% 的时间随机将CLIP的嵌入设置为零,并在训练期间随机丢弃50% 的文本caption,来实现classifier free guidence。
为了生成高分辨率图像,作者训练两个扩散上采样模型,第一个将64×64上采样到256×256,第二个将256×256上采样到1024×1024。为了提高上采样器的鲁棒性,作者随机加入了噪声。模型仅使用空间卷积(U-Net),并没有采用注意力层。

2.2 Prior

在Decoder之间,我们需要一个prior模型将文本caption转换为图像嵌入,本文设计了两个不同的模型:

  • Autoregressive(AR) prior:CLIP图像嵌入被转换为理算的code,以caption为条件自回归生成预测。
  • Diffusion prior:连续的图像编码通过caption引导高斯扩散模型进行建模。

为了提高样本质量,作者在训练的10%时间里随机丢弃文本条件,AR和扩散先验都使用无分类器指导进行采样。为了有效从AR先验中进行训练和采样,作者首先应用PCA降低CLIP图像embedding的维度。特别是,当使用SAM训练CLIP时,CLIP表示空间的秩显著降低。通过保留原始1024个主成分中的319个,可以保留几乎所有的信息。接着将主成分进行排序,将每个主成分量化为1024个离散桶,并使用带有因果注意掩码的Transformer预测结果序列,提高了训练的准确性。

3 Image Manipulations

本文的方法允许对任何图像进行重建,这里描绘三种不同类型的操作。

3.1 Variations

给定图像,可以生成具有相同基本内容,但是在形状和方向有所不同的相关图像。作者采用DDIM将解码器应用于二分表示,描述了CLIP识别图像的方向, 编码了解码器重建图像所需的残差信息。作为超参数调整生成图像的多样性。

3.2 Interpolations

DALL·E2还可以混合两个图像。作者使用球形插值在两个图像的CLIP嵌入之间旋转,产生中间CLIP表示,然后输入到模型中进行生成。

3.3 Text Diffs

和其它图像生成模型相比,使用CLIP关键优势是能够将图像和文本嵌入到相同的潜在空间,从而允许应用语言引导图像生成。为了修改图像满足新的文本描述,首先获取图像的CLIP文本嵌入,以及描述当前图像caption的CLIP文本嵌入,接着获取二者的差异并归一化,采用类似的差值方法,即3.2中所描述,来改变图像的生成。

4 Probing the CLIP Latent Space

本文的解码器模型允许直接可视化CLIP图像编码器所看到的内容,从而探索CLIP潜在空间。CLIP有很多错误预测的情况,比如下面的情况,在主体前面覆盖一张写有字的纸,就会导致CLIP无法预测正确的对象,因为CLIP无法学习到相对的位置关系,许多抽象的概念无法理解。

PCA重建提供了另一种探测CLIP潜在空间结构的工具。下图中作者采用少量源图像的CLIP嵌入,并逐渐增加PCA维度来重建它们,然后在解码器上使用DDIM可视化重建的图像嵌入。这允许看懂不同维度编码的语义信息。
【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第2张图片
通过上图可以看到,早期的PCA维度保留了粗粒度的语义信息,而后期的PCA维度则编码更细粒度的细节。

5 Text-to-Image Generation

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第3张图片
实验部分内容也比较多,但是这里只关注模型在MS-COCO数据集上和其它模型的对比,毕竟DALL-E模型之前的表现就很惊艳,只是在评分上并不能让读者很好的信服。可以看到,无论是AR prior还是Diffusion prior,DALL·E2都远远领先其它模型的得分。
在定量分析后,作者还进行了定性分析,将unCLIP模型和GLIDE模型进行了对比,目的是评估模型生成艺术图像和照片的效果。作者利用GPT-3和真实的图像caption生成prompt,用于模型生成图像,接着作者使用AVA数据集训练CLIP线性探针来预测人类审美判断。

作者发现prompt提高了GLIDE和unCLIP的美观质量。下图是美学质量的召回率:
【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第4张图片
理论上,Prompt通常会让模型在真实性和多样性上进行权衡。但是作者发现引导unCLIP不会降低召回率,并且会提高美学质量。

6 Related Work

6.1 GAN

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第5张图片
GAN的工作流程如上图所示,首先生成随机噪声输入到生成器中,得到生成的图像,接着将该图像与真实的图像同时输入到辨别器中进行判断,通过判别损失和生成损失来更新模型参数。注意,这里判别器和生成器参数的更新是交替进行。由于GAN的目标函数就是以假乱真,因此GAN生成的图像保真度高。只是训练不够稳定,容易坍塌,并且生成多样性不够。

6.2 AE

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第6张图片
AE即auto-encoder,给定一个输入 x x x输入到特征编码器中得到 y y y,一般来说这个特征 y y y都会小很多,接着将 y y y输入到解码器中得到 x ~ \tilde{x} x~,目标是重建原始图像。

6.3 DAE

DAE其实就在AE的基础上将输入的 x x x打乱,后面的操作完全一样,并且目标是重建原始图像,而不是打乱后的图像。

6.4 VAE

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第7张图片
VAE的框架和AE相似,但是实际上大不相同。VAE将输入的真实样本拟合到一个正态分布,然后再从这个分布中采样变量,通过生成器生成样本。VAE有些不错的性质,因为它是从分布中采样,所以生成图像的多样性比GAN好的多。

6.5 VQ-VAE

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第8张图片
VQ的含义是对VAE做量化的意思。VAE的缺点在于不方便做大,并且分布也不好去学习。因此将图像的编码和codebook中的编码作对比,将最相似的编码作为解码器的输入,最后生成图像和原始图片进行对比。

6.6 DALL·E

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第9张图片
DALL·E就是在VQ-VAE基础上实现的,文本通过BPE得到文本特征,图像经过VQ-VAE得到图像特征,将二者特征连接到一起,然后输入到GPT中进行自回归生成。推理过程直接使用文本生成文本特征,输入到自回归网络中得到生成的图像。

6.7 Diffusion

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第10张图片
扩散模型相对于其它模型最大的区别在于它的特征和原图是相同尺寸的。它的思想很简单,就是将高斯噪声多轮加入到原始图像中,最终使图像完全变为高斯噪声 z z z,模型(通常是U-Net)负责将得到的高斯噪声 z z z还原回原始图像。由于复原的轮次也和添加噪声的轮次相同,因此在复原时需要前向T轮次,这和GAN不同,GAN只需一次就能将噪声生成图像,因此在效率上diffusion不如其它模型。
具体来说,Diffusion的工作是输入 x t x_t xt,预测 x t − 1 x_{t-1} xt1,然后重复T轮。由于预测回原始图像的任务过于复杂, 因此2020年的PPDM做了进一步的改进,它将预测任务改为了预测添加的噪声,并加入了time embedding,提醒模型现在走到哪一步了。因为不同时间步模型输出的针对性不同,有时候要求细粒度的特征,有时候要求粗粒度的特征。此外,之前预测正态分布的工作都是学习该分布的均值和方差,DDPM提出,只要学习分布的均值就可以得到很好的性能。

6.8 Subsection

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第11张图片
DDPM和VAE有很多相似之处,比如都是编码器-解码器架构,不同之处也很明显,比如扩散模型特征维度保持不变,而VAE中间的特征往往比输入小很多。并且扩散模型有步数的概念。
在DDPM工作出来之后,OpenAI的研究人员就开始着手于将扩散模型更好应用到图像生成上。他们发现扩散模型在大模型上性能表现优异(可扩展性好),并提出新的归一化方式Adaptive group normalization,根据步数进行自适应归一化。此外还提出了classifier guidance的方法,引导模型采样和生成,不仅让采样更逼真,还加快了采样的速度。
上述工作即《Diffusion Models Beat GANs on Image Synthesis》,发表在NeurIPS2021,它的初衷还是在于扩散模型在量化上不如GAN,虽然其生成图像的效果已经很逼真了。这篇工作扩散模型为classifier guided diffusion,其结构如下图所示:
【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第12张图片
在之前扩散模型的基础上,两两生成图像之间添加了一个分类器。这个分类器的梯度引导解码器判断当前图像有没有生成的物体,真不真实。这样的操作让模型生成的图像更为真实,在评分上也有显著的提高,超过了当前最好的GAN模型。这里引导的方式有很多种,可以是风格引导,像素级别引导,特征引导,语言方面也可以用大模型生成引导,这些引导都是condition,这也带来了一定的缺陷,因为这些引导都是用别的模型,会增加训练成本,同时不可控。因此后续又出了classifier free guidence,即在输出时分别输出有条件和无条件输出,学习二者的差距。该方法在后续工作都有所应用。
【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents_第13张图片
接下来就是DALL·E2的动机了。扩散模型中加入分类器的操作,其实就是间接加入语义信息的过程,模型借助语义信息从而生成更真实的图像。那么直接利用语义信息,岂不是能生成更好的图像?那什么模型是直接连接语义和图像信息的桥梁?CLIP!这也是我认为的作者工作的脉络。

7 Limitations and Risks

尽管在CLIP嵌入上调节图像的生成可以提高图像生成的多样性,但是也会带来一定的局限性,特别是,unCLIP在属性绑定上比GLIDE要差。这些属性涉及到一些抽象和复杂的概念,如位置属性,文字属性等, CLIP 嵌入本身没有显式地将属性绑定到对象,并且会经常混淆图像中多个对象的属性。如下图所示:


一个类似的相关的问题是unCLIP难以生成连贯的文本,如下图所示:

CLIP的嵌入无法精确编码渲染文本的拼写信息,再加上BPE的编码模糊了caption中单词的拼写, 会让这个问题变得更糟。此外,模型很难在复杂的场景中生成细节。这可能是解码器层次结构的限制,以更高分辨率训练unCLIP应该能够缓解这个问题,代价是额外的训练和推理计算。

最后探讨安全问题。图像生成模型存在于欺诈和其他有害内容相关的风险,随着图像越来越真实,很容易将生成的图像误认为是真实的图像,这会带来一系列安全问题。

阅读总结

作为文生图的工作,其核心是如何将文本语义和图像语义进行对齐,而CLIP正是学习到丰富的文本语义和图像语义的工作,因此充分利用CLIP丰富的知识,再加上扩散模型的多样性,可以生成高质量和多样的图像。虽然DALL·E2并没有真正将一些复杂的文本语义和图像属性信息对齐,但也取得了巨大的成功,说明这条路是可行的,只需要后续的工作进行进一步的优化和对齐工作,就可以完美解决这样的问题。这也是多模态领域最核心的问题,如果能够将文本、图像、音频、视频等多模态信息在语义上得到对齐,那么大一统模型就将到来,这对人类社会的改变将不可名状。

你可能感兴趣的:(多模态,CV,对比学习,机器学习,人工智能,CLIP,DALL·E,2,文生图,多模态)