AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network)

这篇具有很好参考价值的文章主要介绍了AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 前言

我们已经学习了使用生成对抗网络 (Generative Adversarial Network, GAN) 解决各种图像生成任务。GAN 的模型架构和训练过程具有很高的灵活性,通过改进 GAN 架构设计和训练过程,研究人员提出了多种不同的网络架构,本节中,我们将介绍 ProGAN (Progressive Growing Generative Adversarial Network) 架构。

1. ProGAN

ProGAN (Progressive Growing Generative Adversarial Network )是由 NVIDIA2017 年提出的生成对抗网络 (Generative Adversarial Network, GAN) 模型,旨在提高 GAN 训练的速度和稳定性。在 ProGAN 中,并不直接对高分辨率图像进行训练,而是首先在低分辨率图像(例如 4 × 4 像素的图像)上训练生成器和判别器,然后在整个训练过程中逐渐增加网络层数以提高分辨率。需要注意的是,训练 ProGAN 需要大量的计算资源。

2. 渐进式训练

ProGAN 同样需要构建两个独立的网络,生成器和判别器,在训练过程中它们交替训练。
在普通 GAN 中,生成器始终输出高分辨率图像,即使在训练的早期阶段也是如此。但这种策略可能并非最优选择,生成器可能在训练的早期阶段很难学习到复杂特征。首先训练一个轻量级的 GAN 来生成准确的低分辨率图像,然后逐渐增加分辨率,这就是渐进式训练 (progressive training) 的核心思想。ProGAN 通过多个阶段进行训练,使用插值方法将训练集中图像尺寸缩放到 4 × 4 作为初始阶段,如下图所示。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

首先训练生成器将潜在输入噪声向量z(例如,长度为 512 )转换为形状为 4 × 4 × 3 的图像。相应的判别器将需要将尺寸为 4 × 4 × 3 的输入图像转换为标量预测,第一步中网络架构如下图所示。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

生成器中的蓝色框表示将一组特征图转换为 RGB 图像 (toRGB) 的卷积层,判别器中的蓝色框表示将 RGB 图像转换为一组特征图 (fromRGB) 的卷积层。
在原始 ProGAN 模型中,使用 80 万张图像训练这两个网络。接下来,我们需要了解如何扩展生成器和判别器以处理 8 × 8 像素的图像。
为了扩展生成器和判别器,我们需要混合使用其他神经网络层,可以分为过渡 (transition) 和稳定 (stabilization) 两个阶段。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

在过渡阶段,生成器会在现有的网络中附加新的上采样和卷积层,并使用残差连接来传递已经过训练的 toRGB 层的输出。需要注意的是,新的网络层最初使用参数 α α α 进行掩码处理,该参数在过渡阶段逐渐从 0 增加到 1,以便允许更多的新 toRGB 输出通过,减少现有 toRGB 层的输出。这是为了避免在添加新层时对网络造成冲击。
最终,旧的 toRGB 层输出被完全掩码,网络进入稳定阶段,在这一阶段,网络可以进一步调整输出,而不需要经过旧的 toRGB 层的输出。
鉴别器使用类似的过程,如下图所示。需要在输入图像之后,添加新的下采样和卷积层。现有的fromRGB层通过残差连接相连,并在过渡阶段随着新层的添加逐渐被淘汰,稳定阶段允许鉴别器使用新层进行微调。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

需要注意的是,即使网络是渐进训练的,也不会冻结任何网络层,在整个训练过程中,所有网络层都保持可训练状态。
ProGAN 中图像尺寸从 4 × 4 开始逐渐增长到 8 × 816 × 1632 × 32,直到 1,024 × 1,024,如下图所示。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

生成器和鉴别器的整体结构如下图所示。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

3. 其他技术

除了渐进训练外,ProGAN 还使用了包括小批标准差、均等学习率和逐像素归一化等技术。

3.1 小批标准差

小批标准差(Minibatch Standard Deviation)可以用于增加样本的多样性和减少模式崩溃的问题。在传统的 GAN 中,生成器网络接收一个随机噪声向量作为输入,并生成相应的合成样本。然而,这种方法存在一个问题,即生成的样本可能会过于相似,缺乏多样性。这是因为生成器通过学习大量样本的平均特征来生成图像,导致样本之间缺乏差异。
为了解决这个问题,小批标准差技术引入了一种新的特征向量计算方法。具体而言,它在生成器网络的某一层中计算生成样本的特征向量,并在训练过程中使用这些特征向量的标准差作为一个额外的特征。这个标准差可以理解为表示一小批(minibatch)样本之间的差异程度。
通过引入小批标准差,判别器网络不仅可以评估生成样本与真实样本之间的差异,还可以考虑生成样本之间的多样性。这使得生成器更倾向于生成多样性更高的样本,避免生成过于相似的输出。
小批标准差技术对于解决模式崩溃问题也是有效的。通过使用小批标准差,生成器可以更好地学习到数据集的整体分布,避免陷入单一模式。

