深度学习笔记——生成对抗网络GAN

305 阅读2分钟

大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文详细介绍早期生成式AI的代表性模型:生成对抗网络GAN。

14.png

[toc]

生成对抗网络(Generative Adversarial Network, GAN)是一种生成模型,由 Ian Goodfellow 等人于 2014 年提出。GAN 通过两个网络——生成器(Generator)和判别器(Discriminator)之间的对抗训练,使得生成器能够生成逼真的数据,从而被判别器难以区分。GAN 已广泛应用于图像生成、图像修复、风格迁移、文本生成等任务。

论文:Generative Adversarial Nets


一、基本结构

GAN 包含两个核心部分:生成器和判别器。

生成器

  • 功能:生成器接收一个随机噪声向量(通常是高斯分布或均匀分布),并将其映射到数据空间,使生成的数据尽可能接近真实数据
  • 目标:生成器的目标是 “欺骗”判别器,使其无法区分生成数据和真实数据。
  • 网络结构:生成器通常由一系列反卷积(或上采样)层组成,以逐步生成更高分辨率的图像

判别器

  • 功能:判别器接收输入样本,并判断该样本真假
  • 目标:判别器的目标是尽可能准确地分辨出真假样本
  • 网络结构:判别器通常是一个卷积神经网络(CNN),将输入数据压缩为一个概率值,表示该样本属于真实数据的概率

二、损失函数

GAN 的训练是一个生成器判别器相互博弈的过程,通过对抗训练逐步提高生成器的生成质量。训练过程主要包括以下步骤:

判别器

  • 训练判别器时,其输入是真实数据和生成器的生成数据
  • 判别器的目标区分真实数据和生成数据,即使得判别器输出接近 1 的概率表示真实数据,接近 0 的概率表示生成数据。
  • 判别器的损失函数通常使用二元交叉熵(Binary Cross-Entropy):
LD=Expdata[logD(x)]Ezpz[log(1D(G(z)))]L_D = - \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] - \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]

参数含义

  1. xx真实数据样本,来自于真实数据分布 pdatap_{\text{data}}
  2. zz生成器输入的噪声向量,通常从均匀分布或正态分布中采样。
  3. D(x)D(x)判别器真实样本 xx 的输出,表示判别器认为该样本是真实数据的概率。
  4. D(G(z))D(G(z))判别器生成数据 G(z)G(z) 的输出,表示判别器认为该样本为真实数据的概率

判别器损失的计算过程

  1. 第一部分Expdata[logD(x)]- \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)]
    • 表示对真实样本的损失。
    • 判别器希望尽量将真实数据的输出 D(x)D(x) 接近 1,因此这部分的目标是最小化 logD(x)\log D(x)

详细全文请移步公主号:Goodnote。

参考:欢迎来到好评笔记(Goodnote)!