深度学习系列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模型的主要内容,如果未能解决你的问题,请参考以下文章

深度学习系列经典博客收藏

清华大学出品:罚梯度范数提高深度学习模型泛化性

深度学习常用损失函数的基本形式原理及特点

深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

深度学习YOLO系列算法

深度学习100例-生成对抗网络(DCGAN)生成动漫小姐姐 | 第20天