生成对抗网络 在上一节中,我们学习了生成模型:可以生成与训练数据集中的图像相似的新图像的模型。VAE 就是一个很好的生成模型的例子。 课前测验 然而,如果我们尝试生成一些真正有意义的东西,比如在合理分辨率下生成一幅画,使用 VAE,我们会发现训练效果并不理想。对于这种用例,我们应该了解另一种专门针对生成模型的架构——生成对抗网络,或称为 GAN。 GAN 的主要思想是让两个神经网络相互对抗地进行训练: 图片来自 Dmitry Soshnikov ✅ 一些术语: 生成器 是一个网络,它接受一些随机向量,并生成图像作为结果 判别器 是一个网络,它接受一张图像,并应判断该图像是真实的(来自训练数据集),还是由生成器生成的。其实它本质上就是一个图像分类器。
在上一节中,我们学习了生成模型:可以生成与训练数据集中的图像相似的新图像的模型。VAE 就是一个很好的生成模型的例子。
然而,如果我们尝试生成一些真正有意义的东西,比如在合理分辨率下生成一幅画,使用 VAE,我们会发现训练效果并不理想。对于这种用例,我们应该了解另一种专门针对生成模型的架构——生成对抗网络,或称为 GAN。
GAN 的主要思想是让两个神经网络相互对抗地进行训练:
图片来自 Dmitry Soshnikov
✅ 一些术语:
- 生成器 是一个网络,它接受一些随机向量,并生成图像作为结果
- 判别器 是一个网络,它接受一张图像,并应判断该图像是真实的(来自训练数据集),还是由生成器生成的。其实它本质上就是一个图像分类器。
判别器的架构与普通的图像分类网络没有区别。在最简单的情况下,它可以是一个全连接分类器,但更有可能是一个卷积网络。
✅ 基于卷积网络的 GAN 称为 DCGAN
一个 CNN 判别器由以下层组成:若干卷积+池化层(空间尺寸逐渐减小)和一个或多个人全连接层以获得“特征向量”,最后是一个二元分类器。
✅ 在这个上下文中,“池化”是一种减少图像大小的技术。“池化层通过将一层中神经元集群的输出组合成下一层中的单个神经元来降低数据的维度。” ——来源
生成器稍微复杂一些。你可以将其视为一个反向的判别器。从一个潜在向量(而不是特征向量)开始,它有一个全连接层将其转换为所需的大小/形状,然后是反卷积+上采样。这类似于自编码器的解码部分。
✅ 因为卷积层是通过线性滤波器遍历图像实现的,所以反卷积本质上与卷积类似,可以用相同的层逻辑实现。
图片来自 Dmitry Soshnikov
GAN 被称为对抗性的,因为生成器和判别器之间存在持续的竞争。在这个竞争过程中,生成器和判别器都会得到改进,因此网络学会了生成越来越好的图像。
训练分为两个阶段:
在这个过程中,生成器和判别器的损失都不会显著下降。在理想情况下,它们应该振荡,表明两个网络都在不断提高其性能。
GAN 被认为特别难以训练。以下是几个问题:
GAN 是生成艺术图像的好方法。另一种有趣的技术称为风格迁移,它将一张内容图像重新绘制为不同的风格,应用来自风格图像的滤镜。
其工作原理如下:
在这节课中,你学习了关于 GAN 及如何训练它们。你还学习了这种类型的神经网络可能面临的特殊挑战,以及一些克服这些挑战的策略。
运行一下 风格迁移笔记本,使用你自己的图像。
参考以下资源了解更多关于 GAN 的知识:
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。