深圳Yolo 视觉
深圳
立即加入
词汇表

生成对抗网络 (GAN)

了解 GAN 如何通过生成逼真的图像、增强数据并推动医疗保健、游戏等领域的创新来革新人工智能。

生成式对抗网络(GAN)是人工智能(AI)中的一个复杂框架。 用于 创建与原始数据集相似的新数据实例。GAN 由 Ian Goodfellow 和研究人员在 2014 年的一篇开创性论文中提出。 2014 年的一篇开创性论文中提出的。 两个不同的神经网络在一场 连续的竞争游戏。这种对抗过程使系统能够生成高度逼真的合成内容,从逼真的照片到逼真的视频,不一而足。 内容,从逼真的图像和艺术到音频和 3D 模型,使其成为现代生成式人工智能的基石。 生成式人工智能的基石。

GAN 如何发挥作用

GAN 的架构由两个主要部分组成:生成器和判别器。 判别器。这两个网络在零和博弈中同时进行训练,其中一个代理的收益就是另一个代理的损失。 一个代理的收益就是另一个代理的损失。

  1. 生成器:该网络充当 "伪造者"。它将随机噪音作为输入,并 试图生成看起来真实的数据,例如人脸图像。它的目标是生成 合成数据,足以骗过 鉴别器。
  2. 鉴别者:该网络充当 "侦探"。它同时接收来自训练数据的真实样本 训练数据中的真实样本和来自 生成器。它的目标是将输入正确classify 为真实或虚假。

在训练过程中,"生成器 "通过学习如何欺骗 "鉴别器 "而不断进步,而 "鉴别器 则能更好地辨别真假。理想情况下,这种循环会一直持续到系统达到 纳什均衡,即生成的数据 与真实数据无法区分,判别器猜测的置信度为 50%。 置信度

实际应用

GAN 已超越理论研究,成为各行各业具有影响力的实际应用。

  • 计算机视觉的数据增强:在数据稀缺的情况下,GANs 可以生成多样化的 训练示例。例如,在 在医疗保健领域的人工智能中,GANs 可生成合成医疗 图像来训练诊断模型,同时不损害患者隐私。同样,通过生成罕见的 物体检测模型。 场景,如自动驾驶汽车的事故 自动驾驶汽车,确保汽车 为边缘情况做好准备。
  • 超分辨率和图像复原:GANs 广泛用于提升低分辨率媒体的分辨率。 NVIDIA®)的 DLSS等技术使用类似于 GAN概念 类似的概念,以更高分辨率渲染视频游戏。在摄影领域 在摄影领域,超分辨率GANs 可将颗粒感较强的旧照片还原为清晰、高质量的图像。 照片还原成清晰的高质量图像。
  • 风格转移和艺术:工具可以将一幅图像的艺术风格转移到另一幅图像上(例如,将照片制作成梵高的画作。 照片看起来像梵高的画作)。这种创造能力也是许多 深度伪造和虚拟影响者背后的引擎。

GAN 与扩散模型的比较

虽然两者都是生成技术,但必须将 GAN 与 扩散模型(像那些 稳定扩散模型)。

  • GANs:通过生成器一次(或几步)生成数据。它们通常 推理速度更快,但由于不稳定问题(如 由于不稳定性问题,如 模式崩溃,即生成器 产生的输出种类有限。
  • 扩散模型:通过从随机信号中迭代去除噪声来生成数据。它们通常 在训练过程中更稳定,但通常需要更多的计算能力和时间来生成单个图像。 但通常需要更多的计算能力和时间来生成单个图像。

在PyTorch中定义生成器

虽然像 ultralytics 重点放在辨别性任务上,如检测 YOLO11了解 GAN 生成器的结构会有所帮助。 会有所帮助。下面是一个简单的 PyTorch 生成器示例 设计用于从潜在噪声矢量创建数据。

import torch
import torch.nn as nn


class SimpleGenerator(nn.Module):
    """A basic GAN Generator that upsamples a noise vector into an image."""

    def __init__(self, latent_dim=100, img_shape=(1, 28, 28)):
        super().__init__()
        self.img_shape = img_shape
        self.model = nn.Sequential(
            nn.Linear(latent_dim, 128),
            nn.LeakyReLU(0.2, inplace=True),
            nn.Linear(128, int(torch.prod(torch.tensor(img_shape)))),
            nn.Tanh(),  # Normalizes output to [-1, 1] range
        )

    def forward(self, z):
        img = self.model(z)
        return img.view(img.size(0), *self.img_shape)


# Example: Create a generator and produce a dummy image from random noise
generator = SimpleGenerator()
random_noise = torch.randn(1, 100)  # Batch of 1, 100-dim noise vector
generated_img = generator(random_noise)
print(f"Generated image shape: {generated_img.shape}")

机器学习的意义

GANs 的出现标志着从 向无监督学习的转变。 向无监督能力的转变,在无监督能力中,模型可以理解数据的底层结构。通过利用 在竞争激烈的 GANs 允许研究人员对复杂的分布进行建模。这种综合现实的能力引发了关于人工智能伦理的讨论。 人工智能伦理的讨论,特别是关于 真实性和错误信息的讨论,使其成为当今深度学习领域讨论最多的话题之一。 深度学习领域讨论最多的话题之一。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入