生成式对抗网络 (GAN) |简介
生成对抗网络 (GAN) 由 Ian Goodfellow 于 2014 年首次提出。GAN 是一类功能强大的神经网络,用于无监督学习。GAN 可以创造任何东西,无论你提供给他们什么,因为它是 Learn-Generate-Improve。要首先了解 GAN,您必须对
卷积神经网络知之甚少。如果将图像馈送到 CNN,CNN 经过训练可以根据图像的标签对图像进行分类,它会逐个像素分析图像并通过 CNN 隐藏层中存在的节点,作为输出,它会告诉图像是关于什么的或它在图像中看到什么。例如:如果 CNN 经过训练对狗和猫进行分类,并且图像被提供给该 CNN,它可以判断该图像中是狗还是猫。因此,它也可以称为分类算法。GAN 有何不同?GAN 可以分为两部分,即 Generator 和 Discriminator。鉴别器–GANs 的这一部分可以被认为类似于 CNN 的作用。判别器是一个卷积神经网络,由许多隐藏层和一个输出层组成,这里的主要区别是 GAN 的输出层只能有两个输出,这与 CNN 不同,CNN 可以有相对于它训练的标签数量的输出。判别器的输出可以是 1 或 0,因为为此任务专门选择了激活函数,如果输出为 1,则提供的数据是真实的,如果输出为 0,则将其称为假数据。Discriminator 在真实数据上进行训练,因此它学会识别实际数据的外观以及数据应该将哪些特征归类为真实数据。 发电机–从名称本身,我们可以理解它是一种生成算法。Generator 是一个逆卷积神经网络,它的作用与 CNN 完全相反,因为在 CNN 中,实际图像作为输入给出,分类标签预期作为输出,但在 Generator 中,随机噪声(具有一些确切值的向量)作为该逆 CNN 的输入,实际图像预期作为输出。简单来说,它利用自己的想象力从一段数据中生成数据。 如上图所示,一个随机值向量作为 Inverse-CNN 的输入,在通过隐藏层和激活函数后,接收图像作为输出。Generator 和 Discriminator 一起工作:正如我们已经讨论过的,Discriminator 是在实际数据上训练的,以分类给定的数据是否真实,因此 Discriminator 的工作是分辨什么是真实的,什么是假的。现在生成器开始从随机输入生成数据,然后将生成的数据作为输入传递给判别器,现在判别器分析数据并检查它被归类为真实数的接近程度,如果生成的数据不包含足够的特征而被判别器归类为真实数,那么这些数据和与之相关的权重将使用反向传播发送回生成器, 这样它就可以重新调整与数据关联的权重并创建比前一个更好的新数据。此新生成的数据再次传递给 Discriminator 并继续。只要 Discriminator 每次数据都不断将生成的数据分类为假数据,这个过程就会不断重复被归类为假数据,并且随着每一次反向传播,数据的质量会越来越好,并且总有一天 Generator 变得如此准确,以至于很难区分真实数据和 Generator 生成的数据。 简单