分享

AI Lab | 学习笔记:DALL-E 2——基于CLIP潜在表示的文本-to-图像生成模型

 520jefferson 2022-12-09 发布于北京
Image

生成任务是深度学习领域的重要分支之一,今年,由OpenAI发布的DALL-E2横空出世,其强大的功能令文本生成图像任务迎来了巨大的发展。下文将对DALL-E2模型的原文 Hierarchical Text-Conditional Image Generation with CLIP Latents 进行介绍。


00

文本-图像生成,顾名思义就是利用文本描述生成对应的图像,其重点在于文本表示到图像表示的转化。为了实现这一功能,DALL-E2利用当下火热的CLIP(表示模型)和扩散模型(生成模型)作为核心模块。
简单说,就是使用CLIP作为图文预训练模型,获得文本描述和图像的嵌入表示(embedding),再通过Diffusion Model(扩散模型)的思路构建生成过程。
接下来将对CLIP和Diffusion Model进行简单介绍。

CLIP

Image

最初设计的主要目的是实现图像分类的zero/few-shot,即对训练集中没有的标签(或训练标签很少)的图像也可以实现分类。
为此,CLIP直接使用文本描述作为图像的标签,通过大量的图文对数据和语义匹配的学习,令模型能够在预测阶段充分利用语义信息。
预测时采用prompt learning思路构造文本标签“A photo of a{object}”,计算出与图像最匹配的文本作为类别{object}。
在此过程中,模型也拥有了强大的图文表示能力

扩散模型

ImageDiffusion model 是一种图片生成的范式。它有两个过程,分别为扩散过程逆扩散过程
目前大多扩散模型都基于Google于2020年提出的DDPM(Denoising Diffusion Probabilistic Model)框架所设计。

如上图所示,扩散过程为从右到左 的过程,表示对图片逐渐加噪,是一个马尔科夫过程。是从真实数据集中采样得到的一张图片,对其添加T次噪声,图片逐渐变得模糊,当T足够大时,变为标准正态分布。
在训练过程中,每次添加的噪声是已知的,根据马尔科夫过程的性质可以递归得到

逆扩散过程为从左到右的过程,表示从噪声中逐渐复原出图片。若能知道,那就能够从任意一张噪声中经过一次次采样得到一张图片,从而达成图片生成的目的。但显然这是很难的,因此训练网络来近似。很巧妙的是,虽然不知道,但是可以用表示的,因此可以用可知的来指导进行训练。

本文采用的是DDPM的一种改进,DDIM。它重写逆扩散(生成)过程,用“非马尔可夫过程”进行采样,仅要求边缘分布不变。由于可以进行“跳步”采样,DDIM实现了采样的加速。

01. Introduction

CLIP嵌入具有许多理想的特性:它们对图像分布的变化具有鲁棒性,具有令人印象深刻的零样本(zero-shot)能力,并经过微调,可在各种视觉和语言任务中实现最先进的结果。
同时,扩散模型已经成为一种很有前途的生成建模框架,推动了图像和视频生成任务的最新进展。
为了获得最佳结果,OpenAI利用了一种引导技术,即Guided Diffusion。这个方法一个很大的优点是,不需要重新训练扩散模型,只需要在前馈时加入引导既能实现相应的生成效果。该技术以牺牲样本多样性为代价提高了样本保真度(对于图像来说,是摄影真实感)。


在这项工作中,作者结合这两种方法来解决文本条件下的图像生成问题,提出了一个两阶段模型:
一个Prior模型生成给定文本标题的CLIP图像嵌入,一个Decoder生成基于图像嵌入的图像。

  • 作者证明了,显式生成图像表示提高了图像多样性,在摄影真实感和标题相似性方面损失最小。
  • 解码器以图像表示为条件,也可以产生图像的变化,保留其语义和风格,同时改变图像表示中缺少的非必要细节。
  • 此外,CLIP的联合嵌入空间可以实现语言引导的zero-shot图像处理。

在图像生成过程中,decoder通过反转CLIP图像编码器生成图像,因此,本文提出的完整的文本条件图像生成堆栈(text-conditional image generation stack)称为unCLIP

