生成性对抗网络是一种用于生成合成图像的深层神经网络。该体系结构包括两个深层神经网络,一个生成器和一个鉴别器,它们相互对抗(因此称为“对抗性”)。生成器生成新的数据实例,而鉴别器评估数据的真实性,并确定每个数据实例是来自训练数据集的“真”还是来自生成器的“假”。

同时,生成器和鉴别器被训练为相互对抗,直到生成器能够创建鉴别器无法再确定的真实合成数据。在训练成功后,发生器产生的数据可以用来创建新的合成数据,作为其他深层神经网络的潜在输入。

GANs是多功能的,因为它们可以学习生成任何数据类型的新实例,例如人脸的合成图像、特定样式的新歌或特定类型的文本。

训练阿甘

使用一个创建货币合成图像的示例,让我们了解GAN架构的特定部分和功能。

  1. 噪音输入发电机。由于发电机还没有经过训练,输出一开始看起来像噪音。
  1. 训练数据和发生器的输出被发送到鉴别器,鉴别器被并行训练以识别真/假图像。鉴别器在开始时的输出将不是很准确,因为这部分网络也在训练中,随着时间的推移,准确度将提高。
  1. 反馈:鉴别器的输出可以反馈给发生器和鉴别器,后者可以利用这些信息更新参数,试图提高精度。

鉴别器的目标是,当显示真实数据集的实例时,识别那些真实的图像。同时,生成器正在创建新的合成图像,并将其传递给鉴别器。它这样做是希望它们也能被认为是真实的,即使它们是假的。生成器的目标是生成可通过的图像:在不被捕获的情况下撒谎。鉴别器的目标是将来自发生器的图像识别为伪图像。

MATLAB软件®深度学习工具箱™让你用自动区分来构建GANs网络架构,自定义训练循环,和共享权重。

生成对抗网络的应用

手写体生成:与图像示例一样,GANs用于创建合成数据。这可以用来补充需要更多数据示例的较小数据集,以便训练精确的深度学习模型。笔迹检测就是一个例子:为了训练一个关于笔迹的深度神经网络,需要数千个样本的训练数据,而手动采集这些数据可能需要大量的时间。

使用GANs的合成笔迹生成。

场景生成:条件GAN是一种特定类型的GAN,它利用标签,而原始GAN不假定标签将存在。条件GANs可以用于场景生成等应用中,场景生成中的信息必须有一定的组织。以自动驾驶场景生成为例。道路和人行道必须位于建筑物和天空下方。在自动驾驶应用程序中,为本例创建的不符合道路位置的合成图像将立即被确定为虚假且不可用。

图像到图像的转换(pix2pix)使用条件GANs。

音频和语音应用:GANs还用于文本到语音合成、语音转换和语音增强等应用。与传统的音频和语音实现相比,GANs具有显著的优势,因为它们可以生成新的样本,而不是简单地增强现有的信号。在一个例子中,GANs用于声音合成是创建鼓声音的合成版本:用于声音合成的训练生成对抗网络(GAN)

注:GANs可以强大地生成新的合成数据,用于许多应用程序,但由于可能发生的许多故障模式,要获得准确的结果往往很困难。MATLAB让你监控培训进度,识别常见故障模式.