3.2 均等学习率

均等学习率 (Equalized Learning Rates) 是一种用于训练神经网络的技术,旨在解决传统神经网络中的权重初始化问题。传统的神经网络在权重初始化时通常使用高斯分布或均匀分布随机初始化,这通常有助于提高训练过程的稳定性,但这种方法缺乏可解释性和普适性,导致网络可能出现梯度爆炸、梯度消失等问题。
AdamRMSProp 等优化器会规范化每个权重的梯度更新,使得更新的大小与权重的尺度(大小)无关。然而,这意味着动态范围较大的权重(即,输入较少的层)比动态范围较小的权重(即,输入较多的层)调整所需的时间相对较长。这会导致 ProGAN 中的生成器和判别器不同层的训练速度不平衡,因此需要使用均等学习率来解决这个问题。
均等学习率利用了批归一化的基本原理,在每一层的输入上动态地归一化权重,从而使每一层的输出具有相似的数量级。在实际应用中,通常通过将每一层的权重乘以一个标准化因子来实现。这个标准化因子可以根据每一层的权重大小和输入维度自适应地计算,从而保证每一层的权重归一化后具有相似的数量级。
除了权重归一化之外,均等学习率还通过缩放每一层的学习率来实现更加稳定的优化。在传统神经网络中,学习率通常是固定的,并在每次训练迭代中应用。然而,在使用均等学习率时,学习率会根据每一层的权重缩放,从而避免过度更新较小的权重(由于它们具有较大的梯度)或过度更新较大的权重(由于它们具有较小的梯度)。

3.3 逐像素归一化

逐像素归一化 (Pixelwise normalization) 是一种在图像生成任务中常用的技术,旨在提高生成模型的稳定性和样本质量。与传统的批归一化不同,批归一化是对整个批数据进行归一化处理,而逐像素归一化则是将每个像素独立地进行归一化。
在传统的生成模型中,生成器网络通常接收一个随机噪声向量作为输入,并生成一张完整的图像。然而,由于每个像素都是独立的,它们具有不同的分布和范围。这导致生成器在训练过程中可能会过度关注某些像素,而忽略其他像素的贡献,导致生成图像出现不均匀的色彩分布或噪点。
为了解决这个问题,逐像素归一化将每个像素独立地进行归一化处理,使得图像在各个像素上具有相似的分布。具体而言,对于每个像素,逐像素归一化计算该像素在所有样本中的均值和标准差,并将像素的原始值减去均值,然后除以标准差。这样做可以将每个像素的值缩放到接近零均值和单位方差的范围内,使得生成器更容易学习到图像的结构和细节。
逐像素归一化增加了生成器对每个像素的敏感性,并减少了样本之间的差异。这有助于生成器更好地捕捉图像的局部细节和全局结构,提高生成图像的质量和真实度。在逐像素归一化层并不存在可训练的权重。

4. 图像生成

除了 CelebA 数据集外,ProGAN 还是用大规模场景理解 (Large-scale Scene Understanding LSUN) 数据集的图像进行训练,生成的结果样本如下所示,这充分证明了 ProGAN 在图像生成方面的强大性能,并为 StyleGANStyleGAN2 等模型奠定了基础。

AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network),AIGC,深度学习,生成对抗网络

小结

本节中,详细介绍了 ProGAN 模型的基本架构与训练流程。ProGAN 中首次提出了渐进训练概念,首先在低分辨率图像上训练生成器和判别器,然后在整个训练过程中逐渐增加网络层数以提高分辨率。

系列链接

AIGC实战——生成模型简介
AIGC实战——深度学习 (Deep Learning, DL)
AIGC实战——卷积神经网络(Convolutional Neural Network, CNN)
AIGC实战——自编码器(Autoencoder)
AIGC实战——变分自编码器(Variational Autoencoder, VAE)
AIGC实战——使用变分自编码器生成面部图像
AIGC实战——生成对抗网络(Generative Adversarial Network, GAN)
AIGC实战——WGAN(Wasserstein GAN)
AIGC实战——条件生成对抗网络(Conditional Generative Adversarial Net, CGAN)
AIGC实战——自回归模型(Autoregressive Model)
AIGC实战——改进循环神经网络
AIGC实战——像素卷积神经网络(PixelCNN)
AIGC实战——归一化流模型(Normalizing Flow Model)
AIGC实战——能量模型(Energy-Based Model)
AIGC实战——扩散模型(Diffusion Model)
AIGC实战——GPT(Generative Pre-trained Transformer)
AIGC实战——Transformer模型文章来源地址https://www.toymoban.com/news/detail-845171.html

