📜  生成对抗网络 (GAN) |一个介绍

📅  最后修改于: 2022-05-13 01:58:08.356000             🧑  作者: Mango

生成对抗网络 (GAN) |一个介绍

生成对抗网络 (GAN) 于 2014 年由Ian Goodfellow首次提出。 GAN 是一类强大的神经网络,用于无监督学习。 GAN 可以创建任何你提供给他们的东西,因为它学习-生成-改进。

要首先了解 GAN,您必须对卷积神经网络知之甚少。如果将图像馈送到 CNN,CNN 会被训练根据其标签对图像进行分类,它会逐个像素地分析图像,并通过 CNN 隐藏层中存在的节点作为输出,它会告诉我们图像的内容或它在图像中看到了什么。

例如:
如果训练 CNN 对狗和猫进行分类,并且将图像输入到该 CNN,则它可以判断该图像中是否有狗或猫。因此它也可以称为分类算法。

GAN 有何不同?

GAN 可以分为生成器判别两部分。



鉴别器——
这部分 GAN 可以认为类似于 CNN 所做的。鉴别器是一个由许多隐藏层和一个输出层组成的卷积神经网络,这里的主要区别是 GAN 的输出层只能有两个输出,不像 CNN,它可以根据训练的标签数量来输出。
由于为此任务专门选择了激活函数,鉴别器的输出可以是 1 或 0,如果输出为 1,则提供的数据是真实的,如果输出为 0,则将其称为假数据。

鉴别器是在真实数据上训练的,因此它学会识别实际数据的样子以及数据必须被归类为真实数据的哪些特征。

发电机 -
从名字本身,我们就可以理解它是一个生成算法。 Generator 是一个逆卷积神经网络,它的作用与 CNN 完全相反,因为在 CNN 中,实际图像作为输入给出,分类标签预计作为输出,但在 Generator 中,随机噪声(具有一些值)作为该逆 CNN 的输入给出,并且期望实际图像作为输出。简单来说,它利用自己的想象力从一段数据中生成数据。

如上图所示,一个随机值向量作为 Inverse-CNN 的输入,在通过隐藏层和激活函数后,接收到一个图像作为输出。

生成器和鉴别器一起工作:
正如我们已经讨论过的,Discriminator 是在实际数据上训练来分类给定数据是否真实的,所以 Discriminator 的工作是分辨什么是真实的,什么是假的。

现在生成器开始从随机输入生成数据,然后将生成的数据作为输入传递给鉴别器,现在鉴别器分析数据并检查它与真实数据的接近程度,如果生成的数据不包含足够的特征判别器将其归类为真实数据,然后使用反向传播将此数据和与之关联的权重发送回生成器,以便它可以重新调整与数据关联的权重并创建比前一个更好的新数据。这个新生成的数据再次传递给鉴别器并继续。
只要鉴别器不断将生成的数据分类为假数据,这个过程就会不断重复,因为每次数据被分类为假数据,每次反向传播,数据质量都会越来越好,有时生成器会变得如此准确很难区分真实数据和生成器生成的数据。

简单来说,判别器是一个训练有素的人,可以分辨什么是真实的,什么是假的,而生成器试图欺骗判别器,让他相信生成的数据是真实的,每次失败的尝试,生成器都会学习并改进自己以产生更真实的数据喜欢。它也可以说是生成器和判别器之间的竞争。

进一步阅读- https://www.geeksforgeeks.org/generative-adversarial-network-gan/