Skip to content

引言

2014 年的一个深夜,蒙特利尔的一家酒吧里,Ian Goodfellow 正和朋友庆祝毕业。

酒过三巡,朋友们讨论起一个生成模型的构想:用复杂的统计方法来估计数据的分布。Goodfellow 听了一会儿,摇了摇头,说:"我有一个更好的主意。"

朋友们不信。他当场解释了他的想法:训练两个网络,一个负责造假,一个负责鉴别,让它们互相对抗。朋友们觉得这不会 work。

那天晚上,Goodfellow 回到家,打开笔记本电脑,开始写代码。第一次运行,GAN 就工作了。

这个诞生于酒吧的灵感,后来被 Yann LeCun 称为**「过去十年机器学习最有趣的想法」**。它开启的生成式 AI 革命,最终催生了我们今天看到的 AI 图像生成、深度伪造,乃至大语言模型的对抗性训练。


生成模型 vs 判别模型

回顾

判别模型(之前学的大多数模型):
  输入数据 → 输出标签/概率
  回答:「这是什么?」
  例:图像分类、垃圾邮件检测

生成模型(GAN 属于这类):
  随机噪声 → 生成数据
  回答:「能造一个像真的一样的东西吗?」
  例:生成人脸、生成画作

为什么生成模型重要?

  • 理解数据分布:能生成数据意味着模型真正「理解」了数据的内在结构
  • 数据增强:生成更多训练数据
  • 创意应用:AI 创作、风格迁移
  • 仿真:生成训练环境

GAN 的核心思想

对抗训练

IG1987-
Ian Goodfellow
GAN 发明者,前 Google Brain 研究科学家
"我在酒吧里想到了 GAN 的想法。回家写代码,第一次运行就成功了。这很少见——通常新想法第一次都不会 work。"

GAN 的巧妙之处在于它训练了两个相互竞争的网络

  随机噪声 z


┌──────────┐     生成假图片     ┌──────────┐
│  生成器    │ ───────────────→ │  判别器    │
│ Generator │                   │ Discriminator│
│  G(z)     │ ←─────────────── │  D(x)     │
└──────────┘     真假判定       └──────────┘


                              真实图片 x ────→ 也要输入判别器

两个网络的博弈

生成器 G 的目标:生成尽可能逼真的假图片,骗过判别器
  → 最大化 D(G(z))(判别器认为假图片是真的概率)

判别器 D 的目标:尽可能准确地区分真假图片
  → 最大化区分真实图片和生成图片的能力

训练过程:
  1. 训练判别器:给它真图和假图,让它学会区分
  2. 训练生成器:根据判别器的反馈,改进假图质量
  3. 交替进行,两者共同进步

伪造者 vs 警察:GAN 的经典类比

生成器 = 伪造者(制造假钞)
判别器 = 警察(识别假钞)

训练过程:
  警察学习识别 → 伪造者改进技术 → 警察再学习 → 伪造者再改进
  ...
  最终:伪造者制造的假钞连最好的警察也分辨不出

→ 此时生成器学到了数据分布

想象一个不断升级的军备竞赛:造假者越来越精,鉴定者也越来越强。最终,造假者造出的东西和真品一模一样——这就是 GAN 训练达到平衡时的状态。

数学形式

GAN 的目标函数(极小极大博弈):

min_G max_D V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]

其中:
  x ~ 真实数据分布
  z ~ 随机噪声分布
  G(z) = 生成器从噪声生成的假数据
  D(x) = 判别器判断输入为真数据的概率

GAN 的变体与进化

2014GAN 诞生:Ian Goodfellow 提出对抗训练框架,第一次运行就成功
2015DCGAN:将卷积神经网络引入 GAN,首次实现稳定的图像生成
2016条件 GAN(cGAN):加入条件控制,可以指定生成内容
2017Progressive GAN(NVIDIA):逐步提高分辨率,首次生成 1024×1024 逼真人脸
2018CycleGAN:无需配对数据的图像风格迁移
2019StyleGAN(NVIDIA):精细控制生成图像的风格特征,AI 生成人脸几乎无法与真人区分

DCGAN(2015)

将 CNN 引入 GAN,使用卷积层替代全连接层:

生成器架构(从噪声到图像):
  噪声 z (100维)
    → 反卷积 → 4×4×512
    → 反卷积 → 8×8×256
    → 反卷积 → 16×16×128
    → 反卷积 → 32×32×64
    → 反卷积 → 64×64×3(生成图像)

条件 GAN(cGAN)

加入条件信息,控制生成内容:

普通 GAN:    z → G → 随机图像
条件 GAN:    z + 条件(如「猫」)→ G → 猫的图像

Progressive GAN(2017,NVIDIA)

逐步提高生成分辨率:

4×4 → 8×8 → 16×16 → ... → 1024×1024

先学会生成粗略结构,再逐步增加细节
→ 首次生成逼真的高分辨率人脸

StyleGAN(2019,NVIDIA)

控制生成图像的风格特征:

可以单独控制:
  粗粒度特征:姿态、脸型
  中粒度特征:面部特征、发型
  细粒度特征:颜色、微表情

StyleGAN 生成的人脸如此逼真,以至于催生了 "ThisPersonDoesNotExist.com" 网站——每次刷新都展示一张不存在的人脸。

GAN 的训练挑战

模式崩溃(Mode Collapse)

训练数据有多种模式:        模式崩溃后:
  🐱 🐶 🐰 🦊               🐱 🐱 🐱 🐱

生成器只学会生成一种(或少数几种)样本
→ 多样性丧失

训练不稳定

判别器太强 → 生成器收不到有效梯度 → 学不动
判别器太弱 → 生成器不需要提升 → 生成质量差
找到平衡点很困难

评估困难

判别模型:准确率、F1 等指标明确
生成模型:怎么衡量「生成质量」?
  → IS(Inception Score)
  → FID(Fréchet Inception Distance)——最常用
  → 人类评估——最可靠但成本高

GAN 的影响与遗产

领域应用
图像生成人脸生成、场景生成
图像编辑超分辨率、去模糊、风格迁移
数据增强生成训练数据
深度伪造人脸替换、语音克隆(双刃剑)
医学影像生成罕见病例的影像数据
艺术创作AI 绘画

GAN 的核心思想——对抗训练——后来也被用于大语言模型的对齐训练(对抗性训练),影响深远。 从 GAN 到 GAN 在 NLP 中的精神后代(如 RLHF 中的奖励模型对抗),Ian Goodfellow 那个酒吧里的灵感,已经成为 AI 领域最基础的思想之一。


本节小结

概念要点
GAN 核心思想生成器和判别器对抗训练,共同进步
诞生故事Ian Goodfellow 在酒吧想出,当晚编码,第一次就成功
生成器从随机噪声生成逼真数据
判别器区分真实数据和生成数据
训练挑战模式崩溃、训练不稳定、评估困难
重要变体DCGAN、cGAN、Progressive GAN、StyleGAN
历史意义AI 首次能生成高质量内容,开启生成式 AI 的序幕

思考题

  1. GAN 的对抗训练思想是否可以应用到其他领域?(提示:想想 RLHF 中的奖励模型)
  2. GAN 的「模式崩溃」问题本质上说明了什么?这与大语言模型的「多样性」问题有联系吗?
  3. 深度伪造技术带来的伦理问题如何应对?技术层面和社会层面分别可以做什么?

延伸阅读

  • Goodfellow et al., Generative Adversarial Nets, NeurIPS 2014
  • Karras et al., A Style-Based Generator Architecture for Generative Adversarial Networks (StyleGAN), CVPR 2019