论文信息
name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents
name_ch: 利用CLIP的层次化文本条件图像生成
paper_addr: http://arxiv.org/abs/2204.06125
doi: 10.48550/arXiv.2204.06125
date_read: 2023-02-12
date_publish: 2022-04-12
tags: [‘深度学习’,‘自然语言处理’,‘图形图像’]
author: Aditya Ramesh
citation: 703
读后感
OpenAI出品,应用于DALL-E 2。主要实现了以文本为条件生成图像。它在图像的还原和生成过程中,利用了图像与文本间的映射关系,文本可以看作是人对图片内容的抽象,它让模型从人的视角“看”图片,识别了其中人觉得最重要的内容;在图片内容和人类概念之间建立联系,并能通过文本描述的概念来生成和编辑图片。
从技术层面看,它主要基于CLIP,Diffusion模型,并在GLIDE的方法之上进行了改进(之前GLIDE尝试了有分类的CLIP,本文尝试了无分类的CLIP;GLIDE对Diffusion中加噪图片训练CLIP对齐嵌入,本文用不加噪图片做CLIP)。
介绍
CLIP模型在图片和文本之间建立映射关系,能很好的获取图片的含义和风格。本文基于CLIP,提出了两阶段模型(如图):首先,生成给定文本描述对应的CLIP图像嵌入,然后,用解码器生成以图像嵌入为条件的图像。其解码器尝试了自回归和扩散两种方法,发现扩散模型效率更高。
其核心逻辑如图所示:虚线上结合了文本和图像的表示空间;虚线下是生成图片的过程,用文本嵌入产生一个图像嵌入,然后利用这个嵌入在条件约束下送入扩散解码器产生最终图像。
方法
数据集由成对的( x , y):图像x和它们对应的描述y组成,用zi和zt分别表示CLIP图像和文本嵌入。
P
(
x
∣
y
)
=
P
(
x
,
z
i
∣
y
)
=
P
(
x
∣
z
i
,
y
)
P
(
z
i
∣
y
)
P(x \mid y)=P\left(x, z_{i} \mid y\right)=P\left(x \mid z_{i}, y\right) P\left(z_{i} \mid y\right)
P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)
利用上述公式,生成图片,其中先验(上图中prior)P (zi | y),生成以字幕y为条件的CLIP图像嵌入zi;解码器(上图中Decoder)P (x|zi , y),生成以CLIP图像嵌入zi (以及可选的文本标题y)为条件的图像x(具体训练细见附录C)。
解码器 Decoder
使用扩散模型生成基于CLIP图像嵌入(以及可选的文本标题)的图像。基于GLIDE模型做了一些修改(GLIDE模型使用加噪后的图片训练CLIP),将CLIP嵌入投影到额外的4个上下文标记中,这些上下文标记串联到GLIDE文本编码器的输出序列中;并在训练过程中随机丢弃文本标题50 %的来实现无分类器指导;另外,还考虑了上采样以改进模型精度,以及提升模型鲁棒性的方法。
先验 Prior
上述编码器可用嵌入空间数据生成图像,但还需要一个先验模型,从标题y生成zi,以便从文本生成图像。本文探索了两种不同的模型作为先验模型:
- 自回归先验
- 扩散先验
其中扩散模型效率更高。训练一个带因果注意力掩膜的解码器Transformer,之前的扩散先验由:编码文本、CLIP文本嵌入、扩散时间步嵌入、带噪CLIP图像嵌入、最终通过Transformer预测不带噪CLIP图像嵌入。本文生成zi的两个样本,并选择与zt点积较高的样本来提高采样质量。并且发现更好的Diffusion方法是训练模型直接预测不带噪的zi,因此改进了 Diffusion 损失函数。
L prior = E t ∼ [ 1 , T ] , z i ( t ) ∼ q t [ ∥ f θ ( z i ( t ) , t , y ) − z i ∥ 2 ] L_{\text {prior }}=\mathbb{E}_{t \sim[1, T], z_{i}^{(t)} \sim q_{t}}\left[\left\|f_{\theta}\left(z_{i}^{(t)}, t, y\right)-z_{i}\right\|^{2}\right] Lprior =Et∼[1,T],zi(t)∼qt[ fθ(zi(t),t,y)−zi 2]
另外,还使用主成分分析( PCA )对CLIP图像嵌入zi进行降维。通过在原始的1024个主成分中只保留320个主成分,能够保留几乎所有的信息,从后面实验部分,主成分中越重要的维度对应的概念越核心。
操作图像
下面展示了几种应用模型的方法:
生成语义相似的图像
给定一幅图像x,可以生成具有相同本质内容(主体元素和风格)但在其他方面不同的相关图像,如形状和方向。具体方法是通过η值控制DDIM采样的随机性。
上方是原图,下面九张为修改后生成的图。
混合图像
混合x1,x2两张图(最左和最右两张),通过对输入图像的嵌入使用球面插值在它们的zi1和zi2之间旋转。
修改图像
通过语义描述修改图像。输入是一个图像和对它的描述,以及转换目标的描述,如图第四行:输入为冬天图片,目标是将其转成秋天的图片。实现方法是计算两个输入标题嵌入的差值,然后使用插件方法在图像嵌入和文本差值间旋转。
探索稳空间
PCA重构提供了一种探测CLIP潜在空间结构的工具。在图-7中,右侧是原图,对CLIP的嵌入空间降维,原空间维度为1024,仅保留重性为24,30,40… 320的PCA维度进行重建。可以看到不同维度编码了哪些语义信息。
我们观察到重要性高的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而重要性相对低的PCA维度编码了更细粒度的细节,如物体的形状和精确形式。
例如,在第一个场景中,重要的维度只有食物,也许还有一个容器,而增加维度后则有西红柿、绿植和瓶子。
之后,作者还对图片的逼真度、多样性和美学性进行了评测,展示unCLIP优于之前模型。