原文标题:Taming Transformers for High-Resolution Image Synthesis
主页:Taming Transformers for High-Resolution Image Synthesis
代码:https://github.com/CompVis/taming-transformers
transformer比CNN缺少了归纳偏置和局部性,但是更具表现力,但对于长序列(高分辨率图像),在计算上是不可性的。作者就是解决这个问题:使用cnn来学习图像成分的上下文信息,利用transformer在高分辨率图像中有效地建模它们的组件。
transformer倾向于学习卷积结构,因此提出了一个问题:每次训练视觉模型时,是否必须从头开始重新学习关于图像的局部结构和规律性的一切,或者能否在保持transformer的灵活性的同时有效地编码归纳图像偏差? 假设,低层次的图像结构可以通过局部连接(即卷积架构)很好地描述,而这种结构假设在更高的语义级别上不再有效。CNN不仅表现出强烈的局部偏差,而且还通过在所有位置上使用共享权重而偏向于空间不变性。如果需要对输入进行更全面的理解,那么它们就无效了。
这些组合中的远程交互需要transformer结构来对其组成可视部分的分布进行建模。利用对抗来确保局部部件字典捕获感知上重要的局部结构,以减少使用transformer建模低级统计数据的需要。
由于注意机制依赖于序列中所有元素对之间的内积计算,其计算复杂度随序列长度的增加呈二次增长。虽然考虑所有元素之间的相互作用的能力是变压器有效地学习远程相互作用的原因,但这也是transformer迅速变得不可行的原因,特别是在图像上,其中序列长度本身与分辨率成二次比例。现有工作虽然能减轻这种,但是分辨率超过64像素仍然非常昂贵。
高分辨率图像合成需要一个能够理解图像全局组成的模型,使其能够生成局部真实的以及全局一致的模式。因此,不是用像素来表示图像,而是将其表示为来自码本的感知丰富的图像成分的组合。
1、Learning an Effective Codebook of Image Constituents for Use in Transformers
复杂度不建立在单个像素上,而是使用学习表示的离散码本的方法,这样任何图像x∈R(H×W×3)都可以用码本项zq的空间集合表示,直接结合cnn的归纳偏差,并结合神经离散表示学习的思想,有一个Encoder和Decoder,然后就是VQVAE:
潜在空间:
重构为:
损失为:
Learning a Perceptually Rich Codebook
使用transformer将图像表示为潜在图像成分的分布,这要求突破压缩的极限并学习丰富的codebook,使用鉴别器和感知损失来在增加压缩率的情况下保持良好的感知质量。更具体地说,用感知损失L2,并引入了一种对抗训练过程,该训练过程具有基于patches的鉴别器D,旨在区分真实图像和重建图像:
最优压缩模型Q* = {E*, G*, Z*}的完整目标如下:
Lrec为感知重构损失,∇GL[·]表示其输入为解码器最后一层L的梯度,δ = 10−6用于数值稳定性。
2、Learning the Composition of Images with Transformers
Latent Transformers
有了E和G,根据它们编码的codebook索引来表示图像。图像x的量化编码由zq = q(E(x)),然后通过将每个code替换为其在码本Z中的最近邻code的索引来获得:
在s中选择某种指标排序后,图像生成可以表述为自回归下一指标预测:给定索引s,transformer自回归下一个索引:
因此回归损失为:
Conditioned Synthesis
提供用于合成示例的附加信息来控制生成过程。这个信息,我们称之为c,可以是描述整个图像类的单个标签,甚至是另一个图像本身。接下来的任务是在给定信息c的情况下学习序列的可能性:
如果条件信息c具有空间范围,首先学习另一个VQGAN,再次获得基于索引的表示:
由于变压器的自回归结构,可以简单地将r前置到s,并将负对数似然p(si|s
Generating High-Resolution Images
transformer的attention机制限制了其输入的序列s的长度h·w。虽然可以调整VQGAN的下采样块m的数量,以将大小为h × w的图像减少到h = h/(2^m) × w ,但重构质量的退化超过了临界值m,这取决于所考虑的数据集。为了生成百万像素级别的图像,必须在训练期间对图像进行分段和裁剪,以将s的长度限制在最大可行的大小。为了对图像进行采样,以如图3所示的滑动窗口方式使用transformer:
1、Attention Is All You Need in the Latent Space
使用了各种条件和无条件任务,并比较了基于transformer的方法和卷积方法之间的性能。用m = 4个下采样块训练一个VQGAN。
比较不同数据集{ ImageNet (IN) , Restricted ImageNet (RIN)上的无条件图像建模结果} 和模型大小的Transformer和PixelSNAIL架构。对于所有设置,Transformer在NLL方面优于PixelSNAIL。这既适用于在固定时间比较NLL (PixelSNAIL训练速度大约快2倍),也适用于训练固定step:
在训练相同时间的情况下,Transformer在所有任务中的表现都优于PixelSNAIL,在训练相同步数的情况下,差距甚至会进一步扩大。
2、A Unified Model for Image Synthesis Tasks
在条件情况下,使用附加信息c,如类标签或分割映射,目标是学习图像的分布,图像大小为256 × 256,latent size 16 × 16
1)Semantic image synthesis、Structure-to-image、Pose-guided synthesis、 Stochastic superresolution、Class-conditional image synthesis:
第一行:ImageNet上无条件训练的完成情况。第二行:RIN上的深度到图像。第三行:ADE20K的语义引导合成。第四行:DeepFashion上的姿势引导人物生成。最后一行:RIN上的类条件样本。
图5:从S-FLCKR上的语义布局生成的样本。尺寸从上到下:1280 × 832, 1024 × 416和1280 × 240像素。
图6:上:RIN上的深度到图像,第二行:IN上的随机超分辨率,第三和第四行:S-FLCKR上的语义合成,下:IN上的边缘引导合成。生成的图像在368 × 496和1024 × 576之间变化
2)High-Resolution Synthesis
这种方法原则上可以用于生成任意比例和大小的图像,前提是数据集的图像统计数据近似空间不变或空间信息可用。通过将该方法应用于S-FLCKR上的语义布局的图像生成,可以获得令人印象深刻的结果,其中可以在m = 5时学习强大的VQGAN,因此其codebook和条件信息为转换器提供了足够的背景,用于百万像素范围内的图像生成
3、Building Context-Rich Vocabularies
在训练中,总是裁剪图像以获得大小为16 × 16的transformer输入,即在第一阶段对具有因子f的图像建模时,使用大小为16f × 16f的裁剪
在FacesHQ上无条件合成人脸的结果。对于中间值f = 8,图像的整体结构可以近似,但不一致的面部特征,如半胡须的脸和图像的不同部分的观点出现。只有我们f = 16的完整设置才能合成高保真样本。
为了定量评估方法的有效性,比较了直接在像素上训练变压器和在给定固定计算预算的VQGAN潜在代码上训练变压器的结果。在CIFAR10上学习512 RGB值的字典,以直接在像素空间上操作,并在VQGAN上训练相同的transformer架构,其潜在code大小为16 × 16 = 256。观察到fid提高了18.63%,图像采样速度加快了14.08倍。
4、Quantitative Comparison to Existing Models
比较FID,语义合成:
无条件人脸合成(模型使用的参数比VQVAE-2少10倍):
虽然一些任务专用的GAN模型报告了更好的FID分数,但该方法提供了一个统一的模型,可以在广泛的任务中良好地工作,同时保留编码和重建图像的能力。因此,它弥合了纯粹对抗性方法和基于可能性的方法之间的差距。