Gen-ai 简明教程

Conditional Generative Adversarial Networks (cGAN)

What is a Conditional GAN?

生成对抗网络 (GAN) 是一种深度学习框架,可以为给定数据集生成新的随机合理示例。条件 GAN (cGAN) 通过将条件信息(例如类标签、属性,或甚至是其他数据样本)加入生成器和判别器网络,扩展了 GAN 框架。

在这些条件信息的帮助下,条件 GAN 为我们提供了控制已生成输出特征的能力。

阅读本章以了解条件 GAN 的概念、其架构、应用程序和挑战。

Where do We Need a Conditional GAN?

在使用 GAN 时,可能会出现希望它生成特定类型图片的情况。例如,若要产生狗的虚假图片,需要用丰富的狗图谱训练 GAN。虽然我们可以使用已训练的模型生成随机狗的图像,但无法命令它生成例如斑点狗或罗特韦尔犬的图像。

在训练期间,为了使用条件 GAN 产生狗的虚假图片,将图像传给网络并使用它们的真实标签(斑点狗、罗特韦尔犬、巴哥犬等),以便模型学习这些狗之间的差异。通过这种方式,我们可以让我们的模型能够生成特定品种狗的图像。

条件 GAN 是传统 GAN 架构的扩展,它允许我们通过对网络施加条件附加信息来生成图片。

Architecture of Conditional GANs

与传统 GAN 类似,条件 GAN 的架构包含两个主要组件: generator networkdiscriminative network

唯一区别在于在条件 GAN 中,生成器网络和判别器网络都会随着它们各自的输入而接收附加的条件信息 y。借助此图解,我们来理解它 −

conditional gan

The Generator Network

上图所示的生成器网络接受两个输入:从预定义分布中采样的随机噪声矢量和条件信息“y”。它现在将其转换为合成数据样本。经过转换后,生成器的目标不仅是产生与真实数据相同的数据,还要与所提供的条件信息对齐。

The Discriminator Network

判别器网络接收来自生成器的真实数据样本和虚假样本以及条件信息“y”。

判别器网络的目标是对输入数据进行评估,并尝试在数据集的真实数据样本和生成器模型产生的虚假数据样本之间进行区分,同时考虑所提供的条件信息。

我们已经了解了在 cGAN 架构中使用条件信息。让我们来了解条件信息及其类型。

Conditional Information

条件信息通常表示为“y”,是提供给生成器网络和判别器网络以限定生成过程的附加信息。根据应用程序和对生成输出的需要控制,条件信息可采取多种形式。

一些常见的 types of conditional information 如下 −

  1. Class Labels − 在图像分类任务中,条件信息“y”可表示对应不同类别的类标签。例如,在手写数字数据集,在“y”可以指示生成器网络应该产生的数字类别 (0-9)。

  2. Attributes − 在图像生成任务中,条件信息“y”可表示所需输出的特性或特征,例如对象的色彩、服装款式或人的姿势。

  3. Textual Descriptions − 对于文本到图像的合成任务中,条件信息“y”可能包括描述生成图像所需特性的文本描述或标题。

Applications of Conditional GANs

下面列出了一些条件生成对抗网络找到其应用的领域 −

Image-to-Image Translation

条件生成对抗网络最适用于诸如将图像从一个域转换成另一个域的任务。将图像转换成包括将卫星图像转换成地图、将草图转换成逼真的图像,或将白天场景转换成夜晚场景等。

Semantic Image Synthesis

条件生成对抗网络可以条件化语义标签,因此他们可以基于文本描述或语义布局生成逼真的图像。

Super-Resolution and Inpainting

条件生成对抗网络还可以用于图像超分辨率任务,在这个任务中,低分辨率图像被转换成类似的高分辨率图像。它们也可以用于补全任务,在补全任务中,基于上下文信息,填充图像中缺失的部分。

Style Transfer and Editing

条件生成对抗网络允许我们控制特定的属性,例如色彩、纹理或艺术风格,同时保留图像的其他方面。

Challenges in using Conditional GANs

条件生成对抗网络在生成模型中提供了重大的进步,但它们也有一些挑战。我们看看在使用条件生成对抗网络你可以面对的挑战 −

Mode Collapse

像传统的生成对抗网络,条件生成对抗网络也可能经历模式崩溃。在模式崩溃中,生成器学会产生有限种类的样本,并且无法捕获整个数据分布。

Conditioning Information Quality

条件生成对抗网络的有效性取决于所提供条件信息的质量和相关性。嘈杂或不相关的条件信息会导致生成输出不良。

Training Instability

在条件生成对抗网络中也可以面临传统的生成对抗网络中观察到的训练不稳定性问题。为了避免这一点,条件生成对抗网络需要小心架构设计和训练方法。

Scalability

随着条件信息的复杂性提高,处理条件生成对抗网络变得困难。它需要更多的计算资源。

Conclusion

条件生成对抗网络 (cGAN) 通过包括条件信息,例如类标签、属性,或甚至其他数据样本,扩展生成对抗网络框架。条件生成对抗网络在生成输出的特征上引入了控制。

从图像到图像的翻译到语义图像合成,条件生成对抗网络在各个领域找到了自己的应用。