行业新闻

bibo必博“AI”科普丨超详细整理一文彻底搞懂生成对抗网络(GANs)原理

发布日期:2024-04-05  来源:

  bibo必博GAN(生成对抗网络)已经彻底革新了机器学习领域,使计算机能够生成极为逼真的数据,如图像、音乐,甚至是文本。

  GAN是一类旨在生成逼真数据的机器学习模型。无论是制作栩栩如生的图像、编写引人入胜的音乐,还是生成令人信服的文本,GAN都有着惊人的能力,仿佛具有模拟人类创造力。

  在这篇文章中,我们将深入探讨它们的架构,并探索它们的主要组成部分及其工作原理。

  GANs是由Ian Goodfellow和其他蒙特利尔大学的研究人员,包括Yoshua Bengio,在2014年6月的论文《生成对抗网络》中介绍的一种新型神经网络架构。

  GANs最显著的特点是它们能够创建超现实主义的图像、视频、音乐和文本。GANs有能力从训练图像中学习特征,并利用这些学到的模式想象出它们自己的新图像。例如,图1中展示的图像就是使用GANs模型生成的。

  长久以来,人类在想象和创造方面一直占有优势,而计算机则在解决回归、分类和聚类等问题方面表现出色。但随着生成式网络的引入,研究人员能够让计算机生成与人类相同甚至更高质量的内容。

  通过让计算机学会模仿任何数据分布,它们可以被教会创造出与我们世界相似的各个领域的世界:图像、音乐、语言和散文。从某种意义上说,它们就像机器人艺术家,其产出令人印象深刻。

  GANs也被视为实现人工通用智能(AGI)的重要一步,AGI是一种能够匹配人类认知能力,在几乎任何领域(从图像到语言,再到创作十四行诗所需的创造力)都能获得专业知识的人工系统。

  首先,我们将介绍GANs及其主要组成部分的概览,然后我们将探索如何训练和评估它们,最后,我们将从头开始实现并训练一个端到端的GAN模型。

  GANs基于对抗训练的思想。它们基本上由两个相互竞争的神经网络组成。这种竞争性帮助它们模仿任何数据分布。

  我们可以将GAN架构想象成两个拳击手的战斗。在他们征服游戏的过程中,双方都在学习对方的移动和技巧。他们开始时对对手了解不多。随着游戏的进行,他们学习并变得越来越好。

  另一个帮助理解GANs想法的类比:将GANs想象成一个伪造者和一个警察在一场猫捉老鼠的游戏中的对立,其中伪造者正在学习通过假钞,而警察正在学习检测它们。双方都在动态变化。

  这意味着,随着伪造者学习完善制造假钞,警察也在训练并变得更好,双方都在不断升级中学习对方的方法。

  2.这个生成的图像与从实际的、真实的数据集中取出的图像一起输入到鉴别器中。

  3.鉴别器接收真实和假图像,并返回概率,一个介于0和1之间的数字,1代表预测的线代表伪造。

  如果仔细观察生成器和鉴别器网络,会发现生成器网络是一个倒置的ConvNetbibo必博,从压平的向量开始,然后图像被放大,直到它们与训练数据集中的图像具有相似的大小。

  在2014年的原始GAN论文中,使用多层感知器(MLP)网络构建了生成器和鉴别器网络。然而,从那时起,已经证明卷积层能够增强鉴别器的预测能力,这反过来又提高了生成器和整体模型的准确性。这种类型的GAN被称为DCGAN(深度卷积GAN)。

  现在,所有GAN架构都包含卷积层,因此当我们谈论GAN时,“DC”已被暗含在内,我们将在本文及本系列中将GAN和DCGAN统称为DCGAN。

  鉴别器的目标是预测图像是真实的还是假的。这是一个典型的监督分类问题,所以我们可以使用传统的分类器网络。

  网络由堆叠的卷积层组成,接着是一个带有sigmoid激活函数的密集输出层。我们使用sigmoid激活函数,因为这是一个二元分类问题,网络的目标是输出介于0和1之间的概率预测值。其中0意味着生成器生成的图像是假的,1意味着它是线中,我们可以看到GAN模型的鉴别作用,它接收两组图像。第一个是来自训练集的真实图像,第二个是假的,由生成器模型生成。

  训练鉴别器相当直接,因为它类似于传统的监督分类问题,我们用标记的图像来喂养鉴别器:假的(或生成的)和真实的图像。真实图像来自训练数据集,假图像是生成器模型的输出。

  让我们在Keras中实现鉴别器网络,以了解其工作原理。鉴别器模型中没有什么新东西。它遵循传统的CNN网络的常规模式。

  我们将堆叠卷积、批量归一化、激活和dropout层来创建我们的模型。所有这些层都有我们在训练网络时调整的超参数。对于您自己的实现,您可以调整这些超参数,并根据需要添加或删除层。

  生成器网络接收一些随机数据,并尝试模仿训练数据集以生成假图像。它的目标是通过尝试生成与训练数据集完美复制品的图像来欺骗鉴别器。

  随着它的训练,它在每次迭代后都会变得越来越好。另一方面,鉴别器同时被训练,所以生成器必须不断改进,因为鉴别器学会了它的技巧。

  生成器模型的架构看起来像是一个倒置的传统ConvNet。生成器接收一个带有随机噪声数据的向量输入,并将其重塑为一个具有宽度、高度和深度的立方体体积。这个体积被视为将被馈送到几个卷积层的特征图,这些卷积层将创建最终的图像。

  就像传统的卷积神经网络使用池化层来下采样输入图像一样。为了缩放特征图,我们使用上采样层,通过重复其输入像素的每行和每列来放大图像尺寸。

  现在,让我们使用Keras构建生成器网络。在生成器代码中,我们将使用与鉴别器网络中使用的类似组件。唯一的新组件是上采样层,通过重复像素来将其输入尺寸加倍。

  与鉴别器类似,我们将堆叠卷积层,并添加其他优化层,如BatchNormalization。生成器模型的关键区别在于它从压平的向量开始,然后图像被上采样,直到它们具有与训练数据集相似的尺寸。

  在接下来的文章中,我们将探讨GANs模型的训练过程以及如何评估它们。请继续关注即将到来的文章。

相关新闻