深度学习系列28:VQ-GAN模型
Posted IE06
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习系列28:VQ-GAN模型相关的知识,希望对你有一定的参考价值。
1. 介绍
发表于2021年,来自德国海德堡大学IWR研究团队。最大的亮点在于其可以生成百万像素级别的图片。
VQGAN的突出点在于其使用codebook来离散编码模型中间特征,并且使用Transformer(GPT-2模型)作为编码生成工具。codebook的思想在VQVAE中已经提出,而VQGAN的整体架构大致是将VQVAE的编码生成器从pixelCNN换成了Transformer,并且在训练过程中使用PatchGAN的判别器加入对抗损失。
2. 详情
整理一下,输入x,通过编码器E得到z,然后离散化得到
z
q
z_q
zq,然后解码器G得到
x
^
\\hatx
x^
训练的部分和VQ-VAE基本相同,自监督损失为:
另一部分损失为GAN中的对抗loss,使用的是hinge loss。对于判别器D(patch-based)而言,其损失函数可以笼统地表示为:
则优化目标为:
3. transformer使用
生成图片的时候,我们是没有初始化的x的,没办法通过x来生成z。因此,我们需要丢弃掉CNN Encoder,使用transformer来生成z。
训练方法是,使用当前的
z
q
z_q
zq,加入随机替换噪声,假设被替换后的code组合的索引为modified_indices,原本 [公式] 的code索引为unmodified_indices,那么Transformer的学习过程即为:喂入modified_indices,通过训练学习重构出unmodified_indices。训练损失函数为cross-entropy交叉熵损失。
在VQVAE工作中,生成code这一步是使用PixelCNN来实现的。但是从效果上已经看出了,VQVAE只能生成低分辨率的64×64的图像,而在Transformer的大力支持下,VQGAN已经实现了百万像素图像的生成。
以上是关于深度学习系列28:VQ-GAN模型的主要内容,如果未能解决你的问题,请参考以下文章