DALL-E-2:Hierarchical Text-Conditional Image Generation with CLIP Latents

本文是一个基于 CLIP 引导的 DDPM 生成模型

  1. (图片,文本)<->CLIP
  2. (图片编码)->DDPM-> 新的图像编码 (使用文本编码筛选)
  3. 新图像编码 ->VAE decoder-> 条件图片,文生图

什么是 DALL-E-2 ?

  • DALL-E-2 提出一种 2 阶段的文生图模型,首先利用 CLIP 获取文本编码和图像编码,然后使用先验模型生成图片表示,最后通过编码器生成图像

DALL-E-2 的原理?

  • 在虚线之上,我们描述了 CLIP 的训练过程,学习了一个文本和图像的联合表示空间。在虚线下面,我们描述了我们的文本到图像的生成过程:CLIP 文本嵌入首先被送入一个自回归或扩散先验以产生一个图像嵌入,然后这个嵌入被用来调节一个扩散解码器,生成图像
  • 训练数据集是图像 xx 和对应的文本描述 yy 构成的数据对 (x,y)(x, y) 。给定一张图像 xx ,经过 CLIP 模型, ziz_i 表示图像向量,ztz_t 表示文本向量
  • 先验知识 P(ziy)P(z_i|y) :以本文描述 yy 为约束,生成 CLIP 图像向量 ziz_i
  • 解码器 P(xzi,y)P(x|z_i,y):以 CLIP 图像向量 ziz_i 为约束,生成图像 xx ,其中,文本 yy 是可选的输入
  • 将两部分合并起来得

P(xy)=P(x,ziy)=P(xzi,y)P(ziy)P(x|y)=P(x,z_i|y)=P(x|z_i,y)P(z_i|y)

DALL-E-2 如何使用先验知识?

  • 论文探索两种类型的先验模型:自回归先验和扩散先验,无论采样何种办法,prior 网络的目的是把 text encoder 输出的 embedding 转为 image encoder 的输出
  • 自回归先验:将 CLIP 图像向量 ziz_i 转换为一个离散 code 序列,然后以文本 yy 为约束,进行预测,为了更有效地从自回归先验中训练和采样,对 ziz_i 应用主成分分析 PCA 进行降维处理
  • 扩散先验:使用高斯扩散模型直接建模连续向量 ziz_i,训练了一个仅解码器的 Transformer 模型。在采样时(时间步长为 T ),生成两个图像样本 ziz_i ,选择与 ztz_t 有着更高点积的图像样本

DALL-E-2 的解码器?

  • 解码器是一个扩散模型,本文使用使用 classifier-free guidance,通过对 10% 的时间序列随机设置 CLIP 向量为 0 或是可学习的向量为 0,以及随机失活 50% 的文本信息
  • 为了生成高分辨率图像,作者训练了两个扩散上采样模块,一个用于将 64x64 分辨率上采样到 256x256,另一个进一步将 256x256 分辨率上采样到 1024x1024

DALL-E-2 如何基于图像 Latent Featrue 进行图像操控?

  • 有了 decoder 了,其实就可以从 image embedding ziz_i 来获得一张图,不管这个 ziz_i 是怎么来的,是从 prior 来的,还是从 CLIP 直接编码来的,或者是两个不同的 ziz_i 插值得到的,都可以
  • Variations:直接基于 CLIP 的 ziz_i 使用扩散编码器生成图像,可见还保留图片主要内容,改变其他信息比如形状、方向等
  • Interpolations:对两张图像的 ziz_i 进行球面线性插值,可见其生成图像平滑过渡
  • Text Diff:在两个相似文本 ztzt0z_t、z_{t_{0}} 潜空间上进行球面线性插值,可见其生成的图片平滑过渡

DALL-E-2 的 CLIP Latent 空间概率性?

  • 在 CLIP 判断出错的情况下,DALL・E 2 还是能够输出合理的图片,如下图所示,即使 Granny Smith 的概率低至 0.02% 而 iPod 高达 99.98%,还是能输出有绿苹果的图片

DALL-E-2 的图像生成?

  • 训练完模型之后的图片生成可以有三种方式
  • 1)Caption:注意到训练 decoder 的时候,用到了 classifier-free guidance,会以一定概率把 image embedding 置零,因此实际上在 sample 的时候,可以不用到 image embedding,直接输入 encode 后的 caption 作为 decoder condition 来出图,当然质量也会差一些,内容可能生成的不对
  • 2)Text embedding:因为 CLIP 把 image 和 text 映射到相同的 latent space,所以可以用 CLIP 的 text embedding 来替代 image embedding
  • 3)Image embedding:通过 CLIP 提取文本的 latent space,然后作为条件输入编码器生成图像

CLIP 输出特征的降维?

  • 为了更有效地从自回归先验中训练和采样,对 ziz_i 应用主成分分析 PCA 进行降维处理

DALL-E-2 和 DALL-E 的区别?

  • DALL-E:使用 BPE 编码文本信息,使用 VQVAE 编码图片信息,然后使用 GPT 自回归生成图片表示,最后使用 VQVAE 的解码器生成图像
  • DALL-E-2:使用 CLIP 获取文本和图片的表示,然后使用 transformer 学习新的图片表示,最后使用 DDPM 的编码器还原图片

参考:

  1. DALL・E 2 解读 | 结合预训练 CLIP 和扩散模型实现文本 - 图像生成 - 知乎
  2. 李沐论文精读系列 —— 由 DALL・E 2 看图像生成模型 - 知乎
  3. DALL・E 2: Hierarchical Text-Conditional Image Generation with CLIP Latents - 知乎
  4. Text–to-Image 图像生成系列之 DALL-E 2 - 知乎
  5. DALLE・2(Hierarchical Text-Conditional Image Generation with CLIP Latents)_dalle2-CSDN 博客