GAN 基础【选修】
本节定位
GAN 最吸引人的地方是:
- 它不是学“标签”
- 而是学“像不像真的”
这让它在生成任务里很有魅力。
但它也非常容易让初学者发虚,因为训练方式看起来不像普通监督学习。
这一节的目标不是把 GAN 神秘化,而是把它还原成一场很具体的博弈:
生成器想骗过判别器,判别器想识破生成器。
学习目标
- 理解生成器和判别器各自负责什么
- 理解“对抗训练”为什么能推动生成质量提升
- 通过可运行示例建立最小 GAN 训练直觉
- 理解 mode collapse 和训练不稳为何高频出现
先建立一张地图
如果你刚从前面的分类或回归任务过来,可以先这样理解:
- 以前模型主要是在学“这个输入该判成什么”
- GAN 开始学“怎样造出一个看起来像真实分布里的样本”
所以 GAN 最重要的变化不是“也有网络”,而是:
- 目标函数和训练关系都变得更动态
- 模型不 再只追求分类正确率,而是在追求真假博弈中的生成质量
GAN 最适合新人的理解方式不是从公式开始,而是先把它看成一场动态博弈:
所以这节最重要的不是先记损失函数,而是先看清:
- 生成器想做什么
- 判别器想做什么
- 为什么双方一起训练会让系统变难
一、GAN 到底在做什么?
1.1 生成器
输入:
- 随机噪声
输出:
- 一个伪造样本
它的目标是:
- 让样本看起来像真实数据分布里来的
1.2 判别器
输入:
- 一个样本
输出:
- 这个样本像不像真的
它的目标是:
- 把真实样本和伪造样本区分开
1.3 一个类比
GAN 像假钞工厂和验钞机的对抗:
- 假钞工厂越做越像
- 验钞机也越识别越准
在不断博弈中,伪造样本质量提升。
1.4 第一次学 GAN,最该先抓住什么?
最该先抓住的不是一堆对抗损失公式,而是这句:
GAN 不是直接被教“正确答案”,而是在真假对抗中一点点学会更像真实分布。
这句话一旦稳住,后面很多现象就都容易理解:
- 为什么训练会不稳
- 为什么判别器不能强得太离谱
- 为什么生成样本“像了”但可能开始塌缩
二、为什么 GAN 会比“直接拟合像素”更有意思?
因为它不是让模型逐像素去复制一张图,
而是让模型学会:
- 什么样的样本整体上更像真实分布
所以 GAN 更像在学:
- 数据分布的“真假边界”
这也是它后来在图像生成里很有影响力的原因之一。