名称
[VQ-GAN](Taming Transformers for High-Resolution Image Synthesis)
时间:CVPR2021 oral 21.06
机构:Heidelberg Collaboratory for Image Processing, IWR, Heidelberg University, Germany
TL;DR
Transformer优势在于能较好地长距离建模sequence数据,而CNN优势是天生对局部位置关系具有归纳偏差。本文结合两者特征,利用CNN建立context-rich vocabulary的codebook,利用transformer建立高分辨率(long range relations)构成。
GAN基础知识
GAN全称Generative Adversarial Network,包含两个功能模块分别是generator G用来生成图像(从noise vector生成图像),discriminator D用来判断生成图像的真实性(二分类网络判断输入图像是真实还是生成,从而拉进两类数据分布距离)。
网络结构
有点像反过来的AE,即Decoder在前面先生成图像,再用Encoder来判断图像的真实性。
实际两个模块是在一个网络里面,只不过训练过程是交替训练的,即训练其中一个模块时另一个模块fix住。
为什么必须要D?训练G的过程为什么fix D?
- 生成器仅能生成图像,无法知道真实数据的分布,而D可以方便地将图像映射到高维特征空间,从而比较方便衡量数据集之间的分布,并给G传递梯度告诉其靠近真实数据分布的优化方向。
- G在生成图像过程中是没有办法知道自己要生成的图像的全局信息,而D一开始就可以获取到图像全局信息,比较容易判断图像质量与改进方向。
如果训练G过程不fix D,那么D就会通过自身参数更新来过拟合图像真假判断的任务,不利于生成器的训练。
为什么必须要G?
D本质上还是一个判别任务,而非生成任务,而我们的目标是生成内容,所以必须要有生成器。
VQ-GAN Method
AE的训练
类似于之前VQ-VAE的训练过程,即AE + embedding space的聚类。
Transformer
- latent feature仍然保持spatial信息,每个cell上embedding特征在codebook里面都有唯一编号,这使得一个latent feature可以映射为一个sequence序列,再使用seq2seq的Transformer对latent feature进行特征融合。优势是可以在低分辨率的latent space进行特征融合,使得即使高分辨率图像的生成也能充分融合long-range的context。
- 方便conditional信息融合:transformer另一个优势是conditional信息也可编码为codebook编号,再利用Transformer auto-regressive来生成图像。
Q:如何生成图像?
实际生成过程并没有完全使用所有前序code编码,而是使用一个sliding windows中编码生成某个coding embedding参见下图。这就是利用了CNN的位置归纳偏置简化了计算。
Experiment
总结与发散
对于本文motivation上的理解:
利用CNN的位置归纳建立context rich codebook(因为CNN提取的特征能够保持spatial信息,所以codebook也具有spatial信息,并且每个cell包含了一定context语义信息)
利用Transformer长时序能力生成生高分辨率图像(Transformer本身就有长时序优势,在这里面Transformer应用于低分辨率的latent feature生成,再Decode为高分辨图,减轻了计算量与生成难度)
相关链接
https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php