产生兴趣:生成式对抗网络的温和介绍

233 阅读4分钟

生成式对抗网络(GANs)简介

生成对抗网络(GANs)自2014年由伊恩-古德费罗(Ian Goodfellow)和他的同事提出以来,已经在深度学习领域掀起了波澜。GANs是一种深度神经网络,可以生成与提供给它们的训练数据相似的新的、现实的数据。

它们通过训练两个模型--生成器鉴别器 --在一个竞争环境中工作,其中生成器试图创建能够欺骗鉴别器的现实数据,而鉴别器则试图区分真实数据和生成的数据。

为什么首先要开发GANs?

GANs的开发是为了解决生成真实数据的问题,如图像、视频和音频,可用于各种应用,如视频游戏设计、虚拟现实和数字艺术。

传统的生成模型,如自动编码器和变异自动编码器,在生成具有精细细节、尖锐边缘和不同风格的真实数据的能力方面存在局限性。

GANs为这个问题提供了一个解决方案,它引入了一种新的方法,利用对抗性训练来生成与真实数据无法区分的数据。

GANs是如何工作的?

GANs由两个深度神经网络组成--一个生成器和一个鉴别器--它们在竞争环境中被训练。生成器将随机噪声作为输入,并生成与训练数据相似的新数据样本。鉴别器被训练来区分真实和生成的数据。生成器的目标是生成能够欺骗鉴别器使其认为是真实的数据,而鉴别器的目标是正确区分真实和生成的数据。

训练过程开始时,生成器产生随机噪声,通过其层产生新的样本。然后,这个生成的样本与训练数据中的真实样本一起被传递给判别器。鉴别器给每个样本分配一个概率分数,表明它是真实的还是生成的可能性。生成器的目标是使鉴别器分配给生成样本的概率分数最大化,而鉴别器的目标是正确区分真实样本和生成样本。

训练一直持续到生成器能够生成与真实数据无法区分的数据,而判别器不能以高置信度区分真实和生成的数据。

image.png

GAN的结构

GANs背后的数学原理

因为鉴别器的任务是进行二进制分类,以区分真实和虚假,所以它的损失函数二进制交叉熵。

生成器所做的是将噪声转换为真实数据,并将其传递给鉴别器以欺骗它。

所用的设计方法是将其建模为一个MiniMax游戏

image.png

GAN的成本函数

J(D)中的第一项代表将实际数据传给鉴别器,鉴别器希望将预测1的对数概率最大化,表明数据是真实的。

第二项代表由生成器(G)生成的样本。

在这里,鉴别器希望最大化预测零的对数概率,表明数据是假的。另一方面,生成器则试图使判别器正确的对数概率最小。这个问题的解决方案是博弈的均衡点,也就是判别者损失的鞍点。

现在的问题是为什么这是一个最小函数?

这是因为鉴别器试图使目标最大化,而生成器则试图使其最小化,由于这种最小化/最大化,我们得到了最小化项。它们都是通过交替的梯度下降来共同学习的**。**

虽然GAN的想法在理论上很简单,但要建立一个有效的模型却非常困难。在GAN中,有两个深度网络耦合在一起,使得梯度反向传播的难度增加了一倍。

GANs在哪里使用?

GANs在各个领域有大量的实际应用,包括:

图像合成:GANs可以被用来生成与真实图像相似的新图像。这为各个领域的应用提供了新的机会,包括艺术和设计,GANs可以用来创建现实世界中不存在的物体的逼真图像。

视频合成:GANs可以用来生成视频的新帧。这涉及到在视频的一组帧上训练生成器,然后生成与训练数据相似的新帧。

文本生成:GANs可以用来生成与真实文本相似的新文本样本。这可以用于聊天机器人、机器翻译、甚至创意写作等应用。

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

参考文献

[1] Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2014)。生成式对抗网络。In Advances in neural information processing systems (pp. 2672-2680).

[2] Radford, A., Metz, L., & Chintala, S. (2016).用深度卷积生成对抗网络进行无监督表示学习。 arXiv预印本arXiv:1511.06434。

[3]towardsdatascience.com/the-math-be…