当然,这种先将文本表示转换成显式的图像表示,再用图像表示生成图像的两阶段方法,并非是这一任务的固定思路。
也有其他的生成模型并未采用首先将文本表示转换成图像表示的方式,而是直接用扩散模型从文本表示生成图像。例如:

  • 同为OpenAI提出的更早的GLIDE.
  • Google稍后提出的Imagen.(利用文本预训练模型T5来获得文本表示)

然而本文采用的使用CLIP图像嵌入来生成图像的方式也自有其优势,将会在后续的实验部分中阐述。

02. Method

训练数据集由图像和对应的文本描述组成。给定一个图像,令分别表示图像和文本经过CLIP模型得到的表示(CLIP image embedding和CLIP text embedding)。

模型训练包括两步:
1、先验,它产生以标题y为条件的CLIP图像嵌入 .

·训练Prior(先验)模型。
CLIP图像嵌入真实标签 ,训练模型将CLIP文本嵌入转化成CLIP图像嵌入(将CLIP图像嵌入看作图像的先验)。
这一转化过程可以采用扩散模型,也可以采用自回归编码器(Auto Encoder, AR)。
(下文中,作者对自回归模型和扩散模型进行了实验,发现后者计算效率更高,且产生更高质量的样本。)

2、解码器,它根据CLIP图像嵌入(和可选的文本标题)生成图像

·训练Decoder(图像生成器)。
以图像和CLIP图像嵌入对作为扩散模型的两端,学习模型从CLIP图像嵌入生成图像

下图是对unCLIP的high-level概述:Image图2:虚线上方是对CLIP模型学习过程的一个简单展示。在本文中,CLIP作为一个已经预训练好的表示模型,获得文本和图像的联合表示空间的嵌入。本文中作者不去改变CLIP参数,在先验和解码器的训练期间均保持冻结。
虚线下方描述了本文提出的DALL E-2模型流程。文本到图像的生成过程为:首先将CLIP文本嵌入送到自回归或扩散,生成图像嵌入,然后使用该嵌入来调节生成最终图像的扩散解码器。


先验学习图像嵌入本身的生成模型,解码器在给定的CLIP图像嵌入条件下对图像进行反转。将这两个部分叠加,得到图像给定标题的生成模型:

第一个等式成立是因为是x的确定性函数,第二个等式成立是因为链式法则。因此可以从真实条件分布中采样,首先使用先验对进行采样,然后使用解码器对进行采样。

03. Image Manipulations

本文的方法允许模型将任何给定的图像编码为两部分潜在表示bipartite latent representation,这足以使解码器产生精确的重构。

潜在的描述了被CLIP识别的图像的各个方面,而潜在的对解码器重构x所需的所有剩余信息进行编码。
前者是通过简单地用CLIP图像编码器对图像进行编码获得的。后者是通过使用解码器对应用DDIM反转(在zi的条件下)而获得的。

下文描述了这种二部表示所支持的三种不同的操作。

Variations

给定一个图像x,模型可以生成具有相同基本内容 但在其他方面有所不同的相关图像,例如形状和方向(图3)。
Image图3:用CLIP编码然后用扩散模型解码的输入图像的变量。这些变化既保留了绘画中时钟的存在和标志中重叠的笔画等语义信息,也保留了绘画的超现实主义和标志中的颜色渐变等风格元素,同时改变了非关键细节.


为实现此功能,将解码器应用于二部表示,使用的DDIM进行采样。

时,解码器变得确定,并将重建给定的图像。而较大的值为连续的采样步骤引入了随机性,导致感知上以原始图像为“中心”的变化。

随着的增加,这些变化告诉我们在CLIP图像嵌入中捕获了什么信息(因此在整个样本中保存了),以及什么信息丢失了(因此在整个样本中发生了变化)。
通过在图像的CLIP图像嵌入和从两个描述产生的CLIP文本嵌入的归一化差异之间进行插值,将文本差异应用于图像。(此外还执行DDIM反转以完美地重建第一列中的输入图像,并修复每行上的解码器DDIM噪声。)

