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 network 和 discriminative network 。
唯一区别在于在条件 GAN 中,生成器网络和判别器网络都会随着它们各自的输入而接收附加的条件信息 y。借助此图解,我们来理解它 −
The Generator Network
上图所示的生成器网络接受两个输入:从预定义分布中采样的随机噪声矢量和条件信息“y”。它现在将其转换为合成数据样本。经过转换后,生成器的目标不仅是产生与真实数据相同的数据,还要与所提供的条件信息对齐。
The Discriminator Network
判别器网络接收来自生成器的真实数据样本和虚假样本以及条件信息“y”。
判别器网络的目标是对输入数据进行评估,并尝试在数据集的真实数据样本和生成器模型产生的虚假数据样本之间进行区分,同时考虑所提供的条件信息。
我们已经了解了在 cGAN 架构中使用条件信息。让我们来了解条件信息及其类型。
Conditional Information
条件信息通常表示为“y”,是提供给生成器网络和判别器网络以限定生成过程的附加信息。根据应用程序和对生成输出的需要控制,条件信息可采取多种形式。
一些常见的 types of conditional information 如下 −
-
Class Labels − 在图像分类任务中,条件信息“y”可表示对应不同类别的类标签。例如,在手写数字数据集,在“y”可以指示生成器网络应该产生的数字类别 (0-9)。
-
Attributes − 在图像生成任务中,条件信息“y”可表示所需输出的特性或特征,例如对象的色彩、服装款式或人的姿势。
-
Textual Descriptions − 对于文本到图像的合成任务中,条件信息“y”可能包括描述生成图像所需特性的文本描述或标题。
Applications of Conditional GANs
下面列出了一些条件生成对抗网络找到其应用的领域 −
Image-to-Image Translation
条件生成对抗网络最适用于诸如将图像从一个域转换成另一个域的任务。将图像转换成包括将卫星图像转换成地图、将草图转换成逼真的图像,或将白天场景转换成夜晚场景等。