什么是生成对抗网络 (GAN)?

生成对抗网络 (GAN) 是一种深度学习架构,通过两个相互竞争的神经网络生成新数据。这两个网络(生成器和判别器)通过对抗训练,有助于生成更准确的输出结果。GAN 可广泛应用于多个领域,包括计算机视觉、机器人技术、图像生成、视频合成和自然语言处理。

GAN 的工作原理是什么?

要理解 GAN 的工作原理,最好的方法是将其类比为一场比赛:艺术品伪造者(生成器)与艺术评论家(判别器)之间的较量。

  • 伪造者(生成器):伪造者的目标是创作出与真正杰作难以分辨的画作。最初,它的尝试显得粗糙且明显是伪造的。它最初会生成一个随机图像(就像随意往画布上泼颜料)。
  • 评论家(鉴别器):评论家的任务是辨别真实画作与伪造作品。起初,这项任务很容易完成。评论家会查看真实画作和伪造作品,并提供反馈,实质上是在告诉伪造者:“这是伪造的。”
  • 反馈环:伪造者利用这些反馈不断提升技艺。它会学习如何让一幅画看起来真实,并调整自己的绘画技巧。随着伪造作品的精细度不断提升,评论家也逐渐精进,能够识别更细微的瑕疵。

这种对抗性“博弈”持续推进,两个网络都在不断变得更为智能。最终,伪造者技艺高超到评论家已无法可靠地辨别真伪。至此,GAN 已训练完成,可生成高度逼真的新数据。

CNN 与 GAN 对比

卷积神经网络 (CNN) 和生成对抗网络 (GAN) 都是深度学习架构,但它们各具优势,应用场景各不相同。CNN 通常用于图像分类和目标检测任务,而 GAN 通常用于生成新的数据实例。

功能

CNN

GAN

数据使用情况

主要是有标签的数据集

有标签或无标签的数据集

输出

分类、特征提取

多样化的新数据实例

模型类型

判别模型

生成式

主要任务

图像分类、目标识别

图像生成、数据增强、合成数据创建

功能

CNN

GAN

数据使用情况

主要是有标签的数据集

有标签或无标签的数据集

输出

分类、特征提取

多样化的新数据实例

模型类型

判别模型

生成式

主要任务

图像分类、目标识别

图像生成、数据增强、合成数据创建

需要注意的是,CNN 经常用于 GAN 架构中,最常见的用途是充当判别器网络。判别器负责将真实图像与伪造图像区分开来,这是一项图像分类任务,CNN 借助其强大的特征提取能力,通常非常适合完成这类任务。

GAN 的常见类型

虽然所有 GAN 都采用生成器–判别器结构,但已经开发出多种变体来解决特定问题。以下是几种最重要的类型:

  • 条件 GAN (cGAN):如果您想控制 GAN 生成的内容怎么办?cGAN 允许您添加条件。您可以指定它生成“一位金发微笑女性”,而不是仅生成“一张随机的脸”。这对于文本生成图像类应用至关重要。
  • CycleGAN:如果您想将图像从一种风格转换为另一种风格,但又没有用于训练的完全匹配的图像对(例如,将马的照片转变为斑马的照片),该怎么办?CycleGAN 专为“非配对图像到图像转换”而设计,因在风格迁移和对象变换方面的应用而闻名。
  • StyleGAN:这种 GAN 专注于生成极其逼真的高质量图像(尤其是人脸),并允许用户精细控制图像的“风格”,例如年龄、发型或表情。
  • 超分辨率 GAN (SRGAN):这种 GAN 专用于将低分辨率、模糊的图像放大为清晰的高分辨率版本,通过“幻觉”生成逼真的细节。

虽然所有生成对抗网络变体都遵循使用两个对抗网络的基本概念,但研究人员已探索多种架构和训练上的改进,以克服局限性并提升特定应用的性能。

GAN 可用于哪些方面?

GAN 技术为多个行业开启了新的可能性。其应用大致可归类为以下几个关键领域:

内容生成与编辑

这是 GAN 最广为人知的应用。包括生成逼真的人物、地点和物体图像;创作数字艺术和音乐;以及支持强大的图像编辑工具,例如风格迁移(将照片处理成类似绘画的风格)、超分辨率(增强模糊图像的清晰度)和文本生成图像。

数据增强与隐私保护

高质量数据是机器学习的燃料,但这类数据可能稀缺、昂贵,或涉及隐私。GAN 可通过生成合成数据来帮助解决这一问题。在医疗领域,GAN 可创建逼真但匿名的医疗扫描图像,用于训练诊断模型,同时不会侵犯患者隐私。在金融领域,GAN 可生成合成交易数据,以训练更高效的欺诈检测系统。这有助于缓解数据稀缺问题并实现数据集的平衡。

模拟和预测

GAN 能学习复杂系统中的模式,从而生成逼真的模拟结果。这可用于生成多样化场景,以训练自动驾驶汽车、预测视频的下一帧,甚至在药物研发中发现潜在的分子结构。

异常检测和威胁检测

通过用“正常”数据训练 GAN,它能很好地识别任何不符合模式的内容。它可用于检测欺诈性金融活动、识别网络安全中的入侵行为,以及发现制造过程中的缺陷。

在 Google Cloud 上使用 GAN 构建

开发和部署 GAN 需要强大的计算能力和稳定的 MLOps 平台。Google Cloud 提供一系列工具,支持整个工作流:

  • 构建和管理模型Vertex AI 是一款托管式机器学习平台,可简化构建、训练和部署 GAN 等复杂模型的流程。它提供一个统一的环境,用于管理您的数据和实验。
  • 高性能训练:训练 GAN 对计算资源要求极高。Cloud TPU 是 Google 定制的硬件加速器,旨在显著提升深度学习训练速度,让您能够更快地迭代复杂的 GAN 架构。
  • 可伸缩部署:模型训练完成后,Google Kubernetes Engine (GKE) 提供一个强大且可伸缩的环境,用于将容器化的 GAN 部署为更大应用的一部分。

更进一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。