Pre
title: Self-conditioned Image Generation via Generating Representations
accepted: arXiv 2023
paper: https://arxiv.org/abs/2312.03701
code: https://github.com/LTH14/rcg
ref: https://mp.weixin.qq.com/s/VmyRya2klHpHlJwzMG8JRg
ref: https://www.zhihu.com/question/633877835
ref: https://zhuanlan.zhihu.com/p/671824871
ref: https://zhuanlan.zhihu.com/p/640631667
关键词:self-supervised learning (SSL), class-unconditional, image generation framework, self-conditioned image generation
阅读理由:Kaiming He(通讯), 图像生成
Idea
预训练编码器抽取图片表征,然后用扩散模型对其建模,然后用一个支持条件输入的生成器根据表征生成图片,推理时如果要无条件生成可以通过扩散模型对噪声输入降噪得到该表征。
(VQ-VAE,但编码向量具有语义且不进行量化,能生成相同语义的多样图片)
Motivation&Solution
- 无条件生成和条件生成在性能上存在gap,以往的方法是将图片聚类为隐式的类标签,但这相当于假设该无标签数据集是有类别的,而且聚类数量要接近其中的类别数(依赖先验信息),而且它们也做不到多样化的生成 —— 通过自条件来弥补
- 分子设计,药物发现 —— 需要发展无条件生成
Background
self-supervised learning (SSL) 缩小了和监督学习的性能差,受此启发,本文提出 self-conditioned image generation,不同于传统的无条件生成,不是直接从噪声到图片,而是多了个中间的表征。
作者认为自条件图片生成有如下重要作用:
- 比无条件图片生成更符合直觉,反映了艺术家在作画之前的构思过程
- 类似超越了监督学习的无监督学习,自条件图片生成利用了大量无标注数据,有望超越条件图片生成。
- 不依赖人类标注,自条件生成能用到分子设计或药物发现这种人类无法标注的生成领域上
Self-supervised Learning. 提到了相关的DiffAE,通过语义编码器把图片变为向量,再使用 latent DDIM 去建模,然后基于该向量使用条件DDIM做生成,跟本文乃至本文用的MAGE挺像的,都是借助编码器得到中间表征,然后建模中间表征再做生成,但文章中并未提到他们的区别。
Image Generation. 图像生成主流是GAN,另外还有两阶段的方案,即先把图片变换到潜空间,再从中采样。近来也有扩散模型方法大放异彩。DALLE2用CLIP的图像编码器,而且它的条件是CLIP的文本嵌入,做文生图的任务。RCDM和IC-GAN是另两个相关工作,它们基于ground-truth图片提取的表征来生成,这在许多生成应用中是不切实际的。(但要做条件生成肯定得有个条件吧?)
RCG的条件不同于所有先前的工作,不像之前的自条件方法需要聚类来做条件,RCG用扩散模型来学习表征空间。
Method(Model)
Overview
图1 自条件(Self-conditioned)图片生成框架。传统无条件方法直接将噪声映射到图片分布,自条件生成由三部分组成:(a) 预训练的SSL图像编码器(如图Moco v3),用于将图像分布转换为低维表征分布;(b) 表征生成器,将噪声分布映射到(a)的表征分布;(c) 像素生成器(如LDM或MAGE)基于表征分布将噪声分布映射到图片分布
自条件图片生成的核心是1b的图片表征分布,它需要包含足够的信息来引导像素生成阶段。作者用一个扩散模型(Representation Diffusion Model (RDM))来充当表征生成器,它负责将噪声降噪为满足分布的表征。进而提出了以表征为条件的图像生成(Representation-Conditioned image Generation (RCG)),一种自条件图片生成框架,如图1所示。
RCG的设计允许无缝地把其他常见的图片生成模型用作像素生成器,如图2所示,能提高其生成性能。
图3 RCG训练框架。SSL编码器需要预训练,训练时冻结。然后给表征Rep.加上标准高斯噪声,然后让RDM降噪。图片token也加噪声,然后让MAGE借助同一张图片抽取的表征来重建缺失的token
图4 RDM的backbone架构。每个“Layer”都包括了LayerNorm、SiLU和线性层。backbone的输入线性层将表征映射到隐藏维度C,后面跟着N个全连接块,还有一个输出层将隐变量变回原本的表征维度。
Image Encoder. RCG依赖的图片表征分布要满足两个特性:简单,能被RDM建模;并且有丰富的高层语义内容,用于引导像素生成。本文用的预训练编码器是Mocv v3,靠自监督对比学习训练,其约束表征在高维球体上,最终用的表征是256维,且通过均值方差归一化。
Representation Generator. RDM用的是带有多个残差块(图中的N个fc block)的全连接网络作为backbone,如图4所示。
RDM遵循DDIM的训练和推理模式。如图3a所示,训练时有个加噪过程:\(z_t = \sqrt{\alpha_t}z_0 + \sqrt{1-a_t}\epsilon\),然后RDM就学着把\(z_t\)变回\(z_0\)。推理时RDM根据DDIM采样过程从高斯噪声生成表征。
看图3,a, b两部分的训练应该是分开的?a训练RDM去建模表征的分布,为的是后续可以从噪声中采样相同分布的表征。b训练MAGE以表征为条件进行生成,之后也能用RDM生的表征来生成。
Pixel Generator. 原则上任何一个现代条件图片生成模型都可以用,只是条件换成了SSL表征。在图3b中用的是并行解码框架的MAGE(本文一作之前的工作),训练时MAGE根据masked图片(token形式)重建原始图片,推理时从完全masked的图片开始生成。
Classifier-free Guidance. RCG的一个优势是能够无缝使用 CFG (classifier-free guidance) 做无条件生成。CFG 可以提高生成模型的性能,但一般在无条件生成模型上没法用,因为 CFG 是一种无条件生成中同时为条件生成也提供引导的方法(本质是条件生成模型,接受一个条件y做生成,只是按概率将y置空实现无条件的效果)。虽然 RCG 是为无条件生成设计的,但 RCG 的像素生成器是根据无监督的图像表征(作为自条件)来生成的(能接受条件输入),所以 RCG 可以应用 CFG,来进一步提高性能。
RCG 采用了 Muse 方法来在 MAGE 像素生成器中使用 CFG。在训练阶段,MAGE 有 10% 的概率不使用自监督表征(无条件生成)去训练。在推理时,MAGE 每步会为每个 masked token 预测一个以自监督表征为条件的 logit \(l_c\),和一个无条件的 logit \(l_u\),最终的 logits \(l_g\) 是 \(l_c\) 根据系数 \(\tau\) 远离 \(l_u\) 得到:\(l_g=l_c+\tau (l_c-l_u)\)。MAGE 根据 \(l_g\) 预测剩余的 masked token。
Experiment
Settings
RCG-L的图片编码器是Mocv v3训练的ViT-L,然后用MAGE-L作为图生成器,以常数学习率训练800 epoch。
Dataset
ImageNet 256×256
Class-unconditional Generation
图2 使用不同像素生成器在ImageNet256x256上的无条件类别(Class-unconditional)图片生成性能
表1 无引导(classifier or classifier-free guidance)的图片生成性能。RCG超越了所有无条件和条件生成baseline,同时计算开销也小于等于它们。
图5 ImageNet256x256 上RCG无条件图像生成结果,不使用CFG。
RCG生成性能超越了之前最好的类别条件生成方法CDM
Classifier-free Guidance
表2 ImageNet256x256 上RCG使用引导的生成结果
表3 CFG系数$\tau$的消融。
说表2中结合CFG能大幅提升RCG的性能,但看起来不是很明显,同时也在表3测试了CFG系数,说是\(\tau \ge 1\)时FID基本稳定,但IS仍能持续上升,看起来表2是取了\(\tau = 6\)的情况
Ablations
默认设置用的是 Moco v3 ViT-B + 12个block、1536隐层维度、训练100epoch的RDM + 训练200epoch的MAGE-B。后面的表4到表6中默认设置都会被标上灰色
表4 ImageNet256x256 的预训练编码器消融 (a)预训练方法,测试了不同的对比学习方法。 (b)模型尺寸,RCG能随着预训练编码器变大得到更好线性预测准确度(scales up) (c) 投影维度,图片表征的维度
表5 ImageNet256x256 的RDM消融。(a)模型深度,更深的RDM能改进生成性能。 (b)模型宽度,更宽的RDM也能改进生成性能 (c)训练epoch数,同样越长越有利 (d)扩散步数,采样步数越多越好
表6 ImageNet256x256 的像素生成器消融。 (a)条件,基于生成的表征最优 (b)像素生成器框架,RCG能提升不同生成模型的无条件图像生成性能。其中ADM+RDM 训练了 100 epochs, LDM+RDM 训练了 40 epochs, MAGE+RDM 训练了 800 epochs (c)训练epoch数,MAGE训练越久越好
Pre-trained Encoder. 在表4中测试不同预训练图片编码器,投影维度要适中,低了会丢失信息,太高会使表征生成器不易学习(高维向量更不容易拟合?)
Representation Generator. 表5
Pixel Generator. 表6a表示本文的表征充当生成条件比类别标签更能提升模型性能,也很接近最好的oracle表征。也尝试了以往方法基于聚类的伪类别条件生成,采用k-means聚了1000类,指标上FID=6.60,IS=121.9,不如本文的表征,这是因为这种离散聚类的信息有限,不足以为像素生成提供详细引导。
Computational Cost
表7 ImageNet256x256的计算开销。开销在 64块V100集群上测量,生成吞吐量在单块V100测量,LDM和ADM的吞吐量是通过A100比V100高了2.2倍加速的假设转换来的。
表7 RCG 那几行的值左边是RDM模块的,右边是像素生成器(MAGE)的,表明RDM开销并不大。
Qualitative Results
图6 RCG图像生成结果。作为条件的是从ImageNet中的图片抽取的表征(GT那一列),生成的图像与原图像保持相同语义,同时有多样的外观。
图7 RCG图像生成结果。作为条件的是两张图片表征的插值
Representation Reconstruction. 图6每行图片通过改变生成过程的随机种子实现,表明RCG利用语义信息引导生成的能力,不存在为了图片质量向多样性妥协的情况。
Representation Interpolation. 如图7
Conclusion
计算机视觉已经进入了新纪元,其中对大量未标注数据的利用越发常见,然而图片生成模型仍大多依赖于标注数据集,这可能是因为条件和非条件生成之间巨大的性能差。本文通过探索自条件图片生成来解决该问题,仍为该方法能够将图片生成从人类标注中解放出来。
Drawing on this analogy: 以此类推
paves the way for: 能用于
potentially heralding a new era in this field: 宣告了领域的新纪元
fall short of: 达不到
which we propose as a nexus between conditional and unconditional image generation: 我们将(自条件生成)作为条件和非条件图片生成之间的联系提出
Critique
感觉文章写得花里胡哨,堆叠一些少见的词句,像是英语作文。表7的计算开销挺清晰,似乎可借鉴。
就方法来说似乎不是很新,确实有种VQ-VAE+的感觉,但更灵活些,毕竟预训练编码器和像素生成器都可以任选,而且生成一堆语义相似的图片也很有趣,是不是能用于数据增强。但说到无条件生成,应该只能生训练时见过的那些东西吧。自条件这个概念也挺有意思,整个训练过程确实是自监督无条件的(包括SSL编码器),但支持外部条件的输入。不过要说实际意义,还是VQ-VAE更重大,直接将文本和图片两个模态打通,使得LM能通过自回归处理图片。
标签:Generating,via,Generation,生成,表征,条件,RDM,RCG,图片 From: https://www.cnblogs.com/Stareven233/p/17909130.html