大家的AI
机器学习AI论文
加载中…

学习

🏅我的成就

Ch.21

GAN 基础:生成与判别的对抗

GAN:制造与分辨的对决

像造假者和鉴定师互相提升技艺。

真实照片与噪声造出的假图进入判别器,分为真 / 假。先分清制造方(G)与分辨方(D)。

训练流程

  1. ① 准备真图: 从训练数据里取一张 真实样本 xxx。
  2. ② 随机噪声: 随机抽取决定画什么的 噪声 zzz。
  3. ③ 生成器工作: 把噪声 zzz 变成 假样本 x^\hat{x}x^。
  4. ④ 判别器判断: 看 xxx 和 x^\hat{x}x^,分出 真 / 假。
  5. ⑤ 轮流学习: G 和 D 交替、一点一点更新。
GAN(Generative Adversarial Network)由能创造内容的 生成器(Generator, GGG) 与鉴别真伪的 判别器(Discriminator, DDD) 不断对抗、共同进化而成。可把它想成天才伪钞犯与资深刑侦专家的脑力对决:一方伪造更逼真,一方把鉴定技术推到极限。在这场紧张的 极小极大 拉锯中,生成器最终可能造出人眼难辨真假的样本。本章结合丰富例子,深入 GAN 的数学原理、极小极大博弈,以及生成器陷入套路的 模式崩溃。

公式怎么读(GAN)

一句话: GGG 造假,DDD 判断 真还是假。
min⁡Gmax⁡DV(D,G)=Ex∼pdata[log⁡D(x)]+Ez∼p(z)[log⁡(1−D(G(z)))]\min_G \max_D V(D,G)=\mathbb{E}_{x\sim p_{data}}[\log D(x)] + \mathbb{E}_{z\sim p(z)}[\log(1-D(G(z)))]minG​maxD​V(D,G)=Ex∼pdata​​[logD(x)]+Ez∼p(z)​[log(1−D(G(z)))]
GGG (生成器): 把噪声 zzz 变成 新的假样本。
DDD (判别器): 输出输入 为真的概率,在 0 到 1 之间。
min⁡Gmax⁡D\min_G \max_DminG​maxD​: GGG 与 DDD 朝相反方向争分,所以通常 交替训练。
V(D,G)V(D,G)V(D,G): 双方竞争的 目标函数 名称,即下面 左项加右项。
Ex∼pdata[⋅]\mathbb{E}_{x\sim p_{data}}[\cdot]Ex∼pdata​​[⋅] (左项): 多次随机取真样本 xxx,对 log⁡D(x)\log D(x)logD(x) 求平均。这是 真数据 一侧。
log⁡D(x)\log D(x)logD(x): D(x)D(x)D(x) 越接近 1 越大。判别器希望把真 xxx 判成 真。
Ez∼p(z)[⋅]\mathbb{E}_{z\sim p(z)}[\cdot]Ez∼p(z)​[⋅] (右项): 多次取噪声 zzz,用 G(z)G(z)G(z) 造假,再对 log⁡(1−D(G(z)))\log(1-D(G(z)))log(1−D(G(z))) 求平均。这是 假数据 一侧。
G(z)G(z)G(z): 这次噪声 zzz 造出的 一张假样本。
log⁡(1−D(G(z)))\log(1-D(G(z)))log(1−D(G(z))): 判别器把假样本判成 假 (D(G(z))D(G(z))D(G(z)) 越接近 0) 时越大。生成器靠 骗过 DDD 占优。
D(x)D(x)D(x) 小结: 任意输入的 真概率 (近 0 为假,近 1 为真)。
真实样本x随机噪声zG 生成器x̂D 判别器真假竞争 · 真伪判别 · 对抗损失
一句话: 噪声 zzz 输入生成器,生成假样本,判别器竞争式地判断真伪。

GAN:生成器与判别器

