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

2023-11-11

前言

本篇工作即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

image.png
整个模型流程如上图所示,该模型又称为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识别图像的方向, 编码了解码器重建图像所需的残差信息。作为超参数调整生成图像的多样性。
image.png

3.2 Interpolations

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

3.3 Text Diffs

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

4 Probing the CLIP Latent Space

本文的解码器模型允许直接可视化CLIP图像编码器所看到的内容,从而探索CLIP潜在空间。CLIP有很多错误预测的情况,比如下面的情况,在主体前面覆盖一张写有字的纸,就会导致CLIP无法预测正确的对象,因为CLIP无法学习到相对的位置关系,许多抽象的概念无法理解。
image.png
PCA重建提供了另一种探测CLIP潜在空间结构的工具。下图中作者采用少量源图像的CLIP嵌入,并逐渐增加PCA维度来重建它们,然后在解码器上使用DDIM可视化重建的图像嵌入。这允许看懂不同维度编码的语义信息。
image.png
通过上图可以看到,早期的PCA维度保留了粗粒度的语义信息,而后期的PCA维度则编码更细粒度的细节。

5 Text-to-Image Generation

image.png
实验部分内容也比较多,但是这里只关注模型在MS-COCO数据集上和其它模型的对比,毕竟DALL-E模型之前的表现就很惊艳,只是在评分上并不能让读者很好的信服。可以看到,无论是AR prior还是Diffusion prior,DALL·E2都远远领先其它模型的得分。
在定量分析后,作者还进行了定性分析,将unCLIP模型和GLIDE模型进行了对比,目的是评估模型生成艺术图像和照片的效果。作者利用GPT-3和真实的图像caption生成prompt,用于模型生成图像,接着作者使用AVA数据集训练CLIP线性探针来预测人类审美判断。
image.png
作者发现prompt提高了GLIDE和unCLIP的美观质量。下图是美学质量的召回率:
image.png
理论上,Prompt通常会让模型在真实性和多样性上进行权衡。但是作者发现引导unCLIP不会降低召回率,并且会提高美学质量。

6 Related Work

6.1 GAN

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

6.2 AE

image.png
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


VAE的框架和AE相似,但是实际上大不相同。VAE将输入的真实样本拟合到一个正态分布,然后再从这个分布中采样变量,通过生成器生成样本。VAE有些不错的性质,因为它是从分布中采样,所以生成图像的多样性比GAN好的多。

6.5 VQ-VAE

image.png
VQ的含义是对VAE做量化的意思。VAE的缺点在于不方便做大,并且分布也不好去学习。因此将图像的编码和codebook中的编码作对比,将最相似的编码作为解码器的输入,最后生成图像和原始图片进行对比。

6.6 DALL·E


DALL·E就是在VQ-VAE基础上实现的,文本通过BPE得到文本特征,图像经过VQ-VAE得到图像特征,将二者特征连接到一起,然后输入到GPT中进行自回归生成。推理过程直接使用文本生成文本特征,输入到自回归网络中得到生成的图像。

6.7 Diffusion

image.png
扩散模型相对于其它模型最大的区别在于它的特征和原图是相同尺寸的。它的思想很简单,就是将高斯噪声多轮加入到原始图像中,最终使图像完全变为高斯噪声 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

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

7 Limitations and Risks

尽管在CLIP嵌入上调节图像的生成可以提高图像生成的多样性,但是也会带来一定的局限性,特别是,unCLIP在属性绑定上比GLIDE要差。这些属性涉及到一些抽象和复杂的概念,如位置属性,文字属性等, CLIP 嵌入本身没有显式地将属性绑定到对象,并且会经常混淆图像中多个对象的属性。如下图所示:
image.png
image.png
一个类似的相关的问题是unCLIP难以生成连贯的文本,如下图所示:
image.png
CLIP的嵌入无法精确编码渲染文本的拼写信息,再加上BPE的编码模糊了caption中单词的拼写, 会让这个问题变得更糟。此外,模型很难在复杂的场景中生成细节。这可能是解码器层次结构的限制,以更高分辨率训练unCLIP应该能够缓解这个问题,代价是额外的训练和推理计算。
image.png
最后探讨安全问题。图像生成模型存在于欺诈和其他有害内容相关的风险,随着图像越来越真实,很容易将生成的图像误认为是真实的图像,这会带来一系列安全问题。

阅读总结

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents 的相关文章