Interpolations

还可以混合两个图像进行变化(图4),遍历CLIP嵌入空间中发生在它们之间的所有概念。
Image图4:通过插值CLIP图像嵌入,然后使用扩散模型解码,得到的两幅图像之间的变量。在每行中固定解码器种子。中间变体自然地混合了两个输入图像的内容和风格。


为此,使用球面插值在它们的CLIP嵌入之间旋转,当从0变为1时,产生中间CLIP表示

有两个选项可以沿轨迹产生中间DDIM潜在表示(latents)。
第一个选项涉及到在它们的DDIM反转潜在之间进行插值(通过设置,这将产生一个单一的轨迹,其端点重构
第二个选项涉及将DDIM潜在值固定为轨迹中所有插值的随机采样值。这导致之间有无限数量的轨迹,尽管这些轨迹的端点通常不再与原始图像重合。在图4中就使用了这种方法。

Text Diffs

与其他图像表示模型相比,使用CLIP的一个关键优势是它将图像和文本嵌入到相同的潜在空间,从而允许模型应用语言引导的图像处理(即文本差异),如图5所示。
Image图5:通过在图像的CLIP图像嵌入和从两个描述中产生的CLIP文本嵌入的归一化差异之间进行插值,将文本差异应用于图像。作者还执行DDIM反转以完美地重建第一列中的输入图像,并修复每行上的解码器DDIM噪声。


为了修改图像以反映新的文本描述,首先获得其CLIP文本嵌入,以及描述当前图像的文本的CLIP文本嵌入。(除了对当前图像的描述,还尝试使用一个虚拟的标题,比如“一张照片”作为基线,或将其完全删除。这些也很有效。)
然后,通过取它们的差值并进行归一化,从这些值中计算向量
之后可以使用球面插值在图像CLIP嵌入和文本差异向量之间旋转,产生中间CLIP表示,其中从0线性增加到最大值(通常为[0.25,0.50])。通过对插值进行解码来产生最终输出。(在整个轨迹中将基础DDIM噪声固定为。)

04. Probing the CLIP Latent Space

解码器模型通过允许直接可视化CLIP图像编码器所看到的内容,提供了探索CLIP潜在空间的独特机会。
这可以帮助我们重新审视CLIP做出错误预测的案例,例如排版攻击(typographic attacks)。
(在这些对抗性图像中,一段文本覆盖在对象的顶部,这导致CLIP预测文本描述的对象,而不是图像中描述的对象。)如图6是一个例子,其中苹果可能被错误地分类为iPod。
Image图6:具有typographic attacks的图像的变量与CLIP模型在三个标签上的预测概率配对。令人惊讶的是,即使该标签的预测概率接近0%,解码器仍能恢复“Granny Smith”苹果。此外还发现CLIP模型对不同攻击的敏感性不一样(eg.“iPod”高于“Pizza”)。


PCA重建提供了探测CLIP潜在空间结构的另一种工具。
在图7中,作者获取了少数源图像的CLIP图像嵌入,并用逐渐增加的PCA维度重建它们,然后使用模型的解码器,在固定种子上使用DDIM可视化重建的图像嵌入。这允许我们看到不同维度编码的语义信息。
Image图7:从逐渐增加的PCA维度(20、30、40、80、120、160、200、320维度)重建CLIP隐向量的可视化,原始源图像位于最右侧。较低的维度保留粗粒度的语义信息,而较高的维度编码关于场景中对象的精确形式的更细粒度的细节。

图7还显示了AR先验是如何建模的,因为AR先验被训练成按照这个顺序明确预测这些主要成分。

05. Text-to-Image Generation

Importance of the Prior

本文训练了一个先验(Prior)来从文本描述生成CLIP图像嵌入。不过先验对于文本描述到图像的生成也并不是严格必要的。
例如,在采样时,可以直接将文本描述输入解码器;或者,向解码器提供CLIP文本嵌入。Image图8:前两行描述了通过这两种方式获得的样本;第三行描述了使用先验获得的样本。仅在文本描述上调整解码器显然是最糟糕的,但在CLIP文本嵌入上的zero-shot调整也会产生合理的结果。


基于这一观察,可以考虑训练解码器以适应CLIP文本嵌入,而不是CLIP图像嵌入(尽管将失去第4节中提到的功能)

为了比较直接用CLIP文本嵌入生成图像和DALL-E2的思路,作者训练了两个小型模型:一个基于CLIP文本嵌入的小型解码器,以及一个小型DALL-E2(或称为unCLIP堆栈,包括扩散先验和解码器)。
然后,比较来自文本嵌入解码器的样本、来自unCLIP堆栈的样本,以及通过向unCLIP解码器提供文本嵌入获得的样本,(浏览所有模型的引导尺度)。
实验发现unCLIP在测试集上取得了最好的的FID得分。另外,对前两个设置进行了人类评估,使用人类评估代理模型对每个设置的采样超参数进行扫描。实验发现,人们在57.0%±3.1%的时间内更喜欢完整的unCLIP堆栈。

鉴于先验的重要性,有必要评估训练它的不同方法。
作者在整个实验中比较了AR和扩散先验。在所有情况下,在相似的模型大小和减少的训练计算下,扩散先验优于AR先验。

Human Evaluations

可以观察到,unCLIP能够合成复杂的、真实的图像。虽然可以使用FID将样品质量与过去的模型进行比较,但它并不总是与人的判断一致。为了更好地衡量系统的生成能力,作者进行了系统的人类评估,比较unCLIP和GLIDE的照片真实感、标题相似性和样本多样性。

  • 对于照片真实感,用户会看到一对对图像,选择哪个看起来更逼真;
  • 对于标题的相似性,用户还会被提示一个标题,选择与标题更匹配的图像;
  • 对于多样性,人类面对两个4 × 4网格的样本,选择哪个更多样化。(使用来自MS-COCO验证集的1000个标题生成样例网格,并比较相同标题的样例网格。)

实验结果表明,一般来说,在与GLIDE的两两比较中,扩散先验比AR先验表现得更好。
就摄影真实感而言,人类仍然略喜欢GLIDE,而不是unCLIP,但差距非常小。但unCLIP在多样性方面比GLIDE更受欢迎,这突出了它的优势。

Improved Diversity-Fidelity Trade-off with Guidance

与GLIDE相比,可以从定性上观察到unCLIP在利用制导技术提高样本质量的同时,能够生成更多样化的图像。
要理解其中的原因,可以参考图9,其中作者增加了GLIDE和unCLIP的制导刻度。对于GLIDE,语义(摄像机角度、颜色、大小)随着增加引导尺度而收敛,而对于unCLIP,场景的语义信息被冻结在CLIP图像嵌入中,因此在引导解码器时不会崩溃。
Image图9:随着unCLIP和GLIDE引导刻度增加,对提示(prompt)“一个装满红玫瑰的绿色花瓶放在桌子的顶部。”(“A green vase filled with red roses sitting on top of table.” )产生的实例。
对于unCLIP,固定从先验采样的潜在向量,只改变译码器的引导尺度。对于两个模型,为每一列固定扩散噪声种子。来自unCLIP的样本在质量上有所提高(更真实的灯光和阴影),但随着引导尺度的增加,内容不会改变,即使在高解码器引导尺度下也保持语义多样性。


在上一节中,观察到unCLIP实现了与GLIDE类似的照片真实感,同时保持了更多的多样性,但它的标题匹配能力略差。
是否可以降低GLIDE的制导尺度,以获得与unCLIP相同的多样性水平,同时保持更好的标题匹配度?
在图10中,作者对这个问题进行了更仔细的研究,在多个GLIDE制导尺度上进行人类评估。
实验发现,GLIDE在2.0制导尺度下非常接近unCLIP的照片真实感和标题相似性,但仍然产生较少的多样性样本。
Image图10:当将unCLIP(最佳采样设置)与GLIDE的各种引导尺度设置进行比较时,人类评价者在每个比较的照片真实性、标题相似性和多样性中至少一个轴上更倾向于unCLIP。在用于生成真实感图像的更高引导尺度下,unCLIP产生了更大的可比较的真实感和标题相似性的多样性。


最后,在图11中,作者计算了在MS-COCO数据集上的zero-shot FID得分,同时扫过unCLIP和GLIDE的制导尺度,发现制导对unCLIP FID的伤害要比GLIDE小得多。在这个评估中,作者固定了unCLIP先验的引导尺度,只改变了解码器的引导尺度。这是另一个迹象,表明指导对GLIDE多样性的伤害比unCLIP大得多,因为FID严重惩罚非多样性的生成。Image

Comparison on MS-COCO

在文本条件图像生成文献中,在MS-COCO验证集上评估FID已成为标准实践。
与GLIDE和DALL-E一样,unCLIP没有直接在MS-COCO训练集上进行训练,但仍然可以推广到验证集zero-shot。
实验发现,与这些其他zero-shot模型相比,unCLIP在具有扩散先验采样时实现了最佳的FID(10.39)。
在图12中,作者将unCLIP与MS-COCO的几个标题上的各种最新文本条件图像生成模型进行了可视化比较。实验发现,与其他方法一样,unCLIP生成捕获文本提示的真实场景。Image

Aesthetic Quality Comparison

此外,作者还将unCLIP与GLIDE进行自动美学质量评估。目标是评估每个模型制作艺术插图和照片的效果。为此,作者使用GPT-3生成了512个“艺术”标题,并为现有的美术作品(包括真实的和AI生成的)提供标题提示。接下来,使用AVA数据集训练CLIP线性探针来预测人类的审美判断。
对于每个模型和采样超参数集,为每个提示生成4个图像,并报告整个批次的2048个图像的平均预测审美判断。在图13中展示了审美质量评价的结果。
Image

实验发现引导提高了GLIDE和unCLIP的美学质量。对于unCLIP,只引导解码器(发现引导先验会伤害结果)。作者还将美学质量与Recall5进行对比,因为指导通常会导致在保真度和多样性之间的权衡,有趣的是,结果发现引导unCLIP不会降低召回率,同时仍能提高美学质量。

06. Limitations and Risks

尽管在CLIP嵌入上调节图像生成可以提高多样性,但这种选择也有一定的局限性。特别是,unCLIP在将属性绑定到对象方面比相应的GLIDE模型差。如图14,作者发现unCLIP在提示符方面比GLIDE更困难,因为它必须将两个单独的对象(多维数据集)绑定到两个单独的属性(颜色)。Image图14:unCLIP和GLIDE分别对提示(prompt)“蓝色立方体上的红色立方体”得到的示例。


作者假设发生这种情况是因为CLIP嵌入本身没有显式地将属性绑定到对象,并且发现解码器的重构常常混淆了属性和对象,如图15所示。Image图15:从解码器重建难以绑定的问题。作者发现重建混合了对象和属性。在前两个示例中,模型混合了两个对象的颜色。在最右边的示例中,模型无法可靠地重建两个对象的相对大小。


一个可能的问题是unCLIP难以产生连贯的文本,如图16所示; CLIP嵌入可能没有精确地编码文本的拼写信息。由于实验中使用的BPE编码从模型中模糊了标题中单词的拼写,因此模型需要独立地看到在训练图像中写出的每个标记,以便学习渲染它,这个问题可能会变得更糟糕。Image图16:来自unCLIP的示例,提示“表示深度学习的标志” (“A sign that says deep learning.”)


作者还注意到unCLIP堆栈在复杂场景中仍然很难产生细节。假设这是解码器层次结构的一个限制: 产生的图像的基本分辨率为64 × 64,然后对其进行上采样。以更高的基本分辨率训练unCLIP解码器应该能够缓解这种情况,但需要额外的训练和推断计算。


图像生成模型也存在与欺骗性和其他有害内容相关的风险。unCLIP的性能改进也提高了这一风险。随着技术的成熟,表明输出是人工智能生成的痕迹越来越少,使人们更容易将生成的图像误认为真实的图像,反之亦然。架构的变化怎样改变模型学习训练数据中的偏差,还需要进行更多的研究。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多