虽然深度学习在图像分类和语音识别等任务方面表现出色,但由于生成式模型中的计算复杂性,生成新数据(包括逼真的图像或文本)更具挑战。
GAN 由 Ian Goodfellow 在其 2014 年的论文《Generative Adversarial Nets》中提出,为这一挑战提供了突破性的解决方案。1 这一创新框架改变了生成式建模,使开发能够创建高质量现实数据的模型和算法变得更加容易。
GAN 架构的训练涉及对抗过程。生成器模型试图诱骗判别模型将虚假数据归类为真实数据,而判别器则不断提高其区分真假数据的能力。该过程由损失函数指导,这些损失函数用于衡量每个网络的性能。生成器损失衡量的是生成器诱骗判别器相信数据为真的程度。低发生器损失意味着发生器正在成功创建现实数据。判别器损失衡量判别器区分虚假数据和现实数据的能力。判别器损失低,说明判别器成功识别了假数据。
例如,经过训练可生成“狗”图像的 GAN 中,生成器将随机噪声转换为类似狗的图像,而判别器则根据训练集中的真实狗照片来评估这些图像。
随着时间的推移,这种对抗过程会促使两个网络不断改进。它使生成器能够创建令人信服的、与原始训练数据集非常相似的现实数据,而判别器则增强了识别真假数据之间细微差异的能力。
普通 GAN 是生成式对抗网络的基本形式,包括生成器和参与典型对抗游戏的判别器。生成器创建假样本,判别器旨在区分真实和假数据样本。普通 GAN 使用简单的多层感知器 (MLP) 或神经元层作为生成器和判别器,因此易于实施。这些 MLP 处理数据并对输入进行分类,以区分数据集中已知的对象。然而,众所周知,它们在训练过程中不稳定,通常需要仔细调整超参数才能取得良好的结果。
cGAN 是一种生成式对抗网络,它包括生成器和判别器的附加信息,即“标签”或“条件”。2这些标签提供上下文,使生成器能够根据给定的输入生成具有特定特征的数据,而不是像普通 GAN 那样完全依赖随机噪声。这种可控生成方式使得 cGAN 适用于需要精确控制输出的任务。cGAN 广泛用于生成针对特定对象、主题或风格定制的图像、文本和合成数据。例如,cGAN 可以通过调节生成器将灰度转换为三原色模型 (rgb) 来将黑白图像转换为彩色图像。同样,它可以根据文本输入生成图像,例如“创建一只白色毛皮猫的图像”,从而生成与提供的描述一致的输出。
深度卷积生成式对抗网络 (DCGAN) 使用卷积神经网络作为生成器和判别器。生成器以随机噪声作为输入,并将其转换为图像等结构化数据。它使用转置卷积(或反卷积),通过“放大”噪声来创建有意义的图像,从而将输入噪声放大为更大、更详细的输出。判别器使用标准卷积层来分析输入数据。这些层帮助判别器“缩小”并查看数据的整体结构和细节以制定决策。这种方法使 DCGAN 能够有效生成高质量图像和其他结构化数据。
StyleGAN 是一种生成式对抗网络,可以生成分辨率高达 1024 x 1024 的高分辨率图像。StyleGAN 是通过使用同一对象的图像数据集进行训练的。生成器网络由多个层组成,每层负责为图像添加从基本功能到复杂纹理等不同程度的细节。判别器网络还具有多个层,用于评估细节程度和整体质量。
在 CycleGAN 中,发生器和判别器以循环方式进行训练。它利用非配对数据集进行图像到图像的转换。其工作原理是使用生成器将图像转换为另一种风格(例如绘画),然后使用反向生成器将其转换回原始风格。这种方法有助于通过称为循环一致性的过程确保重建的图像与原始图像非常相似。这些结果对于图像风格迁移和图像增强等任务特别有用。
拉普拉斯金字塔 GAN (LAPGAN) 旨在通过在多个尺度上完善图像来生成高质量的图像。它首先生成低分辨率图像,然后使用一系列 GAN 以更高分辨率逐步添加更多细节。这种被称为拉普拉斯金字塔的多尺度方法使 LAPGAN 能够更有效地处理生成高分辨率图像的复杂性。
DiscoGAN 用于学习跨领域关系,而无需配对训练数据。它使用两个生成器和两个判别器将图像在一个域与另一个域之间转换,从而有助于通过循环一致性帮助确保重建图像与原始图像非常相似。这使得 DiscoGAN 能够有效执行图像到图像的转换、风格迁移和图像增强等任务,即使使用非配对数据集也是如此。
GAN 可用于计算机视觉的各种应用,例如图像生成、目标检测、图像到图像的转换、文本到图像的生成、视频下一帧的预测等等。
GAN 可用于生成从未存在过的样本的逼真图像,也可用于根据文本描述创建视觉效果,从而允许根据指定的属性或场景创建图像。BigGAN 经过大型数据集的训练,根据特定类别或条件生成数据,并在图像生成方面取得了最先进的结果。3 它可用于各种应用,包括图像合成、着色和重建。例如,GAN-BVRM 是一种基于 GAN 的新型贝叶斯视觉重建方法,利用分类器来解码功能性核磁共振成像 (fMRI) 数据。预训练的 BigGAN 生成器可生成类别特定型图像,编码模型选择与大脑活动一致的图像,从而在重建图像刺激时刺激更高的自然度和保真度。GAN 通过生成现实医疗数据(例如 MRI、CT 扫描和 X 射线)进行训练和分析,以及为药物发现创建新的分子结构,在医疗保健领域取得了重大进展。
GAN 可以通过生成高分辨率变化来增强低分辨率图像,从而提高图像的质量和细节。例如,NVIDIA 旗下 StyleGAN2 可生成高分辨率、高度逼真的图像,并对内容、身份、表达和姿势等属性进行精细控制,使用户能够创建和操纵图像用于艺术和实际应用。4
GAN 通过将图像从一个域转换到另一个域(例如将草图转换为绘画版本)来完成风格转换和图像编辑。例如,CycleGAN 用于将照片转换为绘画。此过程涉及一个生成器,通过循环约束将图像从源域(照片)转换到目标域(绘画),反之亦然,从而帮助确保映射保持语义连贯性。
GAN 用于无监督视频重定向,使视频内容适应不同的宽高比和格式,同时保留重要的视觉信息。Recycle-GANs 利用了 CycleGANs 中常见的类似循环策略,并将其专门应用于视频数据。例如,Recycle-GAN 可以将宽屏视频转换为社交媒体平台的方形格式,有助于确保视频中的关键元素和动作保持完整。5
GAN 能够改变图像中的面部功能,例如改变表情或老化效果,展示出它们在娱乐和社交媒体应用中的潜力。StyleGAN 的工作原理是根据从潜在空间中提取的“风格”对生成的样本进行层级修改。此过程可以直观地控制各种属性,包括发色和面部表情,使用户能够根据特定功能操纵面部,而无需手动调整。例如,StyleGAN 可用于将人的头发颜色从棕色更改为金色,或为中性面部表情添加微笑。
GAN 用于对象检测,可提高训练数据的质量和多样性,从而显着提高对象检测模型的性能。通过生成与现实数据非常相似的合成图像,GAN 可以扩充训练数据集,帮助模型更好地泛化并更准确地执行任务。例如,研究表明,当将用于对象检测的深度学习模型应用于质量较低的图像(例如受噪声、模糊或其他扭曲影响的图像)时,其性能会显着下降。6文中提出了 GAN-DO 框架,该框架利用 GAN 来增强对象检测模型对不同图像质量的稳健性,而不会增加模型架构的复杂性或推理速度。实验结果表明,GAN-DO 的性能优于传统的微调方法,因此可以提高对象检测的准确性。
除 GAN 之外,变分自编码器 (VAE) 是另一种深度学习模型,它可以创建模仿真实世界数据的新数据样本。VAE 是概率模型,这意味着它们以概率分布的形式表示数据,描述了数据中不同结果或值出现的可能性。这些模型旨在从训练数据集中学习模式,并创建与原始数据集不同的新数据,而不是完全相同的副本。变分自编码器 (VAE) 包含两个组件。编码器(识别模型)将复杂的输入数据(例如图像)压缩为更简单的低维数据,解码器(生成式模型)则根据压缩表示重新创建原始输入。VAE 还可以从训练数据集的模式中生成全新的数据学习样本。VAE 通常产生较模糊、不太清晰的输出,但对训练更稳定;而 GAN 产生更清晰、更逼真的输出,但由于不稳定,更难进行训练。
最终,VAE 和 GAN 之间的选择取决于任务的具体要求,例如所需的输出质量、训练稳定性以及对可解释潜在表示的需求,这使得每个模型在不同的应用中都具有独特的价值。
生成式对抗网络 (GAN) 可以生成高度逼真和多样化的数据,例如图像、文本和音频。它们用于自然语言处理 (NLP) 等应用,用于生成文本数据和改进语言模型,也用于音乐生成以创建新的作品和逼真的乐器声音。模拟和游戏使用 GAN 生成逼真的环境和角色,并通过识别偏离常态的模式来进行异常检测。GAN 还通过模拟复杂数据,进行实施成本高昂或不切实际的复杂实验,从而为科学研究提供帮助。它们通过数据增强来增强机器学习 (ML) 过程,增加训练集的数量和多样性,以应对大数据有限的挑战。预计 GAN 将进一步与强化学习、机器人技术和 NLP 等技术相结合,以推进人工智能 (AI) 系统的发展。
尽管转换器有所增加,但 GAN 凭借其轻量级架构和计算效率,依然保持着重要地位,非常适合边缘部署。与转换器相比,GAN 的参数更少,因此为功能的精细操作(例如面部属性)提供受控生成,从而简化了特定任务的微调。GAN 提供更快的推理速度,因为它只需要一次前向传递(或一次性输入流通过神经网络以生成输出)。这使它们成为手机和 IoT 系统等资源受限的边缘设备上实时应用的理想选择。这些优势使 GAN 成为边缘环境中执行图像转换、超分辨率和实时视频合成等任务的实用选择。
然而,GAN 面临着重大挑战。主要问题之一是训练不稳定,生成器和判别器可能无法正确汇聚,导致输出质量差。模式崩溃是另一个挑战,在这种情况下,生成器生成的数据种类有限,无法捕捉到训练数据的全部多样性。GAN 还需要大量数据和计算资源,这可能会成为其广泛使用的障碍。评估 GAN 生成的输出的质量是一项挑战,因为传统指标可能无法完全捕捉生成数据的细微差别。确保生成样本的合乎道德的使用日益受到关注,因为 GAN 可用于创建深度伪造和其他潜在的有害内容。
GAN 可以通过使用 Tensorflow 和 Keras 来实施。它需要训练数据集、生成器脚本和判别器脚本,才能使用 Python 创建 GAN 模型。以下是帮助您入门的分步指南:
第 1 步:导入所需的库,包括 TensorFlow 和用于构建和训练 GAN 模型的其他基本库(如 numpy 和 matplotlib)。
第 2 步:加载并预处理数据集,帮助确保它能代表目标数据分布(如图像、文本等)。
第 3 步:使用 TensorFlow 或 Keras 层构建生成器模型,这些模型获取随机噪声并生成与目标分布匹配的数据样本。
步骤 4:建立判别模型,对生成器生成的真假数据样本进行分类。
第 5 步:对生成器和判别器使用合适的优化器,并定义损失函数。
第 6 步:将生成器和判别器组合成一个 GAN 模型,用于训练生成器欺骗判别器。
第 7 步:实现一个循环,在使用真实和虚假数据训练判别器和生成器之间交替。
第 8 步:分析生成器在各个时期的输出和判别器精度,以帮助确保融合。
第 9 步:使用经过训练的生成器来生成模仿目标数据分布的新样本。
第 10 步:绘制或分析生成的数据,以验证 GAN 对目标分布的学习程度。
通过遵循以下步骤,可以使用 TensorFlow 实施基本 GAN 模型。
GAN 的未来可期,有望在真实性、稳定性、效率和伦理考虑方面取得进步。随着 GAN 与其他科技的融合日益加深并找到新的应用,它们将继续革新各个行业和领域。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。
1 I. J. Goodfellow、J. Pouget-Abadie、M. Mirza、B. Xu、D. Warde-Farley、S. Ozair……和 Y. Bengio(2014 年)。生成式对抗网络。《Advances in neural information processing systems》27。
2 Alqahtani、Hamed 和 Kavakli、Manolya 和 Kumar、Gulshan。(2019 年)。《Applications of Generative Adversarial Networks (GANs): An Updated Review.》。《Archives of Computational Methods in Engineering》。28. 10.1007/s11831-019-09388-y.
3 K. Qiao、J. Chen、L. Wang、C. Zhang、L. Tong 和 B. Yan(2020 年)。《BigGAN-based Bayesian reconstruction of natural images from human brain activity》。《Neuroscience》第 444 期 92–105。https://doi.org/10.1016/j.neuroscience.2020.07.040。
4 N. Alarcon(2020 年)。《Synthesizing High-Resolution Images with StyleGAN2》。NVIDIA 技术博客。https://developer.nvidia.com/blog/synthesizing-high-resolution-images-with-stylegan2。
5 A. Bansal、S. Ma、D. Ramanan 和 Y. Sheikh(2018 年)。《Recycle-GAN: Unsupervised Video Retargeting》。arXiv。https://doi.org/10.48550/arXiv.1808.05174。
6 C. D. Prakash、A. Shrivastava 和 L. Torresani(2019 年)。《It GAN DO Better: GAN-based Detection of Objects on Images with Varying Quality》。arXiv。https://arxiv.org/abs/1912.01707。