1. GAN 核心结构:生成器与判别器的激烈对抗
GAN 是两个网络为胜过对方而不断成长的独特结构。生成器(GGG) 努力把假数据做得像真的,判别器(DDD) 则敏锐地分辨真伪。
* 比喻: 赝品画师(生成器)与鉴定师(判别器)互相逼出更高水平。
2. 极小极大(Minimax)博弈
核心目标函数为:
min⁡Gmax⁡DV(D,G)=Ex[log⁡D(x)]+Ez[log⁡(1−D(G(z)))]\min_G \max_D V(D, G) = \mathbb{E}_{x}[\log D(x)] + \mathbb{E}_{z}[\log(1 - D(G(z)))]minG​maxD​V(D,G)=Ex​[logD(x)]+Ez​[log(1−D(G(z)))]
* 判别器(DDD)最大化: 真样本 xxx 上 D(x)→1D(x)\to 1D(x)→1,假样本 G(z)G(z)G(z) 上 D(G(z))→0D(G(z))\to 0D(G(z))→0。
* 生成器(GGG)最小化: 让 D(G(z))→1D(G(z))\to 1D(G(z))→1,使后一项变小。
3. 潜在噪声 zzz
喂给生成器的随机向量称为 潜在噪声(zzz)。
* 比喻: 像交给雕塑家的一团黏土,zzz 的细微变化会改变成品的表情与色彩。
4. 模式崩溃(Mode Collapse)
生成器不再多样,而是 无限复制曾骗过判别器的那一种样本。
* 比喻: 餐馆因泡菜汤得满分,就把全年菜单都改成泡菜汤。
5. 条件 GAN(cGAN)
把 条件(yyy)—类别或文本—与 zzz 一起输入,例如“画一只猫”“把素描上色”。

重要性

1. 生成式 AI 的真正起点
分类器答“这是狗”,GAN 则 画出世上不存在的狗—图像、语音等生成革命的重要骨架。
2. 清晰锐利的细节
相比输出平均值的模糊模型,GAN 需通过苛刻判别器,发丝与肤质可 极其锐利。
3. 数据增强
用少量暴雪夜路照片合成大量训练图,或扩充罕见医疗/缺陷样本,供其他模型使用。

如何使用

步骤1:归一化与 tanh
把像素压到 [−1,1][-1,1][−1,1]。生成器用 tanhtanhtanh 输出时,真实图像也应同尺度,判别才公平。
步骤2:BCE 与标签平滑
用 二元交叉熵(BCE) 做真伪分类;标签平滑(如目标 0.90.90.9 而非 1.01.01.0)可抑制判别器过度自信。
步骤3:交替训练
不要同步猛改 GGG 与 DDD。常先更新 DDD 共 kkk 步,再更新 GGG,并平衡学习率与更新比例。
步骤4:稳定化与 FID
目视检查模式崩溃;用 FID 比较真假特征分布,越低通常越接近真实分布。

总结

一句话总结: GAN 是一个生成器与判别器的对抗游戏,通过噪声 zzz 生成逼真的样本。
关键点: 稳定性、平衡和多样性决定了模型效果。
下一步: 条件 GAN 等变体在此基础上继续扩展。

解题提示

先记住这一行: 生成器 GGG 用噪声 zzz 造假,判别器 DDD 分辨 真 / 假。先分清 谁制造、谁判别,再补上 极小极大、交替更新、模式崩溃。
出现数字时: 展平长度为 (高)×(宽)(RGB 乘 3);patch 网格(无 CLS)为 (H/p)×(W/p)(H/p)\times(W/p)(H/p)×(W/p);全连接一层权重约为 din×doutd_{\mathrm{in}}\times d_{\mathrm{out}}din​×dout​。
例 (展平) — GAN 灰度 28×2828\times2828×28 的 ddd → 784

例 (patch 网格) — 224×224224\times224224×224, patch 16×1616\times1616×16, 无 CLS → 142=14^2=142= 196
例 (概念) — GAN 中生成器角色?
② 用噪声 zzz 造假 → 2

例 (计算) — RGB 32×3232\times3232×32 三通道展平 ddd? → 3072

例 (应用) — 判别器过强?
① 平衡 G/D 更新
定义 — 模式崩溃是反复输出几乎相同样本。→ 选该描述

判断 — 条件 GAN 可使用标签/条件。→ 1