随机推荐

  • Python:入门到放弃之基础篇(一)

    文章目录 前言 一 python的标识符 二 python变量类型 1 Number 2 String 3 List 4 Tuple 5 Set 6 Dictionary 三 python流程控制 1 顺序流程控制 2 分支流程控制 3 循
  • EMC电磁兼容测试项目简介

    EMC电磁兼容测试项目简介 一般来说 电气 电力设备产品要做的EMC电磁兼容测试主要包含浪涌 冲击 抗扰度 振铃波浪涌抗扰度 电快速瞬变脉冲群抗扰度 电压暂降 短时中断和电压变化抗扰度 工频电源谐波抗扰度 静电抗扰度 射频电磁场辐射抗扰度
  • TQ2440移植u-boot2016.11全过程记录-【4】LCD驱动移植并显示

    TQ2440移植u boot2016 11 LCD驱动移植并显示 LCD初始化流程分析 u boot的LCD初始化代码是在common lcd c中 我们找到lcd init函数 该函数功能流程为 lcd ctrl init初始化了LCD的
  • ipv6 socket编程实践

    Table of Contents 1 ipv6 socket编程实践 2 示例程序 ipv6 socket编程实践 ip地址长度变化 按照ipv4 255 255 255 255的地址格式 最长为15 加上结束符16字节长度 ipv6 的
  • FormData的详解

    转自 https blog csdn net yezitoo article details 78339201 FormData 1 概述 FormData类型其实是在XMLHttpRequest 2级定义的 它是为序列化表以及创建与表单格
  • 三相桥式全控整流电路

    三相桥式全控整流电路原理图 原理图 阴极连接在一起的3个晶闸管 VT1 VT3 VT5 称为共阴极组 阳极连接在一起的3个晶闸管 VT4 VT6 VT2 称为共阳极组 共阴极组中与a b c三相电源相接的3个晶闸管分别为VT1 VT3 VT
  • Swift 枚举与结构体

    Swift 枚举 枚举简单的说也是一种数据类型 只不过是这种数据类型只包含自定义的特定数据 它是一组有共同特性的数据的集合 Swift 的枚举类似于 Objective C 和 C 的结构 枚举的功能为 它声明在类中 可以通过实例化类来访问
  • PyTorch中实现数据集的自定义读取

    一 创作缘由 数据集呈现的方式有很多种 今天和大家仔细谈一谈当我们要读取的数据集信息存储在文本文件时 我们如何读取数据集 最近在实现一个垃圾分类的任务 数据集中每张图片的名称和数据标签都记录在了文本文件中 垃圾分类数据集介绍 一共有6种不同
  • mybatis3 mysql自动生成主键_mybatis自动生成主键

    mysql 使用useGeneratedKey属性 INSERT INTO STUDENTS NAME EMAIL PHONE VALUES name email phone 其他的方式 使用selectKey子标签 属性 order be
  • [优化篇]OpenStack的Cinder后端存储技术——GlusterFS(1)

    题记 上一篇已经介绍了OpenStack的Cinder后端使用NFS存储技术 为什么要使用NFS呢 一般情况下 如果你的网络是千兆网络 在如果你考虑性能的要求 存储设置到宿主机本地硬盘效率会更好 例如我们可以在计算节点上安装cinder v
  • Javascript里有个C:Part 3 - 深入对象

    http cnodejs org topic 4f16442ccae1f4aa270010bd em Javascript里有个C em 系列文章 br ol br li a title 编辑 Javascript里有个C Part hre
  • 利用轨迹拼接分析实时可达区域

    如何快速得知从你的位置开始出发 在当前的交通状况下 5分钟之内能够抵达的空间区域范围 当你掏出手机打车时 出租车调度平台应该通知哪些范围的车主进行接单 前言 本篇介绍的是被国际著名数据库和数据挖掘会议DASFAA 2020 CCF B类 成
  • 基于ssm的高校学生课堂考勤系统的设计与实现

    研究的背景 目的和意义 1 研究背景 信息技术的迅猛发展 已经引起社会的深刻变革 信息时代的到来 迫切要求我们的学校管理进行变革 因此 信息化的考勤系统就在这种情况下变的越来越受欢迎 它给教师带来了更加高效处理考勤的方法 使得教学能够比较顺
  • 第三方软件测试z5x电池,三款手游开黑一天不充电 vivo Z5x续航测试

    随着全面屏手机的全面流行 手机的屏幕尺寸越来越大 屏幕尺寸和性能的提高 让续航问题逐渐成为消费者心中的疙瘩 从之前非智能机的两天一充 三天一充 到如今的一天一充 甚至一天两充 如何保持手机随时有电 成了一个难题 全面屏设计的vivo Z5x
  • link标签的其他作用

    在html中link标签的最常用 主要作用是进行css外部样式的引用 还有其他功能是引入icon 也就是可以用来设置这个网站的图标 另一条平时不太容易接触的功能 就是DNS预解析 属于前端优化的范畴 可以加快网页打开 响应的速度 因为每一次
  • apex您所在的地区目前不提供此物品_apex混合精度加速

    Pytorch 简介 Nvidia提供了一个混合精度工具apex 可以加速pytorch的训练效率 空间和时间上 号称可以这不降低模型性能的情况下 将训练速度提升2 4倍 训练显存开销减少为原来的一半 开源地址如下 https github
  • (一)低功耗设计目的与功耗的类型

    一 低功耗设计的目的 1 便携性设备等需求 电子产品在我们生活中扮演了极其重要的作用 便携性的电子设备便是其中一种 便携性设备需要电池供电 需要消耗电池的能量 在同等电能提供下 低功耗设计的产品就能够工作更长的时间 时间的就是生命 因此低功
  • Java怎样写优秀的代码_写优质Java代码的4个技巧

    咱们平时的编程使命不外乎便是将相同的技能套件应用到不同的项目中去 关于大多数状况来说 这些技能都是能够满意方针的 然而 有的项目或许需求用到一些特别的技能 因而工程师们得深入研究 去寻觅那些最简略但最有用的办法 在前一篇文章中 咱们讨论了必
  • springmvc项目搭建

    第3天 Spring SpringMVC MyBatis集成 学习目标 SSM集成 集成流程理解 集成SpringMVC 集成Spring 集成MyBatis 事务测试 第1章 搭建环境 1 1 整合流程 整合说明 SSM整合可以使用多种方
  • 【论文精读】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 Pri