本节摘要:GAN 能生成逼真数据。本节讲 GAN 在自动驾驶的应用——生成训练数据、模拟天气、补长尾。
阅读完本节,你应当能够:
GAN(生成对抗网络)由生成器 G 和判别器 D 对抗训练:

| 应用 | 说明 |
|---|---|
| 数据生成 | 生成训练数据,补长尾 |
| 天气模拟 | 晴转雨/雾/雪,域适应训练 |
| 图像到图像 | Pix2Pix/CycleGAN 风格转换 |
| 超分辨率 | 提升分辨率,远距清晰 |
GAN 生成逼真交通场景,补充训练数据:
GAN 把晴天转雨/雾/雪:
GAN 超分辨率提升图像清晰度:
| GAN | 特点 |
|---|---|
| DCGAN | 卷积 GAN |
| CycleGAN | 非成对转换 |
| Pix2Pix | 成对转换 |
| StyleGAN | 高质量生成 |
| BigGAN | 大规模 |
扩散模型(Diffusion,如 Stable Diffusion)在图像生成上部分取代 GAN:
自动驾驶数据生成也开始用扩散模型。
GAN 生成 vs 仿真平台(3.4 节):
⚠️ GAN 训练难:G 和 D 难平衡,模式崩溃(只生成少数样本)。扩散模型训练稳定质量高,部分取代 GAN。
💡 关键直觉:GAN 生成对抗,在自动驾驶用于数据生成(补长尾)、天气模拟(晴转雨雾)、图像转换(Pix2Pix/CycleGAN)、超分辨率。挑战训练难/模式崩溃。扩散模型部分取代 GAN。
下一节讲迁移学习。
GAN 的目标函数是 min_G max_D V(D,G),判别器 D 试图把真实数据和生成数据区分开,生成器 G 试图骗过 D。理想状态下收敛到"G 生成的分布等于真实分布,D 无法区分",即纳什均衡。但实践中这个博弈非常难收敛:D 太强,梯度消失,G 学不动;D 太弱,G 学到的分布偏掉。常用的稳定化手段包括:把交叉熵换成 WGAN 的 Wasserstein 距离(配合权重裁剪或梯度惩罚)、给 D 加谱归一化、用标签平滑(真实样本的标签不用 1 而用 0.9)。训练节奏上,通常更新一步 D 再更新一步 G,并监控两者的损失曲线是否稳定。
# WGAN-GP 判别器损失(示意) d_loss = -mean(D(real)) + mean(D(fake)) + gp # gp: 梯度惩罚 g_loss = -mean(D(fake)) # 生成器骗过 D
GAN 最出名的失败是模式崩溃:G 找到少数几个"容易骗过 D"的样本反复生成,输出多样性骤降。应对手段有 minibatch discrimination、解耦生成(把隐向量拆成多个子向量分别控制不同属性)等,但都治标不治本。扩散模型用逐步加噪再逐步去噪的方式生成,每一步都是简单的回归目标,训练稳定、多样性好,近年在大规模图像生成上已经取代 GAN。在自动驾驶里,两者的分工也逐渐清晰:数据扩充和风格迁移任务(合成数据真实化、晴天转雨天)仍常驻 GAN 与 CycleGAN 的成熟流程,需要高保真新场景生成时则转向扩散模型。还有一个实用角度:把 GAN 用于域适应,让仿真图像风格贴近真实图像,能显著提升模型在真实数据上的表现——这类任务输入输出成对或不成对都能训练,CycleGAN 的循环一致性损失让它在无配对数据时也适用,工程上搭建成本可控。