RCG: Self-conditioned Image Generation via Generating Representations
TL; DR:将图像的无监督表征作为(自)条件(而非是将文本 prompt 作为条件),生成与原图语义内容一致的多样且高质量结果。视觉训练能不能 / 需不需要摆脱文本,仍有待研究。
引言
就像图像自监督表征学习(对比学习 / 图像掩码建模)成功赶超了有监督训练一样,作者想要在图像生成领域,使得无条件(自条件)生成的性能追赶上条件生成。
不同于无条件生成直接将噪声分布映射到图像分布。本文提出的自条件生成框架是先通过自监督表征训练得到图像编码器提取图像的表征,再训练一个表征 diffusion 模型对表征进行去噪,最后使用根据去噪后的表征再生成真实图片。
方法
本文提出了 RCG(Rpresentation Conditioned image Generation),RCG 由三部分组成:一个预训练的自监督图像编码器、一个表征生成器和一个像素生成器。详细介绍如下:
图像编码器:RCG 使用了 moco-v3 作为图像编码器,将图像分布(image distribution)映射到表征分布(representation distribution)。表征分布需要具有两个特点:易于用 diffusion 模型建模和含有丰富的高层语义特征。每个表征都根据自身的均值和标准差进行标准化
表征生成器:RCG 中的表征生成器称为 RDM,用于从表征分布中采样。RDM 采用具有多个残差块的全连接网络作为其骨干网络,残差块的具体结构如图所示。RDM 采用 DDIM 的训练和采样算法。训练阶段,图像表征 z 0 z_0 z0 会掺入高斯噪声 ϵ \epsilon ϵ 得到 z t z_t zt,RDM 的训练目标就是对 z t z_t zt 进行去噪,得到 z 0 z_0 z0 。推理阶段,采用 DDIM 的采样方式,RDM 对采样的高斯噪声降噪,生成图像表征。
像素生成器:RCG 中的像素生成器负责根据给定的图像表征作为条件,来生成图像像素。理论上来说,这里的像素生成器可以是任何条件生成模型,只要将原本的条件(text, label, etc.)表征换成自监督的图像表征即可。这里作者使用了 MAGE (本文一作的另一篇工作)作为像素生成器。训练阶段,像素生成器根据带掩码的图像和该图的表征,来重建原图。推理阶段,像素生成器根据 RDM 生成的图像表征和一个完全的掩码图,来生成图像。
以上介绍了 RCG 的三个主要组件及其训练方式。另外,RCG 还有一个重要特点,即虽然它本身是一种无条件(自条件)的生成方法,但它可以应用 Classifier-free Guidance(CFG)。
Classifier-free Guidance:CFG 可以提高生成模型的性能,但一般在无条件生成模型上没法用,因为 CFG 实际上是一种通过无条件的生成,来为条件生成提供引导的方法。虽然 RCG 也可以用于无条件生成,但实际上 RCG 中的像素生成器是要根据无监督的图像表征(作为自条件)来生成的,所以 RCG 可以应用 CFG,来进一步提高性能。
RCG 采用了 Muse 方法来在 MAGE 像素生成器中使用 CFG。在训练阶段,MAGE 有 10% 的概率会在没有自监督表征作为条件的情况下进行训练。在推理时,MAGE 每步会为每个 mask token 预测一个无条件的 logit l u l_u lu,和一个条件于自监督表征的 logit l c l_c lc,最终的 logits l g l_g lg 是 l c l_c lc 根据系数 τ \tau τ 远离 l u l_u lu: l g = l c + τ ( l c − l u ) l_g=l_c+\tau (l_c-l_u) lg=lc+τ(lc−lu)。MAGE 根据最终的 l g l_g lg 预测 mask token。
结果
定量结果
先看一下再 ImageNet 256px 上图像生成的定量指标结果。需要说明的是,由于无条件生成的方法无法使用 CFG,故这里 RCG 列出的结果也是没用 CFG 的。RCG-L FID 达到 3.56,IS 达到 186.9,超越了所有的无条件生成的 baseline,甚至超越了所有的条件生成的模型。
下面这张表是对比条件生成,并且加 CFG 的结果。可以看到,使用 CFG 之后,RCG 的 FID (3.56->3.31) 和 IS (186.9->253.4) 都有所提升,对比条件生成的方法使用 CFG 之后,也很接近了。
文章还做了丰富的消融实验,包括自监督表征模型大小/深度/宽度、projection 维度、去噪步数等,详见原文。
定性结果
文章的定性结果也很有意思,这里主要看表征重建和表征插值两个结果。
表征重建 是首先 ImageNet 中的图像提取自监督表征,然后对表征加入一定噪声之后,RDM 去噪,再生成图像。可以看到,RCG 的生成结果几乎完美的保持了图像的语义,并且具有一定的多样性。这说明了预训练的自监督表征真的能够表达图像的语义。
多说一句,感觉这种能力非常适合拿来做图像分类的数据增强,因为它能忠实地保持语义,同时具有多样性。而数据增强的目标就是在不改变图像基本语义的基础上,尽量丰富图像的多样性。一般的图像增强是在 pixel 维度加噪声,而 RCG 生成则相当于在 representation 维度加噪声。
P.S. 在笔者自己的实验中,RCG 对于自然图像的生成基本没有问题,但是对于人脸的生成却是崩的一塌糊涂。经知友提点,这是因为处于 ethics 考虑,目前 ImageNet 的人脸都被加了模糊,完全没有细节。如需生成人脸图像,自行收集相关数据集 finetune 会好一点。
表征重建
既然有丰富语义的表征,那能不能像之前 GAN 那样对 latent 进行编辑/插值,来控制生成图片的属性呢?这样的实验自然也是少不了,可以看到,两个图片表征之间插值的生成结果反应了变化的过程。这表明自监督表征空间确实是含有丰富的语义的,并且非常平滑。
总结
在计算机视觉领域,自监督表征学习(对比学习 / 图像掩码建模)基本已经摆脱了人工标注数据的束缚,迈入自监督学习的新时代。而在图像生成领域,还是需要大量的带标签(text/label)的图文对。本文尝试根据自监督表征,来进行自条件的图像生成,性能直逼有条件生成,可以说是接近弥合了这一 gap。
从方法的角度来看,是很有意思的一篇工作,结合视觉自监督表征,实现了无标注、无文本条件的生成。唯一遗憾就是方法本身看起来不太简洁,不熟悉几篇前置工作的话,理解起来还是要稍微费点劲儿的。
从应用的角度来看,上文中已经提到,RCG 生成的图像是一个很自然的数据扩增方法,而且在少样本的 setting 下,可能能发挥不小的作用。
从更大的视角来看,视觉智能的出现到底需不需要依赖于文本。即使是已经被认为取得成功的图像自监督表征方法中,无论如何最终都至少需要一个 linear probing 的微调,与我们想象中的”智能“还相去甚远。CLIP 的意义和影响力无疑是非常巨大的,它借助图文对这一弱监督数据,对齐了图文双模态。视觉领域终于也借助语言监督,实现了所谓的 zero-shot,从而带来了无限的想象力。从此,各种各样的视觉任务(分类、检测、分割等)都借助 CLIP 实现了 open-vocab。
然而,毕竟图像与文本是两个不同的模态,差别也是固有的。文本能帮助视觉,也会限制视觉。所谓”一图胜千言“,很多情况下,一张图的内容可能是语言很难甚至无法精确描述的。即,视觉的细粒度可以认为是无限的。以 CLIP 为例,熟悉它的人都知道,虽然说是对齐了两种模态,但是无论正负样本,CLIP 的图像文本相关性分数会集中在一个很小的区间(如 0.2-0.5),而非遍布整个 0-1 区间,这或许就是图文两模态之间 gap 的一点体现。
无独有偶,近期大火的 LVM,也是脱离文本的纯视觉训练方式,把视觉数据都统一起来,然后做自回归式的预测下一个 token。似乎大牛们都在探索无文本(text, label)的视觉训练。在 LLM 爆火的这一年,感觉 CV 的主题就是往上蹭,随便兜一个什么 adapter,就把视觉编码器的特征接到 LLM 上去。这种方式当然可以很好地借助 LLM 的理解能力,出一些前所未有的效果(GPT4 等)。但是按照条路走下去,看起来从此视觉就没什么需要研究的了,只是训一个 encoder,做好 LLM 的 sensor 即可。个人觉得这不会是 CV 或者图文多模态的最终形态。很期待视觉领域本身能涌现出更多更有想法的工作。