2025年深度学习系列29:VQ-GAN模型

深度学习系列29:VQ-GAN模型总结 VAVAE 的解码器换成 Transformer 再用 GAN 训一遍 1 介绍 发表于 2021 年 来自德国海德堡大学 IWR 研究团队 最大的亮点在于其可以生成百万像素级别的图片 VQGAN 的突出点在于其使用 codebook 来离散编码模型中间特征 并且使用 Transformer GPT 2 模型 作为编码生成工具

大家好,我是讯享网,很高兴认识大家。

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 ^ \hat{x} x^

训练的部分和VQ-VAE基本相同,自监督损失为:
在这里插入图片描述
另一部分损失为GAN中的对抗loss,比如用 E ( D ( x ^ ) ) E(D(\hat{x})) E(D(x^))
对于判别器D(patch-based)而言,其损失函数可以笼统地表示为
L G A N ( { E , G , Z } , D ) = E ( D ( x ) ) + E ( 1 − D ( x ^ ) ) L_{GAN}(\{E,G,Z \},D) = E(D(x))+E(1-D(\hat{x})) LGAN({ E,G,Z},D)=E(D(x))+E(1D(x^))
则优化目标为:
在这里插入图片描述
到这里,我们训练除了code book Z,cnn生成器E,和cnn解码器G

3. transformer使用

生成图片的时候,我们并没有x,因此在最终生成结果时,我们需要丢弃掉CNN生成器E,而使用transformer来生成z。我们从Z中选一个初始的code,然后用transformer一步步推出完整的code列表,然后再送入G进行解码
训练方法是,使用当前的 z q ∈ R h × w × n z z_q\in R^{h\times w\times n_{z}} zqRh×w×nz,得到 h w hw hw个维度为 n z n_{z} nz的code,随机替换其中一部分code,即modified_indices,通过训练使用transformer重构出unmodified_indices。训练损失函数为cross-entropy交叉熵损失。

在VQVAE工作中,生成code这一步是使用PixelCNN来实现的。但是从效果上已经看出了,VQVAE只能生成低分辨率的64×64的图像,而在Transformer的大力支持下,VQGAN已经实现了百万像素图像的生成。

小讯
上一篇 2025-01-11 10:29
下一篇 2025-01-04 17:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15616.html