生成对抗网络(GAN)

生成对抗网络(GAN)是一种用于生成合成图像的深神经网络。该体系结构包括两个深神经网络,一个发电机和一个歧视者,它们相互对抗(因此,“对抗性”)。生成器生成新的数据实例,而鉴别器则评估数据的真实性,并决定数据的每个实例是从培训数据集中“真实”的,还是从发电机中“假”。

共同培训生成器和鉴别器相互对抗,直到生成器能够创建鉴别器无法确定的现实合成数据,这是假的。成功培训后,发电机生成的数据可用于创建新的合成数据,以便将其用作其他深神经网络的输入。

甘斯(Gans)具有多功能性,因为他们可以学会生成任何数据类型的新实例,例如面部的合成图像,以某种样式的新歌或特定类型的文本。

训练一个甘

使用创建货币合成图像的示例,让我们浏览GAN体系结构的特定部分和功能。

  1. 噪声被馈入发电机。由于尚未培训发电机,因此一开始的输出看起来像噪音。
gna-discovery-page-fig1
  1. 训练数据和发电机的输出将发送到歧视器,该鉴定器正在并行训练以识别真实/假图像。一开始,判别器的输出并不十分准确,因为网络的这一部分也接受了训练,并且准确性会随着时间的推移而提高。
GNA分散页面
  1. 反馈:歧视器的输出可以回到发电机和鉴别器,可以使用此信息来更新参数并尝试提高准确性。
gna-discovery-page-fig3

当从真实数据集中显示一个实例时,该歧视器的目标是识别那些真实的图像。同时,发电机正在创建新的合成图像,并将其传递给鉴别器。这样做的希望,即使他们是假的,他们也将被视为真实。发电机的目的是生成可传递图像:撒谎而不会被捕获。鉴别器的目的是将来自发电机的图像识别为假。

MATLAB®深度学习工具箱™让您使用自动差异化构建gan网络架构,定制培训循环和分享权重。

生成对抗网络的应用

手写一代:与图像示例一样,GAN用于创建合成数据。这可以用于补充需要更多数据示例的较小数据集,以训练准确的深度学习模型。一个例子是手写检测:为了培训笔迹深度神经网络,需要数千个培训数据样本,并且手动收集此数据可能是耗时的。

使用gans的合成笔迹生成。

使用gans的合成笔迹生成。

场景产生:有条件的gan是一种特定类型的gan,利用标签,而原始的gan不假设将存在标签。有条件的gans可以用于场景生成等应用中,其中必须有某个组织的信息。以自动驾驶场景生成为例。道路和人行道必须位于建筑物和天空下方。为此示例创建的合成图像,该示例不符合道路位置,将立即确定为假且无法使用的自动驾驶应用程序。

图像到图像翻译(PIX2PIX)使用条件gan。

图像到图像翻译(PIX2PIX)使用条件gan。

音频和语音应用:GAN还用于诸如文本到语音综合,语音转换和语音增强之类的应用。GAN比传统的音频和语音实现提供了重要的优势,因为它们可以生成新的样本,而不是简单地增强现有信号。gan用于声音合成的一个示例是创建鼓声的合成版本:火车生成对抗网络(GAN)进行声音综合

注意:GAN可以在生成新的合成数据以在许多应用程序中使用,但是由于可能发生的许多故障模式,获得准确的结果通常是具有挑战性的。MATLAB让您监视GAN训练进度并确定常见的故障模式