到了这里,关于AIGC实战——ProGAN(Progressive Growing Generative Adversarial Network)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Generative Adversarial Network

    Goodfellow, 2014年 文献阅读笔记--GAN--Generative Adversarial NetworkGAN的原始论文-组会讲解_gan英文论文_Flying Warrior的博客-CSDN博客 启发:如何看两个数据是否来自同一个分布? 在统计中,two sample test。训练一个二分类的分类器,如果能分开这两个数据,说明来自不同的分布;反之来

    2024年02月16日
    浏览(59)
  • Generative Adversarial Network(生成对抗网络)

    目录 Generative Adversarial Network(生成对抗网络) Basic Idea of GAN GAN as structured learning Can Generator learn by itself Can Discriminator generate Theory behind GAN Conditional GAN Generation (生成器)  Generation是一个neural network,它的输入是一个vector,它的输出是一个更高维的vector,以图片生成为例,输

    2024年02月09日
    浏览(59)
  • 李宏毅 Generative Adversarial Network(GAN)生成对抗网络

    附课程提到的各式各样的GAN:https://github.com/hindupuravinash/the-gan-zoo 想要让机器做到的是生成东西。-训练出来一个generator。 假设要做图像生成,要做的是随便给一个输入(random sample一个vector,比如从gaussian distribution sample一个vector),generator产生一个image。丢不同的vector,就应

    2024年01月21日
    浏览(56)
  • VQGAN(Vector Quantized Generative Adversarial Network)模型简介

    论文:Taming Transformers for High-Resolution Image Synthesis VQGAN (Vector Quantized Generative Adversarial Network) 是一种基于 GAN 的生成模型,可以将图像或文本转换为高质量的图像。该模型是由 OpenAI 研究团队在 2021 年发布的。 VQGAN 模型使用了两个核心部分:Vector Quantization (VQ) 和 GAN。其中 VQ 是

    2024年02月08日
    浏览(44)
  • 论文阅读:FusionGAN: A generative adversarial network for infrared and visible image fusion

    @article{ma2019fusiongan, title={FusionGAN: A generative adversarial network for infrared and visible image fusion}, author={Ma, Jiayi and Yu, Wei and Liang, Pengwei and Li, Chang and Jiang, Junjun}, journal={Information fusion}, volume={48}, pages={11–26}, year={2019}, publisher={Elsevier} } [论文下载地址] Image fusion, infrared image, visible image

    2024年01月22日
    浏览(47)
  • GAN(Generative Adversarial Network)作为深度学习领域中的一种生成模型,近年来在图像、音频等多种模态数据上取得了良好的效果。其核心思想就是通过博弈论中的对抗训练方式

    作者:禅与计算机程序设计艺术 GAN(Generative Adversarial Network)作为深度学习领域中的一种生成模型,近年来在图像、音频等多种模态数据上取得了良好的效果。其核心思想就是通过博弈论中的对抗训练方式,让两个网络(一个生成网络G和一个判别网络D)互相竞争,不断提升

    2024年02月07日
    浏览(48)
  • AIGC实战——GPT(Generative Pre-trained Transformer)

    注意力机制能够用于构建先进的文本生成模型, Transformer 是用于序列建模的强大神经网络,该神经网络不需要复杂的循环或卷积架构,而只依赖于注意力机制。这种方法克服了循环神经网络 ( Recurrent Neural Network , RNN ) 方法难以并行化的缺陷( RNN 必须逐符号处理序列)。 Transf

    2024年03月12日
    浏览(45)
  • GAN | 论文精读 Generative Adversarial Nets

    提出一个GAN (Generative Adversarial Nets) (1)生成模型G(Generative),是用来得到分布的,在统计学眼里,整个世界是通过采样不同的分布得到的,生成东西的话,目前就是要抓住一个数据的分布, (2)辨别模型D(D) ,他是来辨别你的样本究竟是从真实世界来的呢,还是来自

    2024年02月11日
    浏览(44)
  • 【深度学习】生成对抗网络Generative Adversarial Nets

            本文是GAN网络的原始论文,发表于2014年,我们知道,对抗网络是深度学习中,CNN基础上的一大进步; 它最大的好处是,让网络摆脱训练成“死模型”到固定场所处去应用,而是对于变化的场景,网络有一个自己的策略; 这是非常值得研究的课题。 本文记录了原

    2024年02月15日
    浏览(55)
  • 【论文精度(李沐老师)】Generative Adversarial Nets

    我们提出了一个新的framework,通过一个对抗的过程来估计生成模型,其中会同时训练两个模型: 生成模型G 来获取整个数据的分布, 辨别模型D 来分辨数据是来自于训练样本还是生成模型G。生成模型G的任务是尽量的让辨别模型D犯错。这个framework对应一个博弈论中双人对抗游

    2023年04月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包