Gen-ai 简明教程

Generative Adversarial Network - Architecture and Types

生成对抗网络 (GAN) 通常利用诸如卷积神经网络 (CNN) 的架构。生成对抗网络框架由两个神经网络组成: GeneratorDiscriminator 。这些网络扮演着重要的作用,其中生成器专注于创建新数据而判别器评估它。阅读此章节来了解生成对抗网络架构、它们的组件、类型以及让它们如此强大的机制。

The Role of Generator in GAN Architecture

生成对抗网络架构的第一部分是生成器。我们看看它的功能和结构 −

Generator: Function and Structure

生成器的主要目标是生成新的数据样本,这些样本旨在与数据集中的真实数据类似。它从一个随机噪声向量开始,并通过全连接层(如 Dense 或卷积层)对其进行转换以生成合成数据样本。

Generator: Layers and Components

以下是生成器神经网络的层和组件列表−

  1. Input Layer − 生成器接受低维的随机噪声向量或输入数据作为输入。

  2. Fully Connected Layers − FLC 用来增加输入噪声向量的维数。

  3. Transposed Convolutional Layers − 这些层也称为反卷积层。它用于上采样,即生成一个具有比输入特征映射更大的空间维度输出特征映射。

  4. Activation Functions − 两种常用的激活函数为: Leaky ReLUTanh 。Leaky ReLU 激活函数有助于减少激活函数的神经元死亡问题,而 Tanh 激活函数确保输出在一个特定范围内。

  5. Leaky ReLU − 它生成最终的数据输出,如一定分辨率的图像。

Generator: Objective Function

生成器神经网络的目标是创建判别器无法与真实数据区分开来的数据。这是通过最小化生成器的损失函数实现的 −

\mathrm{L_{G} \: = \: \log(1 \: - \: D(G(Z)))}

此处,G(z) 是生成的数据,D(⋅) 表示判别器的输出。

The Role of Discriminator in GAN Architecture

GAN 架构的第二部分是判别器。让我们看一下它的功能和结构 −

Discriminator: Function and Structure

判别器的主要目标是将输入数据分类为真实数据或由生成器生成的数据。它将数据样本作为输入,并给出输出概率,表示样本是真实的还是假的。

Discriminator: Layers and Components

以下是判别器神经网络的层和组件列表 −

  1. Input Layer − 判别器从真实数据集或生成器接收数据样本作为输入。

  2. Convolutional Layers − 它用于对输入数据进行下采样以提取相关特征。

  3. Fully Connected Layers − FLC 用于处理提取的特征并最终进行分类。

  4. Activation Functions − 它使用 Leaky ReLU 激活函数来解决梯度消失问题。它还引入了非线性。

  5. Output Layer − 如同名称所表示的那样,它输出一个介于 0 到 1 之间的值,表示样本是真实的还是假的。

Discriminator: Objective Function

判别器神经网络的目标是最大化其正确区分真实数据和生成数据的可能性。这是通过最小化判别器的损失函数实现的 −

\mathrm{L_{D} \: = \: -(\log D(X) \: + \: \log(1 \: - \: D(G(Z))))}

本文中,“x” 是真实的数据样本。

Types of Generative Adversarial Networks

根据生成器和判别器网络相互作用的方式,我们可以构建出不同类型的 GAN 模型。以下是几个著名的变体 −

Vanilla GAN

原始 GAN 是生成对抗网络 (GAN) 最简单的形式。它可以提供 GAN 工作原理的基本概念。“原始”一词表示这是未进行任何高级修改或增强操作的最简单形式。

Deep Convolutional GANs (DCGANs)

DCGAN 是 GAN 最流行的实现之一。它在 ConvNets 中由 multi-layer perceptron 构成,以稳定 GAN 训练过程。这些指导方针显著稳定了 GAN 训练,尤其是在图像生成任务中。

DCGAN 的一些关键功能包括使用:

  1. Strided Convolutions

  2. Batch Normalization

  3. 取消完全连接的隐藏层

Conditional GANs (cGANs)

条件 GAN (cGAN) 将附加条件信息(例如类标签、属性甚至其他数据样本)包含到生成器和判别器中。在这些条件信息的帮助下,条件 GAN 让我们可以控制生成输出的特征。

CycleGANs

CycleGAN 专门用于不配对图像到图像的转换任务,其中输入和输出图像之间没有关系。循环一致性损失可确保从一个域转换到另一个域再返回时,产生一致的结果。

Progressive GANs (ProGANs)

ProGAN 通过在训练过程中逐步提高生成器和判别器的分辨率来生成高分辨率图像。使用这种方法,您可以创建更详细、质量更高的图像。

StyleGANs

NVIDIA 开发的 StyleGAN 专门用于生成逼真的高质量图像。它们引入了一些用于改善图像合成工作的创新技术,并且对特定属性拥有更好的控制。

Laplacian Pyramid GAN (LAPGAN)

拉普拉斯金字塔 GAN (LAPGAN) 是一种使用多分辨率方法生成高质量图像的生成对抗网络。它使用拉普拉斯金字塔框架,即在多个尺度上生成图像。

与标准 GAN 相比,LAPGAN 主要在创建详细而逼真的图像方面更有效。

Conclusion

GAN 让我们能够在各个域中创建真实的数据。在本章中,我们解释了 GAN 的架构和机制。