2014年,蒙特利尔大学实验室里诞生了一个改变计算机视觉领域的创意——两个神经网络相互对抗的游戏。这个被称为生成对抗网络(GAN)的框架,用最简洁的数学公式(minimax博弈)开启了人工智能生成内容的新纪元。十年间,从最初只能生成模糊的MNIST手写数字,到如今可以创作拍卖价超40万美元的AI艺术品,GAN的进化轨迹完美诠释了"对抗"如何催生"创造"。
原始GAN论文提出的价值函数V(D,G) = 𝔼[logD(x)] + 𝔼[log(1-D(G(z)))]看似简单,却蕴含着深刻的博弈论思想。早期研究者们很快发现了三个致命缺陷:
DCGAN的出现通过卷积架构(stride=2的转置卷积)和批量归一化等技术,首次实现了较稳定的图像生成。其核心贡献在于:
Wasserstein GAN(WGAN)通过Earth-Mover距离替代JS散度,配合权重裁剪(clip_value=0.01),显著改善了训练稳定性。其损失函数变为:
L = 𝔼[D(x)] - 𝔼[D(G(z))]
ProGAN采用渐进式训练策略,从4×4分辨率开始逐步加倍(512×512),每个阶段引入平滑过渡期(α-blending)。StyleGAN在此基础上加入风格混合(Style Mixing)和噪声注入,实现了对发型、姿态等细节的精细控制。
BigGAN在256×256分辨率上取得突破,关键创新包括:
同时期,文本到图像模型如AttnGAN引入注意力机制,实现了跨模态对齐。VQ-GAN则通过量化编码(codebook_size=16384)结合Transformer,显著提升了生成质量。
当前前沿技术呈现三大趋势:
python复制# 经典GAN损失
g_loss = -torch.mean(logits_fake)
d_loss = -torch.mean(logits_real) + torch.mean(logits_fake)
# WGAN-GP损失(λ=10)
grad_penalty = (gradients.norm(2, dim=1) - 1).pow(2).mean()
d_loss = -torch.mean(d_real) + torch.mean(d_fake) + λ*grad_penalty
| 技术 | 关键改进 | FID改进幅度 |
|---|---|---|
| DCGAN | 卷积架构 | 45→32 |
| ProGAN | 渐进训练 | 32→8.04 |
| StyleGAN2 | 权重解耦 | 8.04→4.3 |
| DiffusionGAN | 混合去噪 | 4.3→2.1 |
| 现象 | 解决方案 | 有效性 |
|---|---|---|
| 生成样本单一化 | 小批量判别(minibatch std) | ★★★★☆ |
| 颜色分布异常 | 频谱归一化(SN-GAN) | ★★★☆☆ |
| 细节重复 | 增加潜在空间维度(z_dim=512) | ★★★★☆ |
实战经验:当判别器准确率持续>0.9时,应立即降低其学习率或暂停更新1-2个epoch
在实际项目中发现,结合NeRF的3D-GAN在视角一致性上表现优异,但需要特别处理遮挡关系。一个实用技巧是在潜在空间插值时采用球面线性插值(slerp)而非线性插值,这能保持更好的属